Quarta-feira, 29 de Abril de 2009

A Microsoft de Novo - Eu Love You Microsoft

Uma solução nunca antes imaginada foi proposta pelo pessoal da Microsoft. A solução é para o problema de retrocompatibilidade com o Windows XP. Para ser breve, a idéia é prover um módulo virtualizado do Windows XP dentro do Windows Seven. Com isso, espera-se que as empresas finalmente troquem o bom e velho XP pelo Seven, pois agora teriam como rodar aqueles velhos programas. Mas, diga lá meu amigo, isso já existe no mundo Linux. Com VirtualBox no modo seamless, parece que você nem tem um windows virtualizado (veja imagem abaixo). É mais ou menos isso que a Microsoft quer fazer com o XP dentro do Seven. É claro, haverá alguma integração da máquina virtual com o SO de modo a melhorar o desempenho. Mas essa integração já existe também com o VirtualBox para Linux. (vejam as imagens abaixo, no modo sem seamless e com seamless).




Quarta-feira, 22 de Abril de 2009

Mundo Wumpus: Um Agente Lógico em uma Perigosa Caverna

 

Durante uma disciplina sobre Lógica para Sistemas Inteligentes, implementei o mundo Wumpus (Russell e Norvig, 2002)  em Java, mas o mecanismo de inferência do caçador foi realizado em Prolog. A união das duas linguagens veio por meio da API JPL.

image

 

Download: Wumpus World.

Quarta-feira, 15 de Abril de 2009

Não há aprendizagem sem crítica

image

Sábado, 11 de Abril de 2009

Uma implementação do algoritmo backpropagation

 

O algoritmo backpropagation é utilizado para treinamento em redes neurais artificiais. Implementei o algoritmo em Java, no entanto, ainda não é levado em consideração algumas boas práticas em projetos de redes neurais, como seleção aleatória dos exemplos de treinamento. Download.

Terça-feira, 7 de Abril de 2009

Fundamentos Matemáticos para Computação Gráfica

 

Primeiro artigo para ajudar quem está aprendendo programar em três dimensões: fundamentos matemáticos para computação gráfica.

Segunda-feira, 6 de Abril de 2009

Computação Gráfica

 

Periodicamente estarei postando aqui material sobre computação gráfica 3D.

image

Estou preparando uma apostila que mostra tantos aspectos práticos como teóricos. Em breve!

Domingo, 5 de Abril de 2009

Seremos arrastados para as nuvens

 

Imagine o seguinte cenário: Office e Google Docs, Photoshop e, inclusive, a promessa de jogos. Tudo isso executando nas nuvens, de forma transparente ao usuário final. Parte desses aplicativos executarão (ou já executam) remotamente e outra parte é executada offline (pelos mecanismos tradicionais de JavaScript, Flash e outros). Bom nada disso seria tão ameaçador se as versões tradicionais de cada tipo de software continuassem a ser produzidas e mantidas. Mas imagine que os grandes consumidores de software e hardware (diga-se quem tem dinheiro e, portanto, condições de manter uma banda-larga de excelente qualidade) começassem a adotar software como serviço, computação nas nuvens e outros neologismos produzidos ultimamente. De fato, se isso chegar a acontecer, é provável que a demanda por software tradicional diminua ao ponto que o trabalho de manter os projetos correspondentes não seja mais lucrativo ou relevante. Assim, junto com os donos do cofre, todos seriam arrastados para as nuvens.

Há consequências ainda mais devastadoras. A demanda por hardware descente cairia substancialmente. A maioria das pessoas estaria interessada em um “terminal” capaz de receber os dados de servidores (nas nuvens) e dados processados pelos mesmos. O poder computacional estaria nas nuvens e não na máquina do usuário. Com a dimunuição da demanda de hardware, estes tenderiam a se tornar mais caros. Poucas pessoas poderiam obter hardware com alto poder de processamento. Mas uma vez, todo o resto do mundo seria arrastado para as nuvens. Não estou a dizer que as nuvens causariam um involução no desenvolvimento de hardware. Estes continuariam evoluindo, mas agora estariam concentrados em diversas máquinas espalhadas pelo globo, mantidas por poucas e grandes empresas (como Google e Microsoft). Tudo que as empresas de software mais queriam: concentrar, concentrar, concentrar…

Se todas as suposições colocadas nos parágrafos anteriores se mostrarem verdadeiras no futuro. O que aconteceria com o software livre? Simplesmente perderia o sentido ou continuaria existindo de forma restrita. Grandes empresas como Google e IBM guiariam o desenvolvimento dos sistemas livres, mas somente para uso restrito em suas respectivas infraestruturas. Todos ficariam dependentes do modelo software como serviço! A Microsoft tenderia a se adaptar a essa nova realidade, mas tendo contra si fortes competidores, como Google e Yahoo[?]. Dessa forma, poucas e grandes corporações seriam responsáveis por quase totalidade do poder de processamento e armazenamento de dados. Tudo estaria em servidores distantes do usuário final (nem tão distante, do ponto de vista do tempo de resposta). Os dados estariam distribuídos em várias máquinas mantidas por empresas dedicadas ao novo modelo computacional (e de negócio). Tudo isso tenderá a concentrar a computação nessas poucas e grandes empresas.

Países com uma infraestrutura ruim para Internet e pessoas sem acesso a banda larga, perderiam muito nesse novo cenário (pelos menos inicialmente), pois com o conceito  de software como serviço, a necessidade de poder de processamento será substituida pela necessidade de largura de banda. No entanto, com o aumento da demanda por largura de banda, esta tenderia a ficar menos caro.

Finalmente, tudo que foi dito acima foram suposições de casos extremos. Talvez, na melhor das situações, os dois modelos continuarão existindo (aplicações tradicionais concorrendo com serviços nas nuvens) . O software livre pode ser uma alternativa para aqueles que escolherem se manter parcialmente afastados das nuvens (totalmente será quase impossível). Mas se a maioria correr para as nuvens, haverá uma pressão muito forte para os resistentes poderem continuar com o modelo tradicional. Contudo, numa democracia quem manda é a maoria (mesmo que a minoria tenha razão). Mas quem irá julgar a razão de quem?

Plug and pray!