domingo, 12 de agosto de 2012

Algoritmo matemático ayuda a identificar la fuente de epidemias, crímenes y rumores


Seguir un acto delictivo o un rumor hasta su origen puede ser muy complicado a veces, más en estos tiempos donde una red criminal puede tener innumerables nodos, ramificaciones y caminos, formando grafos realmente complicados de analizar y descubrir su origen. Por ello, Pedro Pinto, del Laboratorio de Comunicaciones Audiovisuales y sus colegas se pusieron manos a la obra, desarrollando un algoritmo que podría ayudar a resolver problemas en los que se vea involucrada una red.
GrafoEl algoritmo logra identificar la fuente de cualquier tipo de cosas que circulen por una red simplemente “escuchando” un número finito de miembros que componen esa red. El ejemplo práctico que Pinto pone es:
Imagina que te encuentras con un rumor sobre ti en Facebook que se ha extendido por 500 de tus amigos. Sólo con mirar los mensajes recibidos por 15 de tus amigos y teniendo en cuenta el tiempo, nuestro algoritmo puede descubrir el camino de vuelta y encontrar la fuente.
Realmente resulta chocante un algoritmo tan potente, dada la dificultad que entraña encontrar el origen de la información en redes sociales, especialmente cuando tenemos en cuenta que una persona puede ser un nodo, pero a su vez la comunidad de la que esa persona es parte puede formar otro nodo, un conjunto de comunidades puede ser otro y así extenderse y complicarse mucho más. Donde sí puede tener aplicaciones en el mundo real es en la identificación de focos de enfermedades en epidemias, como comenta Pinto:
Probamos nuestro método con los datos de una epidemia en Sudáfrica. Modelando las redes del agua, ríos y de transporte humano, pudimos encontrar el lugar donde los primeros casos de infección aparecieron, monitorizando sólo una pequeña fracción de las poblaciones afectadas.
En cuanto a la identificación de orígenes de crímenes, es más complicado hoy en día que en las mafias organizadas de los años 50, donde existía una estructura organizada que podía formar, más o menos, una estructura de árbol; sin embargo, el algoritmo fue aplicado con éxito en la identificación de los criminales relacionados con el 11 de septiembre o en casos de ataques a estaciones subterráneas, como el atentado en Tokyo de 1995, donde se liberó gas tóxico en las estaciones.
Usando este algoritmo no sería necesario equipar todas las estaciones con detectores, una muestra [en lenguaje estadístico] sería suficiente para identificar el origen del ataque, tomándose acciones preventivas antes de que se extendiera demasiado lejos.
Lo curioso de todo el asunto es que el algoritmo sólo se ha probado a posteriori, es decir, una vez que se ha aplicado se sabe que funciona, pero no si funcionará antes de hacerlo. Sin embargo, Pinto comenta que también se podría usar en análisis preventivos seleccionando puntos de prueba. También comenta que podría ser usado por analistas de publicidad y marketing para identificar los blogs o medios que son más influyentes entre su público objetivo.

10 programadores que cambiaron la historia


Esta es una lista de programadores que cambiaron la historia de la tecnología, quizá de la humanidad, o por lo menos su área de influencia poderosamente. Baste decir que por programador hablo de aquella persona que además de dominar algoritmos y estructuras de datos para crear una solución computacional, fueron capaces de dominar las herramientas para llevar esa solución a la práctica, lo que resultó, directa o indirectamente, en un hito técnico y social.
No encontrarás en esta lista ganadores de concursos de la ACM, ni grandes nombres como Turing, Dijkstra o Minsky. Esta lista tampoco es un Top 10, ni exhaustiva porque faltan muchos y muy venerables como Cerf, Kahn, Gilmore, Cray o leyendas modernas como Matsumoto, Heinemeier y _why. En fin, quiero ofrecerles esta lista como un recordatorio de que los programadores han transformado nuestras vidas profundamente la últimas décadas. Y que lo seguirán haciendo.
Tim Berners-Lee

 Tim Berners-Lee

Creador del protocolo HTTP, que permite el adecuado intercambio de documentos hipervinculados.
El CERN le permitió probar un concepto que habitó en su cabeza por varios años, que resultó en la Web, la red más exitosa entre las hospedadas por Internet. Berners-Lee merece una mención especial al abogar por el espíritu abierto y colaborativo de las tecnologías web, que ahora tienen en el inacabado HTML5 uno de sus retos más importantes.

Bram Cohen

Creador del protocolo BitTorrent de intercambio de archivos.
Siendo un joven aficionado a los juegos matemáticos, creó BitTorrent con el lenguaje de programación Python, para intercambiar, de forma colaborativa y óptima, un archivo en Internet. Con esto puso de cabeza a la industria del copyright, se creó una industria alternativa de contenidos, nació The Pirate Bay, incluso los partidos piratas, al tiempo que los paquetes torrent saturaron las venas de Internet. Bram Cohen hizo una empresa con su invento, sin embargo el protocolo nació de código abierto, listo para ser utilizado para cuanta cosa vayamos a compartir por la red.

 Bill Joy

