quinta-feira, agosto 24, 2006

Minority Report

Cool !

quinta-feira, agosto 17, 2006

[Leonardo Garcia] Redes e o futuro da computação

Por Leonardo Garcia

Sou usuário da Internet desde os idos de 1995, se não me engano. Antes disso, ainda, existiam também as BBSs (pequenas redes comunitárias que conectavam poucos computadores através de linha telefônica). Naquela época, a Internet ainda era incipiente no Brasil, bem pequena e estava em testes para o público em geral. Mesmo assim, o mundo que se abria lentamente através dos primeiros sites web (sim, naquela época a web era minúscula e usávamos o Mosaic, o primeiro navegador, e, depois, o Netscape 1.0 para acessá-la!), dos e-mails, dos newsgroups (que acabaram praticamente desaparecendo com as listas de distribuição por e-mail) e do Gopher (este, coitado, foi praticamente extinto pelo web... nem sei se ainda existem sites Gopher...). Fui um usuário de teste do primeiro provedor do interior de Minas Gerais, se não me engano.

Nesta época, a minha velocidade de conexão eram incríveis 4800 bps, isto porque eu tinha um computador com o modem comercial mais rápido existente na época. Alias, não era simplesmente um modem. Era um fax/modem, que também passava fax do computador a incrívies 9600 bps! Hoje em dia os modems de linha discada também enviam e recebem faxes, mas esta funcionalidade quase perdeu sentido numa era de e-mails com vídeos e voz.

Não dava pra ver quase nada a esta velocidade, até porque a qualidade da infra-estrutura de Internet era muito ruim no Brasil ainda. Pelo menos esta era a percepção de usuário que eu tinha.

O tempo foi passando e as minhas velocidade de conexão foram aumentado: 14400 bps, 33600 bps, 56 kbps... mas sempre através de linha discada.

Depois disso passei a conviver com redes maiores. Na Unicamp, por exemplo, eram comuns redes Ethernet ou de cabo coaxial (estas nem existem mais praticamente...). As coaxiais, sinceramente, não sei qual era a velocidade delas, mas acho que o máximo era 10 Mbps. As Ethernets que eu usei tinham 10 Mbps ou 100 Mbps. Como a universidade tinha um bom acesso aos troncos de infra-estrutura de Internet no Brasil, a velocidade de conexão lá era muito boa. Algumas vezes, é verdade, tínhamos problema de velocidade, mas quase sempre por problemas de configuração da rede do que por problemas de banda disponível.

Quando comecei a trabalhar, eram comuns links de 256 kbps em empresas pequenas, seja por ADSL ou por microondas.

Hoje já estamos em um patamar acima deste: eu, por exemplo, uso acesso à Internet através do cabo da TV à cabo e tenho conexões que podem chegar a 2 Mbps na minha casa! Isso é cerca de 500 vezes mais rápido que o meu primeiro acesso à Internet!

Em dez anos, um crescimento de 500 vezes é impressionante. Mas o crescimento não pára por ai. Hoje, por exemplo, muitos lugares já possuem redes internas de fibra-óptica, com velocidades de conexão interna da rede muito superiores a 1 Gbps. As universidades brasileiras já tem acesso à chamada Internet 2, uma versão paralela da Internet que se comunica com a Internet "comum" só que através de velocidades muito maiores que aquelas às quais os usuários comuns estão acostumados.

Mas, para onde vamos daqui pra frente? Existe motivo para crescer mais ainda a banda de conexão disponível?

Eu particularmente acho que sim. Se, hoje em dia, não conseguimos imaginar aplicações para redes de 100 Gbps, por exemplo, é porque, dentre outras coisas, não temos esta banda disponível. Tenho certeza que assim que estas velocidades estiverem disponíveis serão criadas aplicações para ocupá-las.

Neste sentido, temos um projeto muito interessante sendo desenvolvido no Brasil: o projeto TIDIA, da Fapesp (Fundação de Amaparo à Pesquisa do Estado de São Paulo, a maior fundação deste tipo no Brasil). O projeto TIDIA se propõe a algumas coisas, dentre elas, criar infra-estrutura de rede de computadores ultra-rápidas e aplicações que façam uso desta infra-estrutura super poderosa para educação a distância. Não sei como o projeto está hoje, mas lembro-me de ter lido que uma das coisas a serem desenvolvidas neste projeto era uma placa de rede óptica capaz de transmitir dados entre computadores a até 400 Gbps!!! Velocidade para ninguem botar defeito!

Saindo do laboratório e indo para a vida real, várias empresas já estão lançando servidores que suportam as redes com arquitetura InfiniBand. Não sei maiores detalhes a respeito desta rede, mas elas podem chegar a 96 Gbps!

Viajando um pouco mais nesta idéia de redes ultra-rápidas, há algum tempo atrás li um artigo sobre fotón-gêmeos. Fótons-gêmeos são partículas físicas que possuem características muito especiais. Vou tentar explicar a propriedade especial que estes fótons-gêmeos possuem e que, na minha cabeça, poderiam produzir velocidades de transmissão de dados praticamente infinitas.

