Archive for September, 2009

Deep Green, o amigo de boteco.

Friday, September 18th, 2009

Você já ouviu falar do Deep Blue, o computador da IBM que desafiou Gary Kasparov em uma partida de xadrez na década passada. Este no vídeo é o Deep Green, o robô que joga sinuca. Deep Green é um projeto de robótica da universidade Queens. Eles também estão trabalhando com conceitos de realidade aumentada para alinhar a tacada do jogador com feixes de laser.

Facebook abre o código do Tornado

Friday, September 11th, 2009

Tornado é um webserver escrito em python e projetado pelo Facebook para sites com grande tráfego e acesso simultâneo.  O Facebook abriu seu código sob licença Apache e utiliza a solução no recurso FriendFeed do site. O webserver se diferencia dos outros por ser “non-blocking”, utilizando epoll do kernel Linux para lidar com grande quantidade de file descriptors.  Possui módulos interessantes como o auth utilizado para autenticação e autorização em sistemas de terceiros ( Google OpenID, Yahoo BBAuth, Twitter OAuth ) ou o s3server que é uma interface para Amazon simple storage server.

Para ambiente de produção, a recomendação deles para performance é o uso do Tornado no esquema 4 single-threaded em uma máquina com 4 cores ( 1 thread para cada core ), tendo o nginx como reverse proxy.  O benchmark feito por eles chama a atenção pelo bom resultado, comparando populares web frameworks em python.

Web Server Request Comparation

Múltiplos uploads para o Google Docs

Sunday, September 6th, 2009

Se você precisa fazer upload de múltiplos arquivos para o Google Docs, ficará limitado pelo upload tradicional que permite a operação de um arquivo por vez.  O Google Docs possui uma API para upload, download e edição de documentos.  Uma das aplicações que faz uso desta API foi escrita por Anton Belograzov e se chama Google Docs Batch Upload.  É uma aplicação java command-line para Linux, Mac e Windows com JRE 1.6.

Google Docs Batch Upload faz o upload de um ou mais arquivos suportados pelo Google Docs a partir de um determinado diretório local.  A sintaxe do comando é a seguinte:

java -jar google-docs-upload-1.0.jar <path> –recursive

( substituindo <path> com o caminho para o diretório com o conteúdo para upload).