Comet? Reverse Ajax? Ajax 2.0? Como assim?

Hoje, um colega aqui do trabalho me indicou um post que fala sobre as otimizações de Javascript do Gmail.

Porém, o que eu achei mais interessante foi seguir alguns dos links e encontrar o nome para uma técnica que eu já conhecia, mas que agora vi documentada e explicada. Trata-se do Comet ou Reverse Ajax.

Um novo nome para o Ajax comum?

O segundo nome, Reverse Ajax, pode facilitar o entendimento da técnica. Primeiro, vamos lembrar resumidamente como funciona um Ajax tradicional.

No Ajax comum, o cliente (o navegador) dispara uma requisição e o servidor responde em seguida, daí o cliente processa essa resposta e exibe da forma adequada ao usuário.

Um exemplo prático: imagine que no seu webmail favorito exista um endereço que retorna quando há mensagens novas na sua caixa de entrada.

Se você fizer essa requisição a cada meio segundo, seu servidor irá receber muitas requisições apenas para dizer: "hey, não tem nada de novo!".

Seria interessante que o servidor pudesse responder a requisição somente quando houvesse alguma mensagem nova. É aí que o Comet (ou Reverse Ajax) entra. :D

Comet e o poder de resposta do servidor

Tudo bem, muito bacana que o servidor possa responder quando houver algo novo mas... Como fazer implementar isso de verdade?

Este artigo demonstra duas formas de se implementar o Comet com PHP. Como PHP é uma linguagem bem conhecida, fica fácil entender os exemplos. Vou comentar aqui apenas o segundo exemplo, feito usando o objeto tradicional de Ajax: XMLHttpRequest.

Se você analisar o segundo exemplo, verá que a técnica basicamente consiste em manter a conexão ativa até uma resposta ser gerada (ou até um limite máximo de tempo, claro).

Isso pode ser feito, na maioria das linguagens, através de um método sleep ou similar.

Resumindo

Como você pode ver, implementar Comet não é algo novo, mas com certeza é uma técnica bastante interessante e possui aplicações valiosas. Se você já usou em algum lugar, deixe seu comentário com a sua experiência! :D

Referências
Comet ou Reverse Ajax
Otimizações de Javascript no Gmail
Gmail
Implementando Comet com PHP

comentários (1)

Ferramentas e sites úteis para desenvolvimento web

O Mashable divulgou uma lista bastante completa, com mais de 250 links, sobre Ajax, Javascript, CSS, XHTML, Ruby on Rails, Python, PHP, Java, SQL e ainda mais. Desta lista, vou destacar os endereços que uso regularmente e alguns outros endereços que considero também boas ferramentas ou boas fontes de informações.

Na parte de Javascript e Ajax, há links para páginas de ótimas bibliotecas como a jQuery e o script.aculo.us. Além de boas referências sobre a linguagem como: QuirksMode.org e o DevGuru.

A listagem sobre CSS é boa, mas eu senti falta de alguns sites importantes como o Position is Everything e também dos Layouts Gala.

Em Tools (ferramentas), além das boas dicas sobre editores, duas adições interessantes seriam os editores SciTE e o jEdit. Tenho usado bastante o jEdit nos últimos tempos e ele tem se mostrado um editor bem versátil, principalmente com o suporte a snippets.

Para PHP, embora faça um bom tempo que eu não trabalho com a linguagem, continuo vendo alguns lançamentos e notícias relacionados à linguagem. O framework Akelos, que não está na lista, segue a mesma linha de funcionamento do Rails (Ruby on Rails), sendo uma boa opção para desenvolvimento ágil.

Nos links de Rails, recomendo ainda o Railscasts que possui uma grande variedade de screencasts, todos voltados para Rails e explicando vários truques interessantes do framework.

Ufa! Quantos links! :D Agora é a sua vez, tem algum site que você usa e acha interessante que ficou faltando nas listas?

comentários

Promoção do Simples Idéias (Nando Vieira)

