Ícones gratuitos

Standard

Segue abaixo uma lista de sites que disponibilizam gratuitamente ícones de vários temas, formatos e dimensões. Estes sites são um excelente recurso para os profissionais que trabalham com desenvolvimento de sites e aplicativos, pois a utilização de ícones deixa os sites e aplicativos mais atrativos aos usuários.

API de consulta de CEP

Standard

No link abaixo existe uma breve documentação da API de um serviço de consulta de CEP gratuito:

http://avisobrasil.com.br/api-de-consulta-de-cep/

Exemplo:

 

<!DOCTYPE html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title></title>
    <script>
    function atualizacep(cep){
      cep = cep.replace(/\D/g,"")
      url="http://cep.correiocontrol.com.br/"+cep+".js"
      s=document.createElement('script')
      s.setAttribute('charset','utf-8')
      s.src=url
      document.querySelector('head').appendChild(s)
    }

    function correiocontrolcep(valor){
      if (valor.erro) {
        alert('Cep não encontrado');
        return;
      };
      document.getElementById('logradouro').value=valor.logradouro
      document.getElementById('bairro').value=valor.bairro
      document.getElementById('localidade').value=valor.localidade
      document.getElementById('uf').value=valor.uf
    }

    </script>
  </head>
  <body>
  <h1>Busca de cep do Correio Control</h1>
  <label>CEP</label>
  <input id="cep" onblur="atualizacep(this.value)" />
  <label>Logradouro</label>
  <input id="logradouro" />
  <label>Bairro</label>
  <input id="bairro" />
  <label>Cidade</label>
  <input id="localidade" />
  <label>UF</label>
  <input id="uf" />
  <p>
  <a href="http://avisobrasil.com.br/api-de-consulta-de-cep/">Voltar para a página de documentação</a>
  </p>
  </body>
</html>

Outra alternativa para consulta de CEP:

http://www.pinceladasdaweb.com.br/blog/2012/01/31/webservice-consulta-de-cep-diretamente-ao-site-dos-correios/

Comando SCP no Linux

Standard

Secure Copy ou SCP é um meio seguro para transferir arquivos entre um host local e um remoto ou entre dois hosts remotos, usando o protocolo SSH.

O termo SCP pode ao mesmo tempo referir-se ao Protocolo SCP ou ao Programa SCP.

Sintaxe do comando:

scp /ArquivoFonte usuário@host:/diretório/ArquivoAlvo
scp usuário@host:/diretório/ArquivoFonte /ArquivoAlvo

Segue abaixo alguns Exemplos de uso do programa SCP na linha de comando no linux:

– Dentro do diretório:
$ scp arquivo usuario@192.168.1.2:/home/usuario

– Fora do diretório:

$ scp /home/usuário/arquivo usuario@192.168.1.2:/home/usuario

– Especificar a porta com o parâmetro -P:
$ scp -P 22 arquivo usuario@192.168.1.2:/home/usuario

– Habilitando modo verbose:

$ scp -vP 22 arquivo.jpg usuario@192.168.1.2:/home/usuario

Executing: program /usr/bin/ssh host 192.168.1.2, user usuario, command scp -v -t — /home/usuario

OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010

debug1: Reading configuration data /etc/ssh/ssh_config

debug1: Applying options for *

debug1: Connecting to 192.168.1.2 [10.168.1.2] port 22.

debug1: Connection established.

debug1: identity file /home/usuario/.ssh/id_rsa type -1

debug1: identity file /home/usuario/.ssh/id_rsa-cert type -1

debug1: identity file /home/usuario/.ssh/id_dsa type -1

debug1: identity file /home/usuario/.ssh/id_dsa-cert type -1

debug1: identity file /home/usuario/.ssh/id_ecdsa type -1

debug1: identity file /home/usuario/.ssh/id_ecdsa-cert type -1

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6

debug1: match: OpenSSH_5.5p1 Debian-6 pat OpenSSH*

debug1: Enabling compatibility mode for protocol 2.0

debug1: Local version string SSH-2.0-OpenSSH_5.8p1 Debian-1ubuntu3

debug1: SSH2_MSG_KEXINIT sent

debug1: SSH2_MSG_KEXINIT received

debug1: kex: server->client aes128-ctr hmac-md5 none

debug1: kex: client->server aes128-ctr hmac-md5 none

debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent

debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP

debug1: SSH2_MSG_KEX_DH_GEX_INIT sent

debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY

debug1: Server host key: RSA 45:ff:aa:e3:f2:a1:12:ac:56:cd:6e:6a:44:aa:ff:67

debug1: Host ‘192.168.1.2’ is known and matches the RSA host key.

debug1: Found key in /home/usuario/.ssh/known_hosts:3

debug1: ssh_rsa_verify: signature correct

debug1: SSH2_MSG_NEWKEYS sent

debug1: expecting SSH2_MSG_NEWKEYS

debug1: SSH2_MSG_NEWKEYS received

debug1: Roaming not allowed by server

debug1: SSH2_MSG_SERVICE_REQUEST sent

debug1: SSH2_MSG_SERVICE_ACCEPT received

debug1: Authentications that can continue: publickey,password

debug1: Next authentication method: publickey

debug1: Trying private key: /home/usuario/.ssh/id_rsa

debug1: Trying private key: /home/usuario/.ssh/id_dsa

