Em alguns casos é necessário observar o que está trafegando entre o browser e o servidor para que possamos fazer debug em algumas aplicações. Um software que uso para isso a um bom tempo e que nunca me decepcionou é o Charles. Apesar de ter um nome “diferente”, Charles é uma ferramente muito útil.
Entre as várias funcionalidades disponíveis, gostaria de destacar algumas:
Faz o parse de dados no protocolo AMF, sendo possível ver os objetos trafegados direto nos relatórios.
Captura requisições feitas através de Ajax.
Exibe o que foi e o que não foi feito cache, permitindo que o cache seja inteiramente desativado. (Opção bastante útil para testes de performance em aplicações Web).
Opção de Bandwidth Throttle, para que você possa simular como sua aplicação ficará em conexões mais lentas do que a sua.
Versões para Windows, Linux e Mac OS X.
O Charles é uma ferramenta paga, porém acredito que o investimento não será em vão, considerando a grande quantidade de funcionalidades disponíveis. Para saber mais sobre o Charles, acesse o site oficial em: http://www.charlesproxy.com/
Se estiver procurando por uma ferramenta semelhante gratuita, recomendo o uso da extensão Firebug para o Firefox. Porém o Firebug tem menos opções disponíveis em relação ao Charles como, por exemplo, a ausência do parse de AMF. Para baixar o Firebug acesse: http://getfirebug.com/
Alguns dias atrás li um artigo no blog Lifehacker sobre otimizações para o Firefox 3 e achei que seria interessante compartilhar duas delas com vocês. Se quiser ler as outras, vou deixar o link para o artigo original no final do post.
No meu post anterior eu havia falado sobre o Concurso de Skins da Scalenine/Adobe e sobre o fato de o Brasil não estar incluído entre os países que podiam participar do concurso.
Bem, hoje recebi um e-mail do Juan do ScaleNine avisando que ele atualizou os Termos e Condições e agora sim nós brasileiros podemos participar e concorrer aos prêmios!
Hoje em dia, se precisamos, por exemplo, enviar um mapa por email para alguém, o que fazemos? Tiramos um print e anexamos? Encontramos no Google Maps e colocamos um link no corpo da mensagem? E se pudéssemos colocar O google maps dentro do corpo? Essa é a idéia do Mozilla Ubiquity! Você faz os SEUS mashups de acordo com SUAS necessidades e onde VOCÊ quiser. O projeto ainda está no labs da Mozilla e em versão 0.1. Para maiores informações sobre o projeto: Mozilla Ubiquity
Alguns meses atrás passamos por um processo de otimização em algumas aplicações desenvolvidas para um de nossos clientes e uma das idéias que trouxe ótimos resultados foi o uso da compressão de dados no servidor utilizando gzip.
Existem algumas maneiras para que essa compressão seja utilizada, porém a que escolhemos foi com o uso de um Servlet Filter que fica ativo entre o cliente e o servidor, fazendo a compressão dos dados trafegados. Essa solução nos pareceu ser a mais adequada, pois com ela não é necessário fazer nenhuma configuração especial diretamente no servidor, o que seria um problema para a maioria dos clientes.
Apesar de estarmos utilizando uma solução desenvolvida por nós mesmos, cheguei a fazer testes com o projeto open source PJL Compressing Filter e ele trouxe resultados bastante satisfatórios, considerando velocidade de resposta, integridade dos dados e taxa de compactação. Fiz alguns testes com a resposta de uma aplicação demo antiga que trafegava 450kb de XML e o tamanho dos dados compactados caiu para 70kb. O resultado com as resposta do AMF também foram impressionantes.
Para utilizar o filtro em seu projeto, faça o seguinte:
Não se esqueça de manter o blocos <filter> e os blocos <filter-mapping> agrupados com outros blocos semelhantes no seu arquivo web.xml, para não ter problemas de deploy.
Recomendo também que você utilize os parâmetros excludeContentTypes ou excludePathPatterns para excluir arquivos de tipos: JPG, SWF, FLV, etc. Como esses arquivos já são compactados, você só estaria aumentando o processamento do servidor e, alguma vezes, fazendo com que o resultado seja maior ou até corrompido. Para saber mais sobre os parâmetros de configuração do filtro, leia a documentação do filtro em: http://pjl-comp-filter.sourceforge.net/
E eis que estamos na internet. Blog, Podcast, Wiki, Youtube, Pingback, Trackback, comentários e a democracia aflora na rede. As empresas aderiram e todas elas permitem que você envie um e-mail dando um feedback sobre seus produtos e serviços. Isto deve bastar para estimular as pessoas a se manifestarem certo? Errado!
Conheça o Dear Adobe. Neste site você também pode dar sua opinião sobre os produtos e serviços da Adobe. No entanto, este site inova ao tornar as opiniões publicas. Não é mais algo que você envia para a empresa e um estagiário ou sistema automatizado responde. Você fala para o mundo inteiro ouvir. Você vê que os outros tem as mesmas reclamações que você. Você se diverte com as pessoas que postam algo apenas ser engraçado. E tudo isto trás audiência para o site. Tudo isto estimula muito mais do que um link "fale conosco". Logo este site estará bem classificado no Google e a Adobe não poderia mesmo tapar os ouvidos (e de fato não taparam). A única coisa ruim disso é que já posso até ver os Tech Gurus incorporando esta idéia na Web 3.0.
Recentemente eu estava desenvolvendo um índice, como aqueles de livros, onde tem um título do lado esquerdo e uma linha pontilhada que leva até o número da página, no lado direito...mas...como implementar a linha pontilhada?
Ao invés de tentar tratar strings, calculando tamanho para colocar os pontos, etc., o que seria outra possível - e mais difícil - solução, acabei fazendo, com uma grande ajuda do Marcelo Savioli, um componente bem simples para preencher esse espaço. E como estendemos do Spacer para criar este, o chamamos de DottedSpacer.