Desativando animações no jQuery (jQuery.fx.off)

Animações em Javascript usando o jQuery podem ser muito interessantes, mas dificultam um pouco ao escrever testes, é preciso usar setTimeouts ou outras artimanhas que normalmente não estão no foco do que se deseja garantir ao escrever um teste.

Em busca de uma solução para este problema, descobri que se pode desabilitar completamente as animações no jQuery usando a propriedade jQuery.fx.off:

jQuery.fx.off = true;

Desta forma, qualquer animação atingirá imediatamente o seu estado final, sem que seja preciso mudar a sua implementação.

Desabilitando as animações e removendo as chamadas de setTimeout em uma suite de 47 testes, reduzi o tempo de execução de 6 segundos para 800 milisegundos e, mais importante ainda, me livrei de resultados intermitentes rodando os testes.

Instalando nodejs e npm no Ubuntu sem sudo

O npm, instalador de pacotes do nodejs, recomenda que não seja instalado usando sudo, pois você acabaria instalando código de terceiros, com livre acesso ao seu sistema de arquivos.

É mais fácil instalar o npm sem sudo se o próprio node também for instalado assim.

Instalando o node sem sudo (fonte):

# Clone do projeto
git clone http://github.com/ry/node.git
cd node
# Cria e configura o prefixo que será usado no script de instalação
mkdir ~/opt
export PREFIX=~/opt
# Instala sem sudo
./configure
make
make install
# Adiciona o novo bin ao path (onde ficará o executável do node)
echo 'export PATH=~/opt/bin:${PATH}' >> ~/.bashrc

Eu estava tomando o erro abaixo ao tentar instalar o npm:

TypeError: Object #<an EventEmitter> has no method 'on

Então encontrei este post sugerindo a instalação de algumas bibliotecas:

sudo apt-get install g++ curl libssl-dev apache2-utils

Feito isto basta instalar o npm:

curl http://npmjs.org/install.sh | sh

Sizzle javascript selector engine

O fim das guerras de performance entre os frameworks em javascript está próximo!

John Resig, o “cara” do jQuery está liderando um novo projeto chamado sizzle, é um engine de seletores que será incorporado a várias bibliotecas em Javascript, entre elas:

É muito interessante ver este tipo de colaboração entre as bibliotecas, ao invés de cada uma tocar a sua própria solução, todas vão batalhar juntas por uma solução melhor.

Aqueles que adotam uma biblioteca e a defendem com unha e carne terão que procurar outros motivos para discutir, pois é bem provável que os benchmarks saiam empatados daqui para a frente. Mesmo assim, eu continuo com o jQuery. 🙂

Além disso, quem não for precisar de uma biblioteca completa, pode usar o sizzle sozinho.

Quem quiser ler mais sobre o assunto:

Olimpíadas Pequim 2008

Ano de olimpíadas e o Paraná Online está fazendo um acompanhamento especial das competições na China.

Assim como no portal original, o website das olmipíadas utiliza Python e Django para o gerenciamento de conteúdo.

Fui responsável pelo desenvolvimento do projeto com mais um desenvolvedor e a estruturação da interface (HTML / CSS / Flash) foi quase completamente conduzida pela equipe de criação.

Foi muito interessante esta separação, a equipe de desenvolvimento pôde se concentrar mais na lógica da aplicação, questões de infra-estrutura e coordenação, enquanto o pessoal de criação pôde ficar mais responsável pela qualidade gráfica.

Isto nos deu bastante agilidade, pretendemos repetir este modelo em novas oportunidades.

Outro ponto extremamente interessante neste projeto foi a sua reutilização, um sistema, uma fonte de conteúdo e 3 aplicações gráficas.

O conteúdo é alimentado pelo portal Paraná Online e veiculado em 3 hotsites:

Foi muito interessante explorar a flexibilidade do Django para reaproveitar o que era comum e separar o que era específico.

Screenshots:

Paraná Online

Agora trabalhando na OrangoToe, um dos nossos principais projetos é o novo portal Paraná Online do Grupo Paulo Pimentel, um projeto que já nasceu grande e ainda tem muito a crescer. Hoje foi o seu lançamento.

O antigo sistema de gerenciamento de conteúdo, desenvolvido em PHP, foi substituído por outro completamente novo, agora utilizando Python e Django.

Fui responsável pela estruturação básica em HTML / CSS e dividi a programação com outro desenvolvedor.

Fizemos um bom uso de jQuery para implementar algumas ferramentas mais interativas com Ajax, validações e componentes de interface.

Devido ao grande tráfego de usuários, foi necessária uma grande preocupação com a performance dos servidores.

Algumas páginas de acesso mais crítico são armazenadas em memória através do memcached, existe um pool das conexões ao banco de dados e um balanceamento para separar chamadas de arquivos estáticos das páginas dinâmicas.

Tenho orgulho de ter participado deste projeto, o resultado me agradou muito e tenho certeza de que muito está por vir ainda.

Screenshot:

Link: http://www.parana-online.com.br/

Dia da Árvore – Aracruz

Mais um projeto para a Aracruz Celulose desenvolvido na Visionnaire em parceria com a AddComm.

Diferente dos outros projetos para a Aracruz, pode-se dizer que este foi um dos maiores, não em complexidade mas sim no nível de exposição. Enquanto a maioria das campanhas eram voltadas para a comunidade da unidade de Guaíba (RS), esta campanha representou toda a empresa.

O hotsite foi publicado como uma landing page do portal da Aracruz, qualquer um que tentasse acessar a home do site, veria antes o hotsite, uma grande visibilidade.

Os usuários puderam se cadastrar e enviar uma frase para concorrer a uma muda de árvore nativa de sua escolha. Após a escolha das melhores frases, foi disponibilizada a lista dos vencedores no site. Era possível também, indicar o site para um amigo.

A minha participação no projeto foi toda a estruturação das páginas em HTML e a programação da interface utilizando Flash / ActionScript e Javascript.

Desenvolvi o cadastro e o formulário de indicação utilizando jQuery para chamadas em Ajax, para a validação e para o sistema de navegação com abas.

Fui responsável também pela floresta virtual que se comunicava com o servidor para obter a lista de cadastrados e posicionar cada usuário como uma árvore na floresta.

A busca foi feita dentro do próprio Flash, sem comunicação com o servidor, com base nos dados pré-carregados.

Screenshots:

Link do projeto: http://www.aracruz.com.br/diadaarvore2007/

Homenagem ao Dia da Árvore

Mais uma da série de campanhas desenvolvidas para a Aracruz Celulose.

Trabalhar com a AddComm sempre foi algo muito interessante, seus briefings e projetos são muito bem estruturados e os layouts sempre bastante rebuscados e criativos.

Neste projeto fui responsável por toda a parte de estruturação da interface.

Fiz a construção HTML e CSS das páginas e a programação em Javascript para validação de formulários e navegação da galeria de imagens.

Desenvolvi também um player de vídeos que carrega do servidor, uma playlist em XML com thumbnails e vídeos em formato FLV.

Screenshots:

Link do projeto: http://www.aracruz.com.br/comunidade/diadaarvore