sábado, 24 de maio de 2008

Google Maps Polyline Encoder - Codificador de Linhas

Resolvi juntar os 3 seguintes sites num único e simples Mashup
  1. Codificador simplificador de polylines http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/
  2. Desenhador de polígonos, markers e polylines http://gmaps-samples.googlecode.com/svn/trunk/poly/mymapstoolbar.html
  3. Codificador oficial de polylines http://code.google.com/apis/maps/documentation/polylineutility.html

















quarta-feira, 14 de maio de 2008

Abrir arquivos do Google Earth (*.kmz) usando o browser

Há algum tempo descobri que o Google Maps mostrava o conteúdo de arquivos KML. Basta colar a URL do arquivo no campo de busca do site
http://maps.google.com
e efetuar a busca. O que eu não sabia é que a mesma técnica funciona para os ilegíveis arquivos KMZ do Google Earth.

Para abrir um arquivo KMZ, como este aqui:
http://www.gearthblog.com/kmfiles/lasvegas.kmz
no Google Maps, há também um método alternativo, basta colocar
http://maps.google.com.br/maps?q=
antes da URL, ficando assim:
http://maps.google.com.br/maps?q=http://www.gearthblog.com/kmfiles/lasvegas.kmz
Desta forma não precisamos instalar o Google Earth para ver tais arquivos.

segunda-feira, 5 de maio de 2008

Desempenho de páginas Web

Ou "Como deixar meu website mais rápido?"
Steve Souders proclama que desenvolveu o YSlow, extensão do Firefox e do Firebug que calcula uma nota para a conformidade de um site com as regras para sites de alta performance da YDN. Agora ele proclama mais 10 mandamentos para o desenvolvedor de sites eficientes. Vou listar todas as regras juntas agora:
  1. Diminua requisições HTTP
  2. Hospede seu site em servidores espalhados geograficamente
  3. Crie um prazo de expiração e controle o cache pelo HTTP Header
  4. Compacte os arquivos
  5. Ponha stylesheets no header
  6. Ponha JS no final do body
  7. Evite programação dentro do CSS
  8. Coloque todo JS e CSS cada um no seu arquivo separado
  9. Diminue busca por nomes em DNS
  10. Minifique JS e CSS
  11. Evite redirects (301 e 302)
  12. Remova scripts duplicados
  13. Configure ETags
  14. Faça AJAX cacheável
  15. Use o flush no header para enviar mais cedo partes do HTML
  16. Use GET para fazer requisições AJAX
  17. Carregue depois o que não for essencial no início
  18. Pré-carregue o que provavelmente terá de ser carregado
  19. Reduza o número de tags necessárias para desenhar um layout
  20. Divida os arquivos em vários domínios
  21. Minimize o número de iFrames
  22. Evite chamadas a URLs inexistentes (404)
  23. Reduza o tamanho dos cookies
  24. Use domínios sem cookies para arquivos estáticos
  25. Minimize a chamada a elementos DOM no JS
  26. Desenvolva eventos inteligentes
  27. Prefira <link> a @import
  28. Evite filtros
  29. Otimize imagens
  30. Otimize Sprites CSS
  31. Não use imagens maiores do que o necessário
  32. Crie um favicon.ico pequeno e cacheável
  33. Mantenha todos arquivos com menos de 25Kb
  34. Empacote os arquivos em um documento de várias partes
  1. Divida a carga inicial
  2. Carregue scripts sem bloquear
  3. Não divida scripts
  4. Split dominant content domains, repetido
  5. Make static content cookie-free, repetido
  6. Reduce cookie weight, repetido
  7. Minify CSS, repetido
  8. Optimize images, repetido
  9. Use iframes sparingly, repetido
  10. Ou use www ou não use www
Eu gostaria de acrescentar às listas acima 2 regras que considero importantes:
  1. Otimize loops internos
  2. Crie páginas dentro dos padrões XHTML
A primeira tem sua razão óbvia, pois do ponto de vista da programação é dos loops internos que surge o maior consumo de tempo, otimizando-os reduzirá o tempo de computação total. Para mais instruções de como fazê-lo com Javascript leia este artigo e este também.

A segunda têm aplicações na desenvolvimento para dispositivos móveis aonde os recursos de hardware são mais escassos, e browser que entendam páginas em padrões legados são mais lentos que browsers que processam apenas XHTML. Para testar se seu site está em conformidade com estas regras, visite sua URL pública e depois digite na barra de endereço do browser o seguinte:
javascript:window.location=%22http://validator.w3.org/check?uri=%22+window.location