Os físicos descobriram que, se você isolar um fóton (uma particula de luz, como as geradas por uma lâmpada acesa), e conseguir fazer este fóton atravessar um prisma com propriedades especiais, do outro lado do prisma sairão dois fótons. O interessante, neste caso, é que estes dois fótons foram originados de um único fóton original e, como tudo na natureza, eles buscam o equilíbrio de forças entre si. Em outras palavras, se você executa uma ação sobre um dos fótons (por exemplo, colocando-o para girar no sentido horário), o outro fóton executará a mesma ação no sentido contrário, sem que nada aja diretamente sobre ele (no nosso exemplo, ele giraria no sentido anti-horário). Obviamente isto é uma simplificação grotesca do que realmente acontece, mas é suficiente para tentar explicar o que vem em seguida. Imaginando que poderiamos, num computador servidor, produzir um fóton, isolá-lo, passá-lo por um prisma para termos dois fótons-gêmeos e que conseguíssemos "trancar" um destes fótons no servidor e enviar o outro fóton-gêmeo através de fibra óptica a um outro computador cliente, onde este outro fóton seria trancado também. Imaginando também que poderíamos fazer isto não só com um fóton, mas com centenas de milhões de fótons, podemos pensar que, para transmitirmos dados entre os computadores, precisaríamos apenas alterar as propriedades dos fótons no servidor e estas propriedades seriam modificadas instantaneamente nos fótons-gêmeos do computador cliente. Ou seja, a velocidade de transmissão de dados, neste caso, seria tão grande quanto fosse nossa capacidade de ler as propriedades físicas dos fótons alteradas!

Na prática, isto poderia nos levar a redes de computadores com velocidades extremamente grandes, não sei nem dizer de qual ordem de grandeza.

Para finalizar, só tenho a dizer que o que eu vi até agora no desenvolvimento das redes de computadores nos últimos anos e o que vem sendo dito no mercado de tecnologia me deixa na espectativa e empolgado com o que deve vir por ai no futuro próximo. Mas, apesar de todo o avanço, sempre é bom lembrar do que Tanenbaum disse num dos livros clássicos sobre redes de computadores: "Never underestimate the bandwith of a station wagon full of [storage] hurtling down the highway.". Numa tradução livre, algo como "Nunca subestime a banda de um vagão de trem cheio de fitas com dados em uma estrada.". Isso era verdade na década de 80 quando esta frase foi escrita provavelmente pela primeira vez e continua sendo verdade até hoje, afinal, não são só as infra-estruturas de rede que evoluem, mas também a tecnologia de storage. Mas isso é uma conversa para outro artigo.

[NDA: Leonardo Garcia é Engenheiro de Computação, e foi meu colega de graduação na UNICAMP. Já trabalhou em diversos projetos relacionados a software livre (inclusive já tendo construído sua própria mini distro de linux :-) ) e em diversas empresas e atualmente está no Linux Technology Center da IBM ]

quinta-feira, agosto 10, 2006

Gerenciamento de Equipes

Há um bom tempo não publico aqui nenhum texto mais pessoal, com opiniões realmente minhas. Falta de tempo. Preguiça...assumo. Não que eu ache que não publicar minhas idéias seja uma grande perda para o mundo. Mas tendo um blog, me parece algo importante pelo menos para manter as aparências....

Esse preâmbulo não significa que hoje eu vá publicar algo meu. É só para justificar :-) Vou reciclar idéias alheias.

Acho que já citei várias vezes textos do Joel Spolsky. Ele é um computeiro que escreve bem, e que sabe vender seu peixe. Coisa não muito fácil de se encontrar hoje em dia.

Os três últimos artigos dele (The Econ 101 Management Method, The Command and Control management Method e The identity Method) falam sobre diversas técnicas de gerenciamento de projetos e equipes, e discute como conseguir que uma equipe de pessoas trabalhem para alcançar um mesmo objetivo (no jargão gerencial, que eu acho ridículo, o termo seria alinhamento). São fáceis e agradáveis de serem lidos, e passam bem claramente as idéias.

Aproveito para citar um caso de problema de comunicação intrínseco de computeiros. Ontem fui à minha incursão semanal à FNAC, e acabei dando uma passada na sessão de livros de informática. Dei uma folheada num livro sobre Ruby, escrito por um brasileiro, e devo dizer que raramente vi algo tão mal escrito. O ponto culminante do texto foi na frase onde ele dizia que a linguagem Ruby é menos verbosa que outras (ou algo do gênero)..guardei o livro e fui ao cinema

terça-feira, agosto 08, 2006

[Mac OS X] NeoOfficeJ

Quem já tentou baixar o OpenOffice para Mac OS X sabe que o porte atual só funciona rodando sobre X11. Por algum motivo que me escapa, não existem planos pelo pessoal do OpenOffice de portar para um ambiente nativo Mac. Mas existe o projeto NeoOfficeJ que fez este trabalho. Estou usando a versão 2.0 Beta, que executa bem tarefas simples de edição de arquivos de texto e planilhas tanto no formato MS Office quanto nos formatos XML. Como não sou heavy user de pacote Office, isso já resolve meus problemas. Em breve irão lançar uma versão totalmente Aqua. Acho que vale a pena conferir.

quarta-feira, agosto 02, 2006

Google Papers

Hoje, lendo meus RSSs, descobri a página Google Papers, que contém links para artigos escritos por pesquisadores e engenheiros que trabalham lá. Ainda não tive tempo de ler com calma os artigos (mesmo porque são muitos), mas tenho a impressão de que pode ser uma fonte interessante de informações. http://labs.google.com/papers/ Comentários específicos sobre papers e indicações são bem vindos.