GNUAB: Universidad Autónoma de Barcelona y Software Libre

Hará tres meses emprendí con un compañero de clase la reactivación de un colectivo de difusión del software libre llamado GNUAB. Dicho colectivo se fundó en la Universidad Autónoma de Barcelona, tal como da a entender su nombre, con el propósito de difundir las ideas del software libre y promover su uso.Después de mucho andar de una punta a otra del campus conseguimos contactar con antiguos miembros del colectivo, y... aquí estamos, por fin hemos conseguido reactivar el colectivo, y creo que hoy día tiene más vida que nunca y muchas cosas por hacer.Lo primero que hicimos después de saber que podíamos asumir el control del colectivo sin ningún problema fue colgar cientos de carteles DinA4 por toda la universidad, nunca hubiera imaginado que era tan grande! Por suerte el esfuerzo se vio recompensado y a la reunión inaugural del nuevo GNUAB vino muchísima más gente de la que esperábamos: alumnos, profesores, miembros del servicio informático de la universidad, etc (Hubo gente que no pudo venir y nos mandó emails para informar-se sobre la reunión). Prueba clara del interés que suscita el software libre en el ambiente universitario de hoy en día.

Hoy en día tenemos una lista de correo, un foro, una wiki y una página web de noticias, así como un espacio ftp en el que pretendemos dejar documentos que creemos de interés general.

Aunque éso es lo de menos, lo importante es que tenemos muchas actividades programadas y el respaldo de mucha gente para llevarlas a buen término, últimamente las cosas han ido rodadas :D .

Para todo aquél interesado en el colectivo, la página web és

www.gnuab.org

Bien, me despido, y hasta otra!

Codificación de Red

Hace tiempo escribí éste artículo en mi otro blog, que estoy borrando hoy mismo por la poca dedicación que le doy, y le puse un prólogo horrorosamente largo, así que hoy no va a ser igual, aquí tenéis la "chicha" del artículo.En el artículo de hoy quería comentar un texto publicado en "Investigación y Ciencia" (la versión española de Scientific American) titulado "Supresión de atascos en las redes de comunicaciones" y escrito por Michelle Effros, Ralf Koetter y Muriel Médard. En dicho texto se trata un nuevo método de transmisión de datos a través de las redes informáticas actuales que posibilitaría una menor congestión de éstas y una mayor velocidad de transferencia. Lo mejor de todo es que es fácil de entender (aunque la posterior implementación requeriría análisis técnicos complejos que están fuera del abasto de éste artículo y el de la revista de dónde saqué la información).En éste artículo científico-técnico presentan una técnica que denominan Codificación de Redes, éste método se basa en enviar "indicios" acerca de la información que se quiere transmitir en vez de mandar el mensaje completo. Así dicho a bote pronto tal vez no se entienda, pero para ésto he previsto un par de ejemplos (extraídos también de la revista, aunque con imágenes algo rudimentarias, por falta de tiempo para hacer algo mejor y porque es ilegar escanear y publicar las imágenes de la revista).

Imaginemes que tenemos 6 nodos en una red, éstos pueden ser ordenadores personales o routers, para éste ejemplo tendremos 4 ordenadores y dos routers. A, B, C y D serán los ordenadores de sobremesa, mientras que E y F serán los aparatos enrutadores.

Supongamos ahora que el nodo A quiere enviar un mensaje al nodo D y que el nodo B le quiere enviar un mensaje al nodo C. Siguiendo el esquema típico actual de las redes, el mensaje se dirigirá a través del enrutador E, que se "colapsará", haciendo que uno de los mensajes tenga que esperar, retrasar la llegada de esa cadena de bits.

Existe sin embargo una solución muy elegante a este "sencillo" problema (no del todo extrapolable).

Fijémonos en el siguiente diagrama, A y B mandan los mensajes a través de dos canales simultáneamente que de otra forma habrían sido desaprovechados en ése instante y el nodo E manda un único mensaje, una combinación de los datos enviados por A y por B.

Al nodo C llega el mensaje de A y la mezcla de los dos mensajes, al nodo D llega el mensaje de B y la mezcla de los mensajes.

Como vemos, los mensajes no han llegado a sus destinos, pero eso sólo és una ilusión, si analizamos la situación con mayor detenimiento apreciaremos como los mensajes han llegado sin ninguna espera.

No he hablado de que tipo de mezcla se ha hecho con esos datos, la verdad es que hay muchas posibilidades, pero lo importante es que sea una combinación lineal. Una posible combinación se podría hacer utilizando la operación suma (hemos de tener en cuenta que la información se puede representar de forma numérica, en particular en notación binaria).

Si A hubiera mandado un 1 y B un 0, el nodo E habría mandado 0+1=1, con lo que C solo tiene que restar 1 al número recibido desde A para saber qué le envió B y D sólo tiene que restar 0 al número recibido desde B para saber qué le envió A (utilizando el álgebra de boole).

La velocidad de transferencia en éste caso ha sido el doble, pero podría serlo varias veces más en muchos casos, aunque también podría no haber ninguna ganancia en algunos otros. Lo que sí es seguro es que éste sistema nunca llega a dar peores resultados que los instaurados actualmente, las demostraciones de ello no las he llegado a leer, aunque tengo algo de fe en lo que me dicen, pero hay que remarcar que demostrar y entender la demostración de ésta afirmación no es tan sencillo como el ejemplo expuesto.

