Postagens

Linux - Utilizando o comando DIFF para comparar diferenças entre arquivos em diferentes pastas

Um comando do Shell Linux muito interessante e útil é o 'diff'. Utilizo ele tanto para verificar as diferenças entre arquivos gerados por um sistema em que fiz alguma atualização quanto para verificar diferenças no código entre versões de arquivos de aplicações. Sua utilização é muito simples: $ diff /diretorio1 /diretorio2 | cat > /diretoriodesaida/diferencas.txt Explicando o comando acima: 'diff' verifica a diferença entre os arquivos nas pastas 'diretorio1' e 'diretorio2', inclusive diferenças dentro dos arquivos. '| cat > /diretoriodesaida/diferencas.txt' direciona a saída padrão da tela para um arquivo, ou seja, os resultados da análise poderão ser checados no arquivo 'diferencas.txt' Dentro do arquivo gerado 'diferencas.txt' estão indicados todos os trechos que foram modificados entre dois arquivos de mesmo nome ou as diferenças entre quantidades de arquivos.

MySQL - Filtrando CEP com a ajuda do REGEXP

Vamos a uma dica rápida de REGEXP, utilizando como base a seleção de linhas em uma tabela que possuem CEP preenchido. Nossa tabela possui a seguinte estrutura: ID Endereço CEP 1 Rua peruibe 459 05698426 2 Rua martim 67 - 3 Av Rebouças 1000 08968547 Para selecionar apenas as linhas que possuem CEP utilizamos a seguinte Query: SELECT ID,ENDERECO,CEP FROM tabela WHERE CEP REGEXP '^0[0-9]{7}$'  O que nossa REGEXP faz? ^0  : faz com que o MySQL olhe a partir do primeiro caractere e pegue apenas os valores com zero; [0-9]{7}  : após o primeiro caractere, que deve ser zero, pega os campos cujos próximos 7 valores sejam numéricos $  : finaliza o REGEXP, ignorando tudo mais que venha depois dos oito caracteres numéricos indicados anteriormente. O resultado da Query seria: ID Endereço CEP 1 Rua peruibe 459 05698426 3 Av Rebouças 1000 08968547 Abraço!

SQL JOINS - Um infográfico muito bacana que ajuda a entender melhor os JOINS

Imagem
JOINS de SQL geralmente são chatinhos de visualizar mas, apesar disso, são extremamente úteis, principalmente em bancos de dados cuja estrutura está normalizada. Para melhorar este cenário e facilitar a compreensão segue abaixo um infográfico que explica de maneira visual o que cada tipo de JOIN faz. Obs: infelizmente no MySQL não existe FULL OUTER JOINs. Para fazer isso são necessários alguns truques utilizando UNION de duas ou mais seleções utilizando LEFT e RIGHT JOINs.

Javascript - Comportamentos diferentes para incremento de valores com ++ antes e depois da variável

Hoje vamos tratar de algo que aparentemente é muito bobo mas que na verdade não o é e costuma trazer grandes problemas quando utilizado de maneira errada: o incremento em variáveis. O incremento está presente em inúmeras linguagens de programação. Os exemplos que apresentarei aqui são baseados em Javascript , porém eles são válidos também para PHP e outros. Acredito que todos sabem que para incrementar ou decrementar (adicionar ou subtrair) uma unidade a uma variável, ao invés de fazer isso: $a = $a + 1 Podemos fazer isso: $a++ ou isso: ++$a Bem, acredito que todos sabem deste truque, mesmo porque é a primeira coisa que aprendemos quando iniciamos na arte de programar, porém você sabe qual a diferença entre ambos? Vamos rodar um javascript bem simples para exemplificar o que acontece: $a = 0; $b = 0; $a++; ++$b; console.log($a); console.log($b); É provável que você obtenha como resultado: 1 1 Bem, até ai parece que não existem diferenças, correto? Inic...

PHP - Pulando linhas do resultado de uma Query com mysql_data_seek()

mysql_data_seek() move o ponteiro interno do resultado de uma Query MySQL para o número da linha especificada. A próxima chamada de uma função, por exemplo mysql_fetch_assoc (), irá retornar esta linha. mysql_data_seek()  é muito útil quando se quer trabalhar com paginações, por exemplo. Vamos a um exemplo simples, sem o uso do  mysql_data_seek() , onde uma tabela simples com ID e nome é consultada. <?php include "db.php"; $result = mysql_query("SELECT * FROM ident"); while ($row = mysql_fetch_array($result))  { echo "ID: {$row['id']}, Nome: {$row['nome']} <br/>"; } O Resultado é: ID: 1, Nome: Daniel ID: 2, Nome: Salete ID: 3, Nome: Veronica ID: 4, Nome: Mona ID: 5, Nome: Zilda ID: 6, Nome: Ofelia ID: 7, Nome: Patricia Agora vamos utilizar  mysql_data_seek() . Vamos pular o resultado da consulta da linha 0 para a linha 5 e repetir o loop: <?php include "db.php"; $result =...

PHP - Rodando PHP pela linha de comando: passando parâmetros

Imagem
Para quem não sabe o PHP pode ser rodado via linha de comando, seja no Linux, DOS ou MAC e não somente via browser. Podemos rodar um script desta forma (no DOS): c: \xampp\htdocs\>php meuscript.php Pelo browser podemos passar parâmetros usando os caracteres ? e & como separadores localhost/meuscript.php?parametro=linha E no script 'pegamos' este parâmetro através do $_GET. Pela linha de comando $_GET não consegue pegar parâmetros. Desta forma devemos modificar nosso script de forma a receber os parâmetros imputados via linha de comando. A variável interna $argv captura os parâmetros imputados: <?php var_dump($argv); Agora podemos rodar o script e enviar os parâmetros: c: \xampp\htdocs\>php meuscript.php linha Veremos como saída: Array(2) {   [0] => string(16) "meuscript.php"   [1] => string(5) "linha" } Ou seja, os parâmetros são reconhecidos pelo script como uma array de valores. É isso ai!

Calculando distâncias com Geolocalização pelo MySQL

Imagem
Geolocalização está no topo das tecnologias atuais pois junto com os dispositivos móveis vieram também inúmeras oportunidades de aplicativos que utilizam a localização do usuário para uma infinidade de coisas, de dizer se um amigo está por perto a indicar restaurantes ou serviços próximos a onde o usuário está. Sendo assim é imprescindível aprendermos a trabalhar com geolocalização. A Geolocalização é fundamentalmente um serviço fornecido pelo "Front End" ou falando de modo mais geral do lado cliente, pois é o browser ou o aparelho móvel quem disponibiliza esta informação. Apesar disto existem  coisas relacionadas com Geolocalização que sim podem (e devem) ser feitas do lado servidor (Server Side). Se você está criando alguma aplicação relacionada a encontrar locais próximos, por exemplo, caso não esteja usando um web service de terceiros, no mínimo um banco de dados com as coordenadas geográficas de vários locais você provavelmente deverá possuir. Vamos supor que...