debug1: Trying private key: /home/usuario/.ssh/id_ecdsa

debug1: Next authentication method: password

usuario@192.168.1.2’s password:

debug1: Authentication succeeded (password).

Authenticated to 192.168.1.2 ([192.168.1.2]:22).

debug1: channel 0: new [client-session]

debug1: Requesting no-more-sessions@openssh.com

debug1: Entering interactive session.

debug1: Sending environment.

debug1: Sending env LANG = pt_BR.UTF-8

debug1: Sending command: scp -v -t — /home/usuario

Sending file modes: C0644 18456 arquivo.jpg

Sink: C0644 18456 arquivo.jpg

arquivo.jpg                                                                                                                                                            100%   18KB  18.0KB/s   00:00

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0

debug1: channel 0: free: client-session, nchannels 1

debug1: fd 0 clearing O_NONBLOCK

debug1: fd 1 clearing O_NONBLOCK

Transferred: sent 20400, received 2072 bytes, in 0.1 seconds

Bytes per second: sent 196905.4, received 19999.4

debug1: Exit status 0

 

OBS: Será solicitada a senha do usuário no computador remoto, caso tenha DNS resolvendo nome de rede, pode executar os comandos acima utilizando os nomes ao invés do IP.

Fonte :

http://pt.wikipedia.org/wiki/Unix_SCP

Usando PHP Filter Extension para Validação

Standard
Filter extension faz parte da distribuição oficial do PHP 5.2.0 e oferece aos desenvolvedores uma maneira fácil de validar os dados de entrada do usuário em seus sistemas.

Abaixo segue alguns exemplos de validações com esta extensão:

Validar e-mail:

$email = "teste.teste.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) 
{ echo "E-mail válido "; }

else { echo "E-mail inválido!"; }

Validar uma string com expressão regular:

$string = "' OR ''='";
if (filter_var($string, FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => "/^[a-zA-Z0-9]+$/"))))
{ echo "String válida"; }

else { echo "String inválida"; }

Validar um número do tipo inteiro idade dentro de um intervalo:

$idade=10;

if (filter_var($idade, FILTER_VALIDATE_INT, array('options' => array('min_range' => 18, 'max_range' => 100))))
{ echo "Idade dentro do intervalo"; }

else { echo "Idade fora do intervalo!"; }

Indice Parcial no Postgresql

Standard

Segue abaixo um exemplo de como trabalhar com índices parciais no postgresql, para saber mais sobre o assunto clique no link que segue:

http://pgdocptbr.sourceforge.net/pg80/indexes-partial.html

EXEMPLO:

-- Criar Table: contato

CREATE TABLE contato
(
id bigserial NOT NULL,
datanascimento date,
email character varying(255),
nome character varying(255),
CONSTRAINT contato_pkey PRIMARY KEY (id),
CONSTRAINT contato_email_key UNIQUE (email)
)
WITH (
OIDS=FALSE
);
ALTER TABLE contato OWNER TO postgres;

-- Criando indice parcial (só valida a unicidade do campo e-mail se o mesmo for diferente de null)
CREATE INDEX email_ix ON contato (email)
WHERE email IS NOT NULL;

-- O Comando abaixo pode ser executada várias vezes sem gerar erro 
INSERT INTO contato (datanascimento,email,nome) values (now(),null,'nome')

-- O Comando abaixo gera o seguinte erro quando executado mais de uma vez:
-- ERRO:  duplicar valor da chave viola a restrição de unicidade "contato_email_key"
INSERT INTO contato (datanascimento,email,nome) values (now(),'teste@teste.com.br','nome')

-- Ver resultado
SELECT * FROM contato

1 2010-12-15 null nome
2 2010-12-15 null nome
3 2010-12-15 teste@teste.com.br nome

Como configurar um banco, tabela ou campo do MySQL para formato CASE INSENSITIVE

Standard

Segue abaixo exemplos de como mudar banco, tabela e campo para case insensitive:

-- PARA ALTERAR COLLATE DA DATABASE 
ALTER DATABASE cliente DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; 

-- PARA ALTERAR COLLATE DA TABELA 
ALTER table tb_cliente DEFAULT CHARACTER SET UTF8 COLLATE utf8_unicode_ci; 

-- PARA ALTERAR COLLATE DE UM CAMPO DA TABELA 
ALTER TABLE `tb_cliente` MODIFY `Cliente` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default ''"

 

Fonte: http://tutorial.uolhost.com.br/index.php?p=resposta&res=267#rmcl

Recomendações para a partição swap no linux

Standard

A partição swap é a partição da memória virtual, as recomendações que aqui serão feitas sobre o tamanho dessa partição leva em conta o tamanho da memória RAM.

Se a sua máquina tiver de 128MB a 256MB de memória RAM então recomenda-se subtrair o valor da memória RAM de 1024, o resultado da subtração será o valor destinado à partição swap. Exemplo: 1024 – 128 = 896MB

Máquinas que possuem de 512MB de RAM pode-se utilizar 512MB de swap e para máquinas de 1GB de RAM é recomendado 384MB.

Máquinas com mais de 1GB de memória RAM, utiliza-se 256MB para a memória virtual (swap).

Obs.: Se você possuir até 512MB de memória RAM, crie a partição swap no início do disco, caso contrário, crie no final.

Fonte: GNU/Linux (Aprenda a operar o sistema na prática, 2ª edição)