Jun 28

O port do sistema operativo Android está cada vez mais perto do HTC HD2. Depois de ultrapassados os problemas relacionados com o kernel (que aparentemente estavam relacionados com algumas instruções extra do processador) foi uma questão de dias – mais concretamente dois – até que conseguissem inicializar o Android. Nesta fase ainda há muitos drivers que não se encontram a funcionar e que fazem com que ainda seja inútil para qualquer utilizador, mas foi mais um passo na direcção certa.

Podem inclusive ver um video do processo de inicialização do sistema:

O próximo passo parece estar relacionado com os drivers do touchscreen, o famigerado ELAN B81 que mesmo após alguma insistência sobre o fabricante, este não libertou a informação necessária para ser criado o driver para linux.

Mais informações na thread oficial do port deste sistema operativo:

http://forum.xda-developers.com/showthread.php?t=651632

Tagged with:
Jun 14

Depois do último algoritmo para validar o contribuinte, aqui fica uma versão para validar o NIB.

function isValidNib($nib){
$result = "";
if(strlen(intval($nib)) != 21)
return "NIB INVALIDO (Standard: 21 algarismos. Introduzido: " . strlen(intval($nib)) . ")";
 
$nnib = str_split(intval($nib));
 
for($i=0; $i< 19 ; $i++){
        $result = (($result + $nnib[$i]) * 10) % 97;
}
$result = 98 - (($result * 10) % 97);
 
if($result < 10)
        $result = "0" + $result;
 
if(substr($nib, 19, 2) != $result)
        return "NIB INVALIDO";
else
        return "NIB VALIDO";
}

Se preferirem podem trocar o texto enviado no retorno das funções e utilizar um boleano true/false.

EDIT: Agradecimentos ao Nuno Cancelo pela dica de optimização enviada! :)

Tagged with:
Jun 14

Já tenho visto por aí vários algoritmos para validar o numero de contribuinte, mas não vi um feito em PHP.

Disponibilizo aqui um pedaço de código em PHP para que possam incluir nos vossos serviços.

function isValidNif($nif){
 
//Verificar se e' um numero e se e' composto exactamente por 9 digitos
if(!is_numeric($nif) || strlen($nif) != 9) return false;
 
$narray = str_split($nif);
 
//verificar se o primeiro digito e' valido. O primeiro digito indica o tipo de contribuinte.
if($narray[0] != 1 && $narray[0] != 2 &&  $narray[0] != 5 && $narray[0] != 6 && $narray[0] != 8 && $narray[0] != 9)
        return false;
 
$checkbit = $narray[0] * 9;
 
for($i=2; $i<=8; $i++){
        $checkbit += $nif[$i-1] * (10 - $i);
}
 
$checkbit = 11 - ($checkbit % 11);
 
if($checkbit >= 10) $checkbit=0;
 
if($nif[8] == $checkbit) return true;
echo "$nif - $checkbit";
return false;
}
Tagged with:
Jun 03

Escreve o teu nome, ninja style:

Estava sem nada para fazer e resolvi fazer um pequeno script baseado na imagem de cima para criar o nome automaticamente.

http://www.davidgouveia.net/goodies/ninja.php?name=david – Substitui o nome david pelo teu.

O resultado será algo assim :

Utilidade: Nenhuma. Mas já estava enferrujado com a utlização da libgd :)

Tagged with:
preload preload preload