divendres, 27 de juny del 2008

AVG Antivirus


AVG és un software antivirus i de seguretat en Internet creat per l'empresa AVG Technologies, disponible per a plataformes Microsoft Windows, Linux i freeBSD.
És un dels programes antivirus gratuïts més descarregats i utilitzats del panorama informàtic mundial sobretot a nivell d'usuari. Hi ha disponibles diferents versions del paquet antivirus, algunes de pagament i altres de gratuïtes. La versió més bàsica inclou l' antivirus i un módul anti-spyware, a més del sistema d'actualització periódic de la base de dades de virus.
Les versions de pagament (AVG Internet Security) incorpora a més un Firewall, filtres anti-spam, anti-rootkits, i eines de navegació segura que ens protegeixen de llocs webs maliciosos. Ofereix protecció en temps real i no consumeix massa recursos del sistema, no reduïnt així la velocitat de l'ordinador.

En definitiva, un bon programa antivirus, tant la versió gratuïta com la de pagament pels usuaris més exigents. Fàcil d'instal.lar i configurar i amb un consum dels recursos del sistema ínfim. Certificat per les principals organitzacions d'anàlisis d'antivirus i utilitzat per milers d'usuaris arreu del món.

Llocs de descàrrega: Versió gratuïta http://free.avg.com/
Altres versions http://www.grisoft.com/la-es.1

divendres, 13 de juny del 2008

Com crear una firma MD5 en PHP

PHP incorpora una funció per crear una firma MD5 a partir d'una cadena, ja sigui de text o númerica. La funció md5() converteix un missatge en una succesió fixe de dígits anomenada message digest (resum del missatge). El Hash retornat consisteix en una cadena de 32 números en format hexadecimal (128 bits). Aquesta funció és molt interessant i la podem utilitzar per exemple en un procés de login comparant el valor entrat per l'usuari amb el hash enmagatzemat en una base de dades mysql. Un ús molt comú de la funció md5 és comprovar si un arxiu ha patit algun canvi durant la seva transferència. Després de rebre l'arxiu, es compara amb la seva firma md5. Si coincideixen és poc probable que aquest hagi estat modificat. En canvi, si són diferents, l'arxiu és corrupte.

Sintaxi de la funció MD5:

$cadena = " la meva cadena";
$firma = md5 ($cadena);
echo $firma;

El resultat és una succesió de números i lletres de 32 caracters de longitud.

dissabte, 17 de maig del 2008

Llistes dinàmiques en C (Part 2)

Amb les llistes dinàmiques tenim un petit ventall d'operacions o accions que podem fer:

Afegir o insertar un node, al principi de la llista, al final o en una posició determinada.
Borrar elements o nodes.
Buscar o localitzar elements.
Moure's a través de la llista, anterior, següent, primer.

Acció d'insertar un element o node en una llista buida.

És potser el cas més senzill.Ja tenim el node a insertar i per descomptat un punter que apunta a aquest node i un altre punter que apunti a la llista que valdrà NULL.És a dir:

struct node *llista=NULL; // el punter de la llista
struct node *pnou; // el nou node a inserir

El procés d'inserir seria el següent:

pnou->seguent=NULL;
llista=pnou;

Gràficament seria:

dimecres, 7 de maig del 2008

Llistes dinàmiques en C


Una de les aplicacions més potents i interessants de l'assignació dinàmica de memòria i els punters en el llenguatge C són les llistes o estructures dinàmiques de dades. Les estructures bàsiques en c i c++ tenen una important limitació: no poden canviar de tamany en temps d'execució, és a dir, si reservem una certa quantitat de memòria per enmagatzemar una sèrie de dades en una matriu o un vector per exemple, el nombre d'elements d'aquesta matriu o vector és decideix en la fase de disseny, abans de que el programa executable sigui creat, per tant no permeten el canvi de tamany en temps d'execució.

Les estructures dinàmiques ens permeten crear estructures de dades que s'adapten a les necessitats reals del nostre programa, reservan l'espai de memòria just i necessari que la nostra aplicació utilitzarà.

Les estructures de dades dinàmiques estàn formades per altres estructures a les quals anomenarem nodes. Aquests nodes o elements agrupan les dades amb les quals el nostre programa treballarà, i a més , un o més punters a la mateixa estructura el qual ens servirà per a desplaçar-nos per tots els nodes o elements que formen la llista.
Un exemple d'estructura bàsica d'un node podria ser el següent:

struct node {
int num;

struct node *seguent;
}


El camp seguent pot apuntar a un node o element de la mateixa llista i així succesivament.
És a dir, cada node o element manté una relació amb el node anterior i amb el següent si aquests existeixen.

Continuarà .....