En la revista hay otro ejemplo en el que tratan la multidifusión, es decir, un método para que varios usuarios puedan mandar mensajes a varios usuarios a la vez, es decir, de muchos a muchos, y con mensajes con varios destinatarios. Aún así doy por acabado éste pequeño texto pues no tengo mucho más tiempo, gajes del trabajador explotado.

Como véis todavía nos quedan un montón de ideas por explotar, a éste sistema se le sumaran otras tecnologías no basadas en la lógica matemática, si no en la física electrónica y fotónica, así que tenemos para rato...

Omemo P2P

Buenas, hoy he empezado a ser BetaTester del programa p2p Omemo aparecido recientemente de la mano de Pablo Soto.

  • Primera impresión: un aspecto muy cuidado.
  • Segunda impresión: Pocos archivos disponibles en la red (normal, hay una base de usuarios extremadamente pequeña).
  • Tercera impresión: Velocidad de publicación muy elevada (subida de archivos a la red).
Ahora lo comentaré todo un poco más, en un principio esta pieza de software da muy buena impresión, sobre todo para ser una versión beta. Se trata de un programa p2p que permite compartir no sólo archivos, sinó espacio de disco, es decir, todos los usuarios ceden una pequeña parte de su disco duro creando una gran unidad virtual de almacenamiento en la que todos pueden dejar archivos y descargarlos.

Como ya he dicho anteriormente, este programa ofrece una interfaz bonita y sencilla de manejar, a la vez que ofrece una velocidad de subida muy alta. Ahora bien, lo que es la descarga, lentísima. Pero no nos equivoquemos, todavía no se cual es la causa, si la pequeña cantidad de usuarios que hay en la red o un fallo en el diseño del protocolo, aunque me decanto más por la primera opción, sobre todo por el hecho de que el director de proyecto es un programador con experiencia.

Como no, he encontrado fallos, y éstos no sé si se deben a que se trata de una versión beta o a que ése es el funcionamiento que quieren que siga los desarrolladores, sin opción a cambiarlo.

  • La estructura jerarquizada de los archivos, organizados en carpetas puede llevar a confusiones, no todo se puede organizar jerarquicamente, por algo surgió la teoría de conjuntos. La solución podría ser que se le pudiesen adjuntar metadatos a los archivos para facilitar las búsquedas.
  • No existe un motor de búsqueda automatizada, para buscar archivos se tiene que ir rastreando los directorios donde se cree que puede estar el archivo, eso significa que al tiempo de busqueda de archivos dentro de un directorio se le tiene que sumar el tiempo que conlleva la lentitud humana.

¿Que más puedo decir? No lo sé, supongo que ya os iré dando algunos datos, aunque de momento Omemo promete. ;)

QtFlip 0.6, ¡150 descargas!

Buenas, escribo esto para anunciar que ha aparecido la nueva versión 0.6 de QtFlip :D . Desde el último anuncio que hice en el blog sobre este juego han ido apareciendo varias versiones que han ido corrigiendo fallos y mejorando características. Ahora es configurable, tiene tabla de altas puntuaciones y un contador de tiempo, nada del otro mundo, muy modesto el juego, pero bueno, uno se siente orgulloso de su pequeña creacion, jeje. Hay versiones para Linux 32 bits, 64 bits y para Windows 32 bits (Probado en XP).

Ala, que lo disfrutéis:

http://sourceforge.net/projects/qtflip/ [actualmente inhabilitado]

QtFlip

Os presento mi nuevo juego QtFlip! xD La verdad es que es muy rudimentario, y lo estoy mejorando poco a poco.

Éste es un pequeño juego de lógica, (o paciéncia, dependiendo del enfoque que se le dé) en el que tenemos un tablero en el que las casillas pueden tener dos estados: activa o inactiva. El objetivo del juego es conseguir que todas las casillas del tablero acaben en estado inactivo. ¿Cómo funciona? Pues bien, si se presiona una casilla el estado de todas las casillas de su fila y de su columna cambiarána su opuesto, ¿sencillo no? Si, pero la verdad es que puede ser una tocada de cojones apretar la combinación correcta para acabar el juego...

 Detalles técnicos:

  • Programado en C++ con las librerías Qt4, seguramente compatible con muchas de sus versiones anteriores, (no creo hacer uso de nuevas funcionalidades de las librerías).
  • Multiplataforma
  • Multilenguaje
  • Licenciado bajo GPL.

Para compilar:
make

Existe una versión compilada para Windows y otra para Linux 64 bits, para los demás sistemas operativos tendréis que compilar vosotros mismos (no he tenido acceso a ninguna otra plataforma para poder compilar, aunque espero poder colgar versiones para otras plataformas pronto).

Aquí tenéis el link a la página del proyecto:
http://sourceforge.net/projects/qtflip/ [actualmente inhabilitado]

Ah, y si queréis hacer alguna mejora, o indicarme algún bug, ya sabéis, soys libres :D .