Creador de BSD, el sistema operativo sobre el que se construyeron los cimientos de Internet.
La inteligencia y visión de Joy permitieron la creación de la Berkeley Software Distribution, un derivado inmediato, estable y robusto de UNIX sobre el cual se probaron las primeras versiones del Internet que hoy conocemos. No olvidemos que Van Jacobson usó un sistema BSD para crear la versión de TCP que permite que Internet no colapse. Además Joy co-fundó Sun Microsystems, una de las empresas más influyentes para el movimiento open source y cuna de software impresionante como NFS, Solaris y Java. Ni qué decir lo mucho que Mac OS X le debe a BSD.

 Alan Kay

Alan Kay
Creador de Smalltalk y los conceptos de la programación orientada a objetos.
La sabiduría e inteligencia de Alan Kay es bien reconocida entre sus colegas. A Kay le debemos la computación personal, post-PC como ahora le llaman, basada en dispositivos móviles, tablets, así como la importancia de las interfaces de usuario para crear experiencias, sobre todo educativas.

Donald Knuth

Donald Knuth
Creador del lenguaje de programación TeX, pero sobre todo compendiador y teórico de los algoritmos que las generaciones siguientes seguimos utilizando para crear software.
Knuth es una leyenda. Algunos le llaman el Yoda de la programación (algún parecido físico tiene). Escribió el mítico The Art of Computer Programming, para lo cual creó el software para maquetarlo, TeX, el lenguaje y máquina para ilustrar los algoritmos. Hoy en día LaTeX, un derivado de TeX, es el lenguaje predilecto para la creación de texto científicos. Asimismo, los trabajos de Knuth ayudaron a crear los compiladores que usamos hoy para crear software.

Bill Gates

Creador de BASIC Altair, padre de Windows, el sistema operativo de escritorio más popular del planeta.
Gates carga una fama variopinta desde 1980 o antes. Con espíritu anti-cultura hacker escribió en 1976 la Open Letter to Hobbyists para recriminar a los programadores que usaron BASIC Altair sin su permiso. Luego sucedió el supuesto robo de un sistema operativo, QDOS, a Gary Kindall que suscitó el nacimiento del imperio Microsoft en las computadoras personales. Por cierto, la revista Spectrum de la IEEE publicó un estudio basado en un análisis forense que elimina esos dichos. Lo cierto es que Gates fue un grandísimo nerd, ambicioso en los negocios, cuyo software y cultura marcaron la manera de hacer y usar software en casa y en la oficina.

 Dennis Ritchie

Co-creador de Unix y el lenguaje C de programación.
Me pongo de pie para decir, o bien escribir, que Ritchie es el programador-hacker por excelencia, la mente maestra detrás del software más influyente de la historia, verdaderas piedras angulares hechas bytes: el sistema operativo UNIX y el lenguaje C. Un hombre apoyado por otros grandes hackers como Kernighan y Thompson, que murió hace unos meses, dejando un legado de influencia con tantas ramificaciones que merece un libro entero.

Richard Stallman

Richard Stallman
Creador de Emacs, padre del movimiento por el software libre.
Hombre polémico por donde se le vea. Odiado y amado, Stallman es el filósofo del software como objeto de conocimiento y mecanismo de libertad. Ver, modificar, mejorar y compartir el software son los principios fundamentales para Stallman, en lucha incansable y constantes desde la Fundación por el Software Libre a principios de los años 80. Vamos, que si el software parte de ideas, las ideas son conocimiento y el conocimiento pertenece a todos, entonces el software debe ser libre, sin más. Tal vez en unos años apreciemos en su verdadera medida la calidad y cantidad de aportaciones de Stallman, por ahora puedo decir que si nuestro Internet funciona es gracias, en buena medida, al software creado y difundido a partir de los esfuerzos del gran rms.

 Linus Torvalds

Creador de Linux, el sistema operativo libre.
El arrojo que tuvo para crear Linux, con una dictadura estrictamente pragmática para dirigir a centenas de programadores de todo el mundo, desde hace más de 20 años, le hacen digno de gran admiración. Y no sólo creó Linux, también creó Git, el software para gestionar versiones de software que hoy construye comunidades de código abierto como las de Github. Linux está en todos lados, sin triunfar en el escritorio, es cierto, pero detrás de cada servidor web, de cada búsqueda en Google, de cada like y tweet, en la búsqueda del bosón de Higgs, y en la computadora del próximo gran hacker.

 Mark Zuckerberg

Creador de Facebook, la red social.
El último de la lista y el que más me cuesta describir. El hombre simplemente escribió en PHP y Apache un software para gestionar la vida social de su campus, luego vio un negocio, lo hizo crecer, se hizo de buenos amigos inversionistas, la red se expandió como una enfermedad viral y hoy tenemos ante nosotros Facebook, la red de redes sociales más influyente de la historia. Algunos piensan que la Facebook sabe demasiado de nosotros porque piensa en lo explícito, edad, fotos, amigos, familia. Pero Facebook puede saber mucho más que eso, algo oculto que emerge de entre todas nuestras conexiones. Y Zuckerberg, hábil programador, parece seguir al frente de todo eso.