Archive for 22 marzo 2010

Acuerdo Comercial Anti-falsificación (ACTA)

marzo 22, 2010

El ACTA (Anti-Counterfeiting Trade Agreement o Acuerdo Comercial Anti-falsificación) se puede traducir como la versión en la red del Big Brother de Orson Welles, lo que preocupa es que esto (el ACTA) no es ciencia-ficción, es algo que en realidad están intentando implementar ciertos gobiernos (entre ellos el gobierno mexicano).

Les recomiendo leer al respecto en los siguientes enlaces

http://www.alcancelibre.org/article.php/detengamos-el-acta

http://criticapura.com/acta-en-mexico/2010/01/

Independientemente de que simpatices o no con la filosofía del software libre, si usas internet y quieres seguir teniendo la libertad de usarlo sin que te traten como delincuente, o simplemente valoras tu privacidad y crees que vale la pena luchar por el derecho que todos tenemos a que nadie lea los correos electrónicos que enviamos o recibimos sin nuestro concentimiento, si tienes un blog te animo a que hagas una liga a los enlaces anteriores, para difundir la noticia, es dificil defender nuestros derechos si no estamos enterados de que intentan violarlos.

Si eres estudiante puedes difundir uno de los siguientes folletos en tu escuela

Los puedes descargar del siguiente enlace, incluso hay unos en blanco y negro, preparados para fotocopias http://www.alcancelibre.org/article.php/unete-campana-anti-acta

Anuncios

Tablas Hash multivalores en Qt

marzo 15, 2010

Tablas Hash

Una tabla hash es una estructura de datos que asocia llaves o claves con valores. Almacena pares (llave, valor) y proporciona una búsqueda muy rápida del valor asociado a una llave.

Supongamos que queremos tener una tabla hash que contenga una lista de alumnos con sus respectivas edades. En Qt podemos utilizar la clase QHash para crear una tabla hash de la siguiente forma:

QHash<QString, int> alumnos;

Con la instrucción anterior creamos una tabla hash llamada alumnos en donde la llave es de tipo QString (para almacenar el nombre del alumno) y el valor es de tipo entero (para almacenar la edad del alumno).  Para almacenar la información en la tabla hash llamada alumnos que acabamos de crear podemos usar algo como:


alumnos.insert(“Juan”, 20);
alumnos.insert(“Laura”, 22);
alumnos.insert(“Pedro”, 21);

Si queremos almacenar la edad de Laura en una variable llamada edad_laura, utilizamos la siguiente instrucción:

int edad_laura = alumnos.value(“Laura”);

Tablas Hash multivalores

Son tablas hash que permiten almacenar múltiples valores con la misma llave.

Supongamos que queremos almacenar en una estructura, los números de matrícula de todos los alumnos que están inscritos en una materia determinada. En Qt podemos hacerlo con la instrucción siguiente:

QMultiHash<QString, int> inscritos;

Con la instrucción anterior creamos una tabla hash multivalores llamada inscritos en donde la llave es de tipo QString (para almacenar el nombre de la materia) y el valor es de tipo entero (para almacenar el número de matrícula del alumno).  Para almacenar la información podemos usar algo como:

inscritos.insert(“Software Libre 1”, 456);
inscritos.insert(“Software Libre 1”, 924);
inscritos.insert(“Primeros pasos en GNU/Linux”, 621);
inscritos.insert(“Software Libre 1”, 285);
inscritos.insert(“Primeros pasos en GNU/Linux”, 456);

Si queremos recuperar los números de matrícula de todos los alumnos inscritos en la materia Software Libre 1, podemos usar la función values, que regresa una lista que podemos almacenar en un objeto de tipo QList para poder recorrerla posteriormente.

Qlist<int> matriculas_sl = inscritos.values(“Software Libre 1”);