sexta-feira, 28 de janeiro de 2011

ALGORITMO DE VALIDAÇÃO DE CPF


 Criar e Validar CPF


Com o CPF (Cadastro de Pessoa Física), é um padrão brasileiro. Após umas perguntas pro oráculo achei na wikipedia um artigo sobre CPF e um texto do iMasters que eu achei mais negócio aprender.
O CPF tem 11 dígitos, os dois últimos são chamados de dígitos verificadores e são
conseqüência dos 9 anteriores. Isso quer dizer que vc pode idealizar qualquer combinação de 9 dígitos e só precisa calcular os dois últimos dígitos para ter um CPF válido.
O primeiro dígito é o um número que depende do resto da soma de uma multiplicação de cada um dos nove dígitos por 10, 9, … 3, 2 por 11. E a do segundo é o mesmo esquema, porém inclui o primeiro dígito verificador, e a multiplicação começa em 11 (11, 10 … 3, 2).
Matematicamente falando, o primeiro dígito é 0 se o resto da divisao de (10 * a + 9 * b + 8 * c + 7 * d + 6 * e + 5 * f + 4 * g + 3 * h + 2 * i)  por 11 for menor que 2 e é a diferença entre 11 e o resto da divisão caso contrário; sendo abcdefghi os nove primeiros números do CPF.
Para exemplificar vou usar 123456789 como os primeiros nove dígitos do CPF.
Dígitos do CPF123456789
Multiplicadores1098765432
Produtos101824283030282418

* Para calcular o primeiro dígito verificador soma-se os produtos e divide por 11. Caso o resto da divisão seja menor que 2 o dígito verificador é 0, senão é a diferença de 11 e o próprio resto.

Com esta tabelinha fica bem mais fácil o cálculo do primeiro dígito verificar, usando módulo 11:
10 + 18 + 24 + 28 + 30 + 30 + 28 + 24 + 18 = 210
210 % 11 = 1
Como 1 é menor que 2, o dígito é 0.
Vamos ao próximo dígito verificador.
Dígitos do CPF1234567890
Multiplicadores111098765432
Produtos1120273235363532270
Somando os produtos temos:
11 + 20 + 27 + 32 + 35 + 36 + 35 + 32 + 27 + 0 = 255
255 % 11 = 2
Como 2 não é menor que 2, o segundo dígito verificador é 11 – 2 = 9.
Assim, o CPF completo é 123456789-09.

terça-feira, 25 de janeiro de 2011

Regras de configuração do Crontab no FreeBSD


Uma das ferramentas mais úteis no FreeBSD é o cron(8). O utilitário cron roda em segundo plano e constantemente verifica o arquivo /etc/crontab. O utilitário cron também verifica o diretório /var/cron/tabs, em busca de novos arquivos crontab. Estes arquivos crontab armazenam informações sobre funções específicas que o cron deve executar em determinados momentos.
O utilitário cron usa dois tipos diferentes de arquivos de configuração, o crontab do sistema e os crontab de usuários. A única diferença entre estes dois formatos é o sexto campo. No crontab do sistema, o sexto campo é o nome de um usuário utilizado para executar o comando. Isto dá ao crontab do sistema a capacidade de executar comandos como qualquer usuário. Em um crontab de usuário, o sexto campo é o comando para ser executado e todos os comandos são executados como o usuário que criou o crontab; isto é uma característica importante para segurança.
Nota: crontab's de usuários permitem a usuários individuais agendar tarefas sem a necessidade de privilégios de root. Comandos em um contrab de usuário rodam com as permissões do usuário dono deste contrab.

O usuário root pode ter um crontab de usuário, como qualquer outro usuário. Este é diferente do /etc/crontab (crontab do sistema). Por causa do crontab do sistema, normalmente não há necessidade de criar um crontab para o root.
Vamos dar uma olhada no arquivo /etc/crontab (o crontab do sistema):
# /etc/crontab - root's crontab for FreeBSD
#
# $ FreeBSD: /etc/crontab, v 1,32 2002/11/22 16:13:39 tom Exp $
# *1
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin *2
HOME=/var/log
#
#
# minute    hour    mday    month    wday    who    command *3
#
#
*/5    *    *    *    *    root    /usr/libexec/atrun *4
*1
Como na maioria dos arquivos de configuração do FreeBSD, o caracter # representa um comentário. Um comentário pode ser colocado no arquivo como um lembrete de qual ação é executada e porque. Comentários não podem estar na mesma linha que o comando senão serão interpretados como parte do comando. Eles devem estar em uma nova linha. Linhas em branco são ignoradas.
*2
Primeiramente, o ambiente deve ser definido. Os caracteres (=) são usados para definir as configurações de ambiente, como neste exemplo, onde são utilizados para as opçõesSHELLPATH e HOME. Se a linha do shell for omitida, o cron usará o padrão, que é o sh. Se a variável PATH for omitida, nenhum padrão será usado e os caminhos para os comandos deverão ser absolutos. Se o HOME for omitido, o cron usará o diretório home do usuário dono do arquivo crontab, no caso de crontab de usuário, ou do usuário definido no sexto campo (who), no caso de crontab do sistema.
*3
Esta linha define um total de sete campos. Temos aqui os valores minutehourmdaymonthwdaywho, e command. São quase todos auto-explicativos. minute é o minuto do horário em que o comando será executado (0 a 59). hour é semelhante à opção minuto, só que representa a hora (0 a 23). mday para o dia do mês (1 a 31). month é similar a hora e minutos, designa o mês (1 a 12). A opção wday significa dia da semana (0 a 6, sendo 0 o domingo). Todos estes campos devem ser valores numéricos, e seguir as vinte e quatro horas do relógio. O campo who é especial e só existe no arquivo /etc/crontab. Este campo especifica sob qual usuário o comando deve ser executado. Quando um usuário instala seu aquivo crontab, ele não terá essa opção. Finalmente, a opção command. Este é o último campo, assim, naturalmente deve designar o comando a ser executado.
*4
Esta última linha definirá os valores discutidos acima. Perceba que aqui temos um */5, seguido por vários outros caracteres *. Estes caracteres * significam "primeiro-último" e podem ser interpretados como toda vez. Assim, analisando essa linha, é evidente que o comando atrun será executado pelo root a cada cinco minutos, independentemente de que dia ou mês seja. Para obter mais informações sobre o comando atrun, consulte atrun(8) no manual. Os comandos podem ter qualquer número de parâmetros passados para eles, no entanto, os comandos que se estendem a várias linhas precisam ser quebradas com a barra invertida "\" que é o caractere de continuação de linha.
Esta é a configuração básica para todo arquivo crontab, embora exista uma diferença nesta. O campo de número seis, onde é especificado o nome de usuário, só existe no arquivo do sistema /etc/crontab. Este campo deve ser omitido para arquivos crontab de usuários.

