Como se calcula a distancia entre 2 pontos GPS? Precisei disso, achei que seria mole, mas nao e nao...Felizmente temos muitas pessoas ajudando mundo a fora, e esse cara aqui colocou um codigo legal para isso: http://www.cesar.inf.br/blog/?p=273Transcrevi para Java:public static double distance(double p1Lat, double p1Lon, double p2Lat, double p2Lon) { double constant = 6371.0; p1Lat = p1Lat * Math.PI / 180.0; p1Lon = p1Lon * Math.PI / 180.0; p2Lat = p2Lat * Math.PI / 180.0; p2Lon = p2Lon * Math.PI / 180.0; double lat = p2Lat - p1Lat; double lon = p2Lon - p1Lon; double a = Math.sin(lat / 2) * Math.sin(lat / 2) + Math.cos(p1Lat) * Math.cos(p2Lat) * Math.sin(lon / 2) * Math.sin(lon / 2); double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); return Math.round(constant * c * 1000); // resultado em metros.}A titulo de curiosidade, esse "6371" representa a curvatura da Terra... vivendo e aprendendo...Ate! O Tattletale, da JBoss, e uma ferramente bastante util quando precisamos analisar as dependencias entre projetos, ou de apenas um projeto, ou um algum Jar que queremos utilizar, etc... Ela faz uma analise geral sobre as dependencias dos JARs localizando em um diretorio qualquer.Segundo o proprio site, a ferramente se propoe a coisas como:Identificar dependencia entre JARsEncontrar classes que estejam faltando no classpathEncontrar classes ou pacotes que estejam em mais de um JAREncontrar JARs que estejam em mais de um localLista com o que cada JAR utiliza e disponibilizaVerifica o SerialVersionUID das classesEncontrar JAR similares com versoes diferentesEncontrar JAR sem numero de versaoEncontrar JARs nao utilizadosLocalizar umas classe em alguma JARO uso e bem simples, basta baixar o aplicativo direto do site e rodar o JAR do Tattletale:java -Xms256m -Xmx1024m -jar tattletale.jar <input-directory> <output-directory>A documentacao completa esta disponivel aqui!Aqui no trabalho temos um sistema, que na verdade e a juncao de 17 projetos, onde temos um projeto central onde ficam todas as entidades do sistema assim como os servicos comuns a todos. Utilizamos o Tattletale justamente para encontrar problemas de dependencia neste projeto central, uma vez que ele deveria ser auto-suficiente (nao deveria depender dos outros projetos). Infelizmente o resultado nao foi o esperado, o projeto estava dependendo de varios outros... pelo menos teremos tempo para corrigir.Tem muito relatorio legal no Tattletale, vale uma olhada. Principalmente para sistemas com muitas relacoes entre projetos, com servicos e/ou entidades compartilhadas, etc. Ate! Um assunto muito abordado durante o Agile Brazil 2011 foi o Test-driven development (TDD). E um assunto que nao domino e sempre tive curiosidade de estudar. Assisti algumas palestras/workshops e a ideia e realmente muito bacana, nao e atoa que tem tanta gente utilizando por ai. Vou tentar passar uma visao geral, do pouco que aprendi, sobre TDD neste post.A ideia e simples:Escreva o teste, ele vai falhar;Escreva o codigo, faca o teste passar;Refatore o codigo, pense no que escreveu, tente melhorar. Pronto! Basta refazer esse ciclo a cada nova funcionalidade que deseja criar, e garanta que seu teste esteja. Mas para que fizemos isso? Sera que e apenas para termos um percentual de teste maior? Sera que realmente foi para garantir que o