Este post participa da promoção "Ganhe o livro Agile Web Development With Rails" que o Nando Vieira, do Simples Idéias, está promovendo. Sendo assim, aqui vão meus três posts favoritos:

  • Ruby para programadores PHP - Hoje é em dia é complicado achar documentação para o Ruby, mas muito fácil para o PHP. Nada mais conveniente do que ver associações entre as funções do PHP e do Ruby.
  • Test-Driven Development no Rails: Unit Tests - O desenvolvimento guiado por testes (TDD) ajuda muito na hora de desenvolver, este artigo explica e, mais importante, demonstra como isso funciona na prática.
  • Supermercado (físico) nunca mais! - Se alguém tinha alguma dúvida sobre a vida social do Nando, essa dúvida acaba aqui. :D

E como sugestão (preparado? =) eu, particularmente, gostaria de um howto sobre como construir uma aplicação em PyGTK, algo simples como uma calculadora mas que abordasse desde a concepção até a criação de um instalador para ambientes Windows, e um pacote Debian também não seria nada mal. :D

comentários

Um blog com Ruby on Rails

Após um bom tempo longe do mundo dos blogs, eu estou de volta e dessa vez é pra ficar! =)

Aproveitei as férias do trabalho para aprender uma linguagem nova que pudesse substituir meu bom e velho PHP.

Não que o PHP não seja uma linguagem boa, longe disso. O fato é que eu precisava de uma linguagem que fizesse mais por mim e, por consequência, eu codifique menos. :D Foi aí que o Ruby (on Rails) surgiu na minha vida.

Os motivos

Na faculdade eu havia visto um pouco sobre Python. Gostei da sintaxe da linguagem em relação ao PHP porém não senti nela um potencial para substituir o PHP e suas inúmeras funções built-in.

No trabalho, sob uma influência bastante positiva do meu amigo Ferdinando, eu resolvi que iria apostar no Ruby on Rails. O resultado não poderia ter sido mais positivo!

As fontes

Inicialmente, comecei lendo os famosos "getting started" que achei em vários sites, exemplos: http://www.ruby-lang.org/en/documentation/ e http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html.

Depois disso parti para a leitura dos tutoriais em PDF que o Eustáquio Rangel disponibilizou em seu site. Os PDFs foram bem bacanas e permitiram uma visão geral sobre Ruby (e Rails)..

Minha principal fonte de leitura e aprendizado foi o livro: Agile Web Development with Rails. Apesar deste não ter sido o melhor livro sobre programação que eu já li, certamente ele é bem claro na maior parte dos textos.

O resultado

O primeiro resultado... bem, você está olhando para ele agora! Para praticar o que eu havia visto, resolvi construir um blog!

Peguei papel e caneta e comecei a desenhar os fluxos de navegação. Rascunhei as páginas individualmente e defini como seriam todos os comportamentos. Decidi que o projeto só estaria completo se eu cumprisse todos os requisitos que eu havia descrito.

No final das contas, o resultado ficou além do que eu mesmo havia proposto e o melhor de tudo: eu levei apenas 6 dias para fazer o blog todo, inclusive o layout!

Levando em consideração que esta é a primeira vez que faço algo com Ruby on Rails, é um resultado impressionante.

Obviamente não criei um novo WordPress. O blog é simples mas funciona! =)

Resumindo

Se você chegou até aqui pesquisando sobre Ruby on Rails, fica a minha opinião: é ótimo!

Particularmente, eu não sou muito fã de usar grandes códigos prontos. Mas o Rails é tão bem escrito que as coisas se tornam pateticamente claras e fáceis. Basicamente ele faz todo o trabalho sujo e chato, deixando você focado nos códigos e na lógica.

Tudo isso combinado com a sintaxe limpa do Ruby vai gerar um código limpo e simples, com realmente muitas linhas de código a menos que um código em PHP, por exemplo.

Referências
Ruby
Rails
PDFs sobre Ruby e Rails do Eustáquio Rangel
Agile Web Development with Rails

comentários (1)