Categorias
Ubuntu

Atualização para o Oneiric

Há algumas horas atrás eu iniciei as atualizações do 11.04 para o 11.10. Contra as sugestões, eu sempre faço a atualização diretamente, ao invés de uma instalação limpa. eu prefiro assim. Gosto de reforçar que, para quem quer, a atualização do ubuntu também funciona. Basta estar disposto.

Uma característica da atualização é que, ao final do download dos pacotes, toda a instalação é feita com o acesso a rede desabilitado. Só após a reinstalação é que a rede retorna.

No meu inspiron 1525 a atualização demorou por volta de 2 horas. Nenhum problema foi relatado e após a reinicialização estava lá o novo 11.10. Demais!

No computador de mesa, um quadcore com 4gb, eu achei que seria mais rápido. Demorou por volta de 3 horas (download e instalações) e no final pipocaram várias vezes erros de atualização do plugin do flash. Penei um pouco para conseguir reiniciar e, após isso, meu usuário principal não consegue carregar a área de trabalho. O outro usuário carrega normalmente, mas meu usuário principal não o faz. Já tentei a reinstalação de alguns pacotes, sem sucesso.

No pavillion dv4 da minha esposa parece ter demorado por volta de 2 horas e meia (engraçado, mas o computador mais fraco foi o mais rápido). Os erros do plugin do flash também pipocaram. Fiquei com medo, mas o reinício foi com sucesso e estava eu com o novo 11.10 também.

Até este momento estou sentindo que talvez a performance seja a mesma, senão um pouco mais lento do que o 11.04. Vamos acompanhar mais um pouquinho.

O erro que ocorreu em todos foi o flashplugin-installer failed.

Foi necessário o seguinte:

sudo dpkg --configure -a
sudo aptitude update
sudo aptitude install flashplugin-downloader
sudo aptitude safe-upgrade

Em um dos computadores eu não conseguia mais acessar à área de trabalho. Para este caso eu precisei instalar o gnome3, que me permitiu usar o sistema.

Categorias
Ubuntu

Aumente a velocidade do seu sistema aliviado o arquivo de swap

A maioria dos sistemas operacionais são capases de usar um arquivo ou uma partição conhecida como swap ou arquivo de paginação. Grande parte das distribuições Linux instalam uma por padrão. Este arquivo é usado para aumentar a quantidade de RAM disponível escrevendo uma parte dela no seu disco rígido.

Há um problema nisso: discos rígidos são lentos. Não podemos corrigir este problema agora, mas podemos escapar dele. O kernel do Linux oferece a possibilidade de alterar a configuração que controla o quanto o arquivo de swap é usado, chamada swappiness. Se swappiness é alterado para zero, isso significa que a escrita em disco será evitada até o absolutamente necessário (quando esgotar sua memória), enquanto que se swappiness estiver configurada como 100, isso significa que os arquivos serão escritos em disco em todo tempo.

Meu Ubuntu vem por padrão configurado como 60, indicando que o arquivo de swap será usado com bastante frequência se o uso de memória chegar a um pouco menos da metade da RAM. Você pode checar o valor que está em seu sistema executando:

cat /proc/sys/vm/swappiness

Tenho 2GB de RAM e, sendo um bom valor, posso reduzir a escrita no disco rígido e alterar este número para 10 ou 15. O arquivo de swap será usado apenas quando o uso da RAM chegar a 80 ou 90 por cento. Para alterar o valor de swappiness:

sudo /etc/sysctl.conf

Altere (adicione se não existir a linha) no arquivo:

vm.swappiness = 15

Para evitar a necessidade de reiniciar o sistema, execute:

sudo swapoff -a
sudo swapon -a
sudo sysctl -p /etc/sysctl.conf

Adptado da dica do FOSSwire

Categorias
PHP Ubuntu

Validar CPF com php

Uma função utilíssima para cadastros que exigem CPF. Returna true se o CPF for válido e false se inválido.


function valida_cpf($cpf) {
// verifica se e numerico
if(!is_numeric($cpf)) {
return false;
}

// verifica se esta usando a repeticao de um numero
if( ($cpf == '11111111111') || ($cpf == '22222222222') || ($cpf == '33333333333') || ($cpf == '44444444444') || ($cpf == '55555555555') || ($cpf == '66666666666') || ($cpf == '77777777777') || ($cpf == '88888888888') || ($cpf == '99999999999') || ($cpf == '00000000000') ) {
return false;
}

//PEGA O DIGITO VERIFIACADOR
$dv_informado = substr($cpf, 9,2);

for($i=0; $i<=8; $i++) {
$digito[$i] = substr($cpf, $i,1);
}

//CALCULA O VALOR DO 10º DIGITO DE VERIFICAÇÂO
$posicao = 10;
$soma = 0;

for($i=0; $i<=8; $i++) {
$soma = $soma + $digito[$i] * $posicao;
$posicao = $posicao - 1;
}

$digito[9] = $soma % 11;

if($digito[9] < 2) {
$digito[9] = 0;
} else {
$digito[9] = 11 - $digito[9];
}

//CALCULA O VALOR DO 11º DIGITO DE VERIFICAÇÃO
$posicao = 11;
$soma = 0;

for ($i=0; $i<=9; $i++) {
$soma = $soma + $digito[$i] * $posicao;
$posicao = $posicao - 1;
}

$digito[10] = $soma % 11;

if ($digito[10] < 2) {
$digito[10] = 0;
}
else {
$digito[10] = 11 - $digito[10];
}

//VERIFICA SE O DV CALCULADO É IGUAL AO INFORMADO
$dv = $digito[9] * 10 + $digito[10];
if ($dv != $dv_informado) {
return false;
}

return true;
} // function valida_cpf($cpf)

Copie o código aqui.

Código adaptado do iMasters.