sábado, 29 de agosto de 2009

Calcular distância entre as cidades do Brasil

Olá pessoal! Achei um post interessante onde o autor (Marcos Roberto Silva) colocou um código perl que usa o google maps para dizer qual a distância entre duas cidades. A quem interessar o artigo está aqui.
Eu vi o código e ele é bem simples, assim fiz uma versão usando php (o php tem muitas coisas parecidas com o perl, afinal ele tem suas origens ligadas ao perl).
Este é o código php que faz toda a mágica:
Update: Olhe no fim do post
$origem = "Oiapoque-AP";
$origem_codificada = urlencode($origem);
$destino = "Chui-RS";
$destino_codificado = urlencode($destino);

if (! empty($origem) && ! empty($destino)) {
$url = "http://maps.google.com.br/maps?saddr={$origem_codificada}&daddr={$destino_codificado}&hl=en&z=1";
$conteudo = file_get_contents($url);
$dados = split(',distance:"', $conteudo);
$distancia = split(' km",', $dados[1]);
$distancia[0] = str_ireplace(',', '', $distancia[0]);

$mensagem = "Distancia de $origem a $destino = $distancia[0] km\n";
} else {
$mensagem = "Preencha os dois campos como Goiânia-GO e Brasília-DF";
}



O código praticamente não tem diferença do original. Você pode adaptá-lo facilmente para exibi-lo em uma página web.

Update:
Conforme os comentários este código já está obsoleto, tanto pelo fato de a Google ter mudado a resposta da página quanto pelo fato do código provocar warnings do tipo Deprecated nas versões mais recentes do PHP. No código abaixo uma versão que alterei rapidamente. Aparentemente ela funciona, mas depende muito da resposta enviada pelos servidores da Google.

sexta-feira, 14 de agosto de 2009

Atalhos extremamente úteis para o NetBeans (Tradução)

Em um blog que fala muito de PHP o que o netbeans estará fazendo aqui? Nebeans não é para Java?! Bom, venho usando a versão dele para php a algum tempo e tenho que dizer que ele é um excelente editor para esta linguagem.
Um dia destes trombei com um post bem interessante falando de alguns atalhos no netbeans que estão me ajudando a ser muito mais produtivo neste ambiente. Para aqueles que acham que o netbeans é pesado, lento, foi feito em java e etc, sugiro olharem a versão específica para php que é bem leve e tem somente os recursos básicos (se bem que você tem a opção de instalar diversos plugins para adiconar outras finalidades) para php.
O artigo original você encontra neste link. Obrigado
Aí vai a tradução:
Já tem um bom tempo que confio somente no NetBeans para o desenvolvimento em Java e PHP. Até agora, ele está além das minhas maiores expectativas - estou totalmente satisfeito com esta excelente IDE. Hoje, eu estava procurando por um atalho que me premitisse duplica uma linha, e (felizmente!) encontrei este grande post Top 10 NetBeans IDE Keyboard shortcuts. Não somente encontrei o atalho de duplicar a linha, eu também descobri diversas outras pérolas que devido a não estarem disponíveis nas minhas IDE's anteriores, eu nunca tinha considerado procurar por elas.
Então, decidi compilar minha própria lista de atalhos que me salvam um bom tempo durante as sessões de desenvolvimento.
Shift + esc Alterna a área de trabalho entre Maximizar/Minimizar.
Como o autor do post original, eu gosto muito de ter o máximo possível de área de trabalho para o código. E quando ocasionalmente eu preciso ver um dos painéis suplementares (como Arquivos, projetos, Navegador etc), eu confio mais nos atalhos, alternando maximizando/minimizando eles. Então, se eu preciso ver alguns dos painéis acoplados eu digito alguns dos seguintes atalhos:
Ctrl + 1 - Janela de Projeto
Ctrl + 2 - Janela de Arquivos
Ctrl + 3 - Janela de Favoritos
Ctrl + 4 - Janela de Saída
Ctrl + 5 - Janela de Serviços
Ctrl + 2 - Janela de Tarefas

e quando termino, Ctrl + 0 para voltar para o editor. Tente você mesmo, tenho certeza de que, você ficará maravilhado com a quantidade de tempo que isso salva para você, enquanto faz a área de código menos confusa.

Alt + Enter Ver sugestões de correção
NetBeans faz a sua vida ficar bem mais fácil, seu analisador de código Java realmente faz um bom trabalho. Muitos dos erros são filtrados mesmo antes da compilação - você deve ver a lâmpada no lado esquerdo do seu código, você pode ver as sugestões de correção clicando nisto ou (economia de tempo novamente) apertando Alt + Enter. Eu pessoalmente gosto muito deste, como eu prefiro ver porque a IDE está reclamando sem retirar minhas mãos do teclado.

Ctrl + F12 Navegar para o membro
Se sua classe é muito grande, então a visualização de membros no paindel Navegador (Ctrl + 7 lembra-se?) pode não ser a melhor opção. Apenas aperte Ctrl + F12 e você poderá navegar mais fácilmente, porque esta opção possui filtros que eliminam os membros que não se encaixam no que você está digitando.

Alt + Insert Gerar código
Este é um dos meus favoritos - geradores de código para setters/getters/construtores são muito sexy para serem enganados. Este atalhos faz eles serem ainda mais úteis.

Ctrl + Shif + Seta para baixo Duplicar as linnhas.
Duplicar linhas nunca foi tão fácil :) . Se você quer que a duplicação seja inserida antes da linha corrente, use Seta para cima ao invés de Seta para Baixo.

Ctrl + W Fechar janela corrente
Firefox honra este atalho, assim como o Konqueror. Então, até configurei meu console para usar este atalho por padrão. Em pouco tempo você vai se acostumar a apertar esta combinação ao invés de Ctrl + F4.

Ctrl + PgUp e Ctrl + PgDown Navegar entre as janelas
De novo, me acostumei com este com o Firefox. Fica rápido percorrer entre os documentos abertos.

Ctrl + P Mostra os argumentos dos métodos
Dentro dos parenteses do método use esta combinação para ver quais parâmetros estão presentes. Muito útil quando estiver revendo código.

Ctrl + ; Adiciona um ponto e vírgula no final da linha sem mover o cursor.
Se você estiver trabalhando em um código e o netbeans sublinhar a linha com vermelho (devido ao ainda inexistente ponto e vírgula no final da linha) apertar Ctrl + ; (Ctrl + ponto e vírgula) é o bastante para fechar o comando, enquanto você ainda está posicionado na mesma posição na linha. Vi primeiro no dzone.com , e adoro usar este atalho.

Ctrl + K e Ctrl + L Auto completa com a próxima/anterior palavra compatível
Eu uso esta combinação mais frequentemento do que Ctrl + Espaço para auto-completar. Listar todos os itens com Ctrl + Espaço pode ser lento, mas apertando Ctrl + K é isntântaneo. Muito frequentemente o nome da varável que você está digitando já foi digitado em outro local no mesmo arquivo corrente, completar com Ctrl + K ou Ctrl + L é provavelmente o mais óbvio a ser feito.

Ctrl + E Excluia linha atual

Ctrl + Del e Ctrl + Backspace Exclui a próxima/anterior palavra.

Eu geralmente uso Ctrl + BackSpace, mas em algumas ocasiões Ctrl + Del se provou útil.
Isto é mais do que o bastante para colocá-lo no caminho. Em algum tempo, eu planejo escrever uma lista mais extensa de atalhos exóticos que você raramento usa, porque dificilmente você os conhecia.
Que atalhos lhe dão mais tempo?