Desativar botão (Para rotinas que demoram a processar)
StandardEssa dica pode ser utilizada em aplicações que demoram quando estão processando e desta forma você pode evitar que o usuário clique novamente no botão. Basta adicionar o código abaixo na configuração javascript form – onload da sua aplicação no scriptcase, onde sub_form_b é o id do botão que você quer esconder, para descobrir o id que o scriptcase gera basta inspecionar o elemento(botão) com o navegador:
$( ‘#sub_form_b’ ).click(function() {
alert(‘Botão Clicado Aguarde Processamento’);
$(this).hide();
});
Atalhos SQL Management Studio
StandardÍcones gratuitos
StandardSegue 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
StandardNo 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:
Comando SCP no Linux
StandardSecure 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.
Usando PHP Filter Extension para Validação
StandardAbaixo 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
StandardSegue 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
StandardSegue 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
Interface de Aplicativos Mobile
StandardSegue abaixo um link de um site bem interessante onde você pode desenhar a interface de um aplicativo mobile apenas arrastando componentes para tela e depois clicar em exportar e o site gera um arquivo compactado no formato zip com o arquivo html e css