Mês: dezembro 2015

Manipulação de CPF e CNPJ

Ao desenvolver sistemas aqui no Brasil, muitas vezes se faz necessário trabalhar com CPF e CNPJ e armazenar estes dados em banco.

Embora os campos de entrada desta informação geralmente sejam mascarados para o tal formato (___.___.___-__ ou __.___.___/____-__), muitos desenvolvedores preferem armazenar sem os pontos, traços e barras em campos to tipo string no banco de dados. String pois alguns desses números começam com 0(zero), então se for campo integer poderá enfrentar problemas.

Depois, na hora de usar estes números, pra definir se é um CNPJ ou CPJ basta remover a máscara e fazer a contagem do length: se for 11 é CPF, se for 14 é CNPJ, e qualquer coisa diferente disso é wrong_number. ?

Por exemplo em jQuery poderia ser feito algo assim:
cpf_or_cnpj_input_value = $('#cpf_or_cnpj').val();
cpf_or_cnpj_input_value = cpf_or_cnpj_input_value.replace(/[^\d]/g, '');
switch (cpf_or_cnpj_input_value.length) {
case 11:
is_this_cpf_or_cnpj = "cpf";
break;
case 14:
is_this_cpf_or_cnpj = "cnpj";
break;
default:
is_this_cpf_or_cnpj = "wrong_number";
break;
}

Sendo que na segunda linha é usada uma expressão regular que substitui tudo o que não for dígito, por ”.
E na hora de mostrá-lo, utiliza-se um helper para exibí-lo com pontos, traços e barras, conforme o formato desejado.

Confira por exemplo como ficaria um helper para exibir um CPF fictício em linguagem ruby, usando a sintaxe de slice de array, informando o começo e quantos caracteres deseja em cada slice:

cpf.rb
>> cpf
=> "12345678977"
>> "#{cpf[0,3]}.#{cpf[3,3]}.#{cpf[6,3]}-#{cpf[9,2]}"
=> "123.456.789-77"

O mesmo helper em linguagem python. Repare que em python é diferente: você diz o começo e o fim, e não o começo e quantos caracteres quer:

cpf.py
>>> cpf
'12345678977'
>>> "{}.{}.{}-{}".format(cpf[0:3], cpf[3:6], cpf[6:9], cpf[9:11])
'123.456.789-77'

Referências: https://gist.github.com/dirceu/cc46f465f6957491827f
Greetings to: Dirceu Tiegs (https://github.com/dirceu)

nginx Error: 413 Request Entity Too Large

Ao instalar um WordPress, um dos problemas que talvez enfrente seja: Erro: 413 Request Entity Too Large
Costuma aparecer ao fazer upload de um plugin, tema, mídia ou arquivo qualquer para seu wordpress. Indica que o tamanho do que você está ‘upando‘ é muito grande. Maior do que o esperado.

O que é necessário fazer pra solucionar?

Basta adicionar a seguinte instrução ao arquivo de configuração do nginx que define o wordpress (/etc/nginx/sites-available/seu_wordpress.conf):

server {
client_max_body_size <Tamanho Desejado>M;

}

 
Dessa maneira, passamos a barreira do nginx.
Daí seu blog começa a avisar que o limite encontrado foi no upload_max_filesize do php.ini.
Então, visando ultrapassar a barreira do php.ini, basta incluir isso no final do .htaccess que esta na raiz do blog(/var/www/seu_wordpress/):

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

 
Feito, isso, ultrapassamos a barreira do php.
Agora sim. Tudo funcionando:

Instalando tema do arquivo enviado: meutema.zip

Descompactando o pacote…

 

Referências:
http://www.wpbeginner.com/wp-tutorials/how-to-increase-the-maximum-file-upload-size-in-wordpress/
http://pt.stackoverflow.com/questions/41619/enviando-arquivos-no-nginx-erro-413-request-entity-too-large

Aproximação de clientes em potencial

Entrar em contato com um potencial cliente que nunca ouviu falar de você pode ser assustador. Seja através de uma ligação ou um email, é necessário dar atenção inicialmente justamente a essa maneira escolhida para contato.

Aos poucos torna-se fácil.

Segue formato de email usado para entrar em contato com clientes em potencial, e que já rendeu conversas que levam ao trabalho remunerado.

Assunto: Eu gostaria de ajudá-lo com X

Olá,

Meu nome é Eric Davis e eu gostaria de conversar com você sobre X.

Seu projeto chamou minha atenção pois X. Por gentileza, você poderia me contar um pouco sobre qual é sua principal necessidade atualmente?

Obrigado

Assinatura,

Perceba que única preocupação da abordagem é: iniciar uma conversa. Você não quer vender seu serviço logo de cara. Você não precisa contar-lhe toda sua história ou listar os nomes dos seus melhores clientes e provar 10 razões principais pelas quais você é o melhor freelancer para ele.

Você precisa apenas iniciar a conversa.

Levei algum tempo para entender isso. Eu tentava me vender ao máximo logo no email inicial para evitar ‘idas e vindas’ de informação, tipo uma conversa. Foi então que percebí que eu estava na verdade despejando uma parede de texto e sugestões de atividades a serem feitas pelo meu potencial cliente. Atividades estas que eu mesmo estava pedindo-lhes para realizar.

Como você se sentiria se alguém que você não conhece sugerisse um monte de atividades pra você fazer?

Comece pequeno, com um curto email inicial, e deixe a conversa progredir naturalmente.

Não tenha medo de abordagens frias. Emails, ligações telefônicas ou encontro pessoalmente: todos funcionam e todos tem suas vantagens e desvantagens. Mas é importante fazê-las de maneira apropriada.

Você perderá 100% dos clientes que não entrar em contato.

by Eric Davis (http://theadmin.org)