segunda-feira, 24 de janeiro de 2011

Subversion

Este post é para os programadores que estão cansados de ter que refazer códigos que apagaram por algum motivo e não tem como pegar o código já apagado ou em uma equipe que cada individuo faz uma coisa e depois tem que ficar toda a equipe perdendo tempo para juntar os código. 

Para acabar com estes problemas e outros relacionados a projetos ou outros controle do tipo existem os sistemas de controle de versão e entre estes sistemas utilizo o Subversion ou SVN.


O Subversion é um controle de versão free/open-source (código aberto) que permite armazenar documentos de qualquer natureza efetuando controle de acesso aos repositórios e mantendo as alterações através de um controle de revisões. Subversion pode ser usado para controlar alteração de diversos tipos de documentos.

Nada mais  do que o local onde você vai guardar o seu projeto. Na pratica, um diretório, uma pasta qualquer guardada ou no seu computador, ou no seu pendrive, ou em um server.






Segue um link do Google docs para alguns documentos relacionados ao Subversion:

IPFW

Fala Galera,

Tudo bem?

Este post esta relacionado com o IPFW para que não sabe o IPFW nada mais é que um sistema de controle de firewall para quem não sabe firewall é um sistema, protocolo ou programação “como se quiser definir”, para o controle gerar de sua rede como velocidade de um cliente, filtragem de um pacote IP, entre outros, isso para servidores FreeBSD.

A forma lógica como o IPFW trabalha suas regras é parecida com a adotada em muitos outros filtros de pacotes (Packet Filters), com excessão do IPFilter, que opera com um padrão pra tratar as regras que é menos eficiente e requer bem mais cuidado na hora de ajustar o firewall.
Mas isso não tira a qualidade e o poder de implementação de firewalls do ipf(8), que tem também suas próprias vantagens. A escolha final em relação a qual ferramenta de Filtragem de Pacotes utilizar, é uma decisão pessoal, a não ser que você tenha necessidade de alguma característica de um Firewall que o outro não possua.

Pessoalmente só tive interação com IPFW e nenhum com outro tipo de Firewall existem N comando para a gestão do IPFW para isso irei postar no Google docs um .pdf tutorial sofre IPFW só pra variar HEHE.

Link:

Att, a próxima pessoal.

terça-feira, 18 de janeiro de 2011

Apache

Fala galera,

Este post esta relacionado ao apache quem nunca, perdeu tempo configurando o apache na vida que atire a primeira pedra (configurar por código ser usar apache triad ou algo parecido já que em sistemas Unix não teremos ferramentas como estas). 



 Para quem não sabe o Apache é o servidor Web mais usado no mundo, é um programa responsável por disponibilizar páginas, fotos, ou qualquer outro tipo de objeto ao navegador do cliente.  Ele também pode operar recebendo dados do cliente, processando e enviando o resultado, para que o cliente possa tomar a ação desejada (como em aplicações CGI, banco de dados web, preenchimento de formulários, etc).



Para mais informações estou postando o link do meu Google docs com alguns arquivos relacionados a instalação, configuração e funcionamento do apache.


segunda-feira, 17 de janeiro de 2011

IMSpector

Ola a todos,

Esta é para os administradores de rede que sempre quiseram bloquear os usuários de sua rede para não ficarem utilizando MSN ou outro IM que dispersa e tira do foco o seu colaborador, para isso estou postando sobre IMSpector :



É um sistema de gravação do monitoramento pode ser feito através de arquivo texto, MySQL,  SQLite ou PostgreSQL, por padrão apenas o registro em arquivo texto está ativo sendo necessária a compilação das bibliotecas adicionais para funcionamento da gravação em banco de dados. Ainda segundo o desenvolvedor o software possui opção para emitir avisos sobre o monitoramento  das  conversas,  sendo  que  apenas  no  ICQ/AIM  este  processo  não  é suportado, enquanto que a manipulação do conteúdo, através da substituição de palavras não permitidas  por  outros  caracteres  está  suportada  em  todos  os  protocolos.  Outro  ponto importante é o suporte de utilização de regras para conversação, podem realizar a limitação de quais usuários poderão utilizar os comunicadores dentro da  rede  local e com quem poderão conversar.


Pode –se encontrar mas sobre IMSpector como instalar e tudo mais no site oficial:

No meu Google docs estarei disponibilizando um .pdf que me ajudou quando precisei fazer alguns teste com o IMSpector:

Documentos no Google docs

Bom dia a todos,

Para quem não sabe eu crie um Google docs relacionado ao blog
*jsilva podem acessa – lo

pelo link: