viernes, 24 de septiembre de 2010

Familias XML

Esta semana me ha tocado impartir el curso sobre XML en el Máster de Ingeniería Web de la Escuela de Ingeniería Informática. Una de las características de XML es su capacidad para el tratamiento de datos semiestructurados, tal y como se describía en el libro Data on the Web: from relations to semistructured data, un libro que leí en su día y que recomiendo.

De todas formas, el título de esta entrada es más bien una reflexión sobre un nuevo tipo de familias que está surgiendo en nuestra sociedad actual, que podríamos llamar familias semiestructuradas, o ya puestos, familias XML.

Un ejemplo sería una mujer que conocí la semana pasada. Tuvo 2 hijos (que ahora mismo tienen 12 y 10 años) con una pareja anterior. Ahora tiene un hijo (de 3 años) con una nueva pareja, que también tiene otro hijo (de 7 años) de otra pareja anterior. A su vez, su anterior pareja, o sea, el padre de sus 2 primeros hijos, ha tenido una hija reciente (de 1 año). Esta situación, que puede parecer complicada y que en muchos casos, podría dar lugar a muy malos rollos, la afrontan todos de una forma ejemplar, llevándose bien entre ellos y poniendo por delante siempre los intereses de los niños.

Como ejemplo, cuando fuimos a verla coincidió que tenía que buscar a sus 2 primeros hijos a casa de su ex-pareja, y al acompañarla se produjo una escena que me hubiera gustado poder grabarla, en la que todas las personas que mencioné antes, más otra pareja (la hermana del ex-marido y su novio) y un perro, nos encontramos en la casa de su ex. Todos se saludaron unos a otros de muy buen rollo y con total naturalidad, con los niños presentándonos a los que no conocíamos.

Está claro que las familias ya no son lo que eran y ahora hay que asumir que las relaciones familiares pueden tener muchas dimensiones. Son situaciones que en España no eran frecuentes pero que cada vez son más habituales. Aunque posiblemente sea mejor encontrar una pareja para toda la vida, hay que estar preparado para posibles rupturas, y cuando éstas se producen, lo ideal sería poder encontrarse gente como esta chica.

En mi opinión, estas nuevas familias deberían etiquetarse ocmo familias semiestructuradas pero no como familias desestructuradas, un término peyorativo que no corresponde con la realidad, ya que las nuevas familias sí tienen una cierta estructura, aunque esta estructura no sea la clásica y posiblemente no pueda representarse en una base de datos relacional, sino mediante un lenguaje semiestructurado mucho más flexible, como XML ;)

miércoles, 1 de septiembre de 2010

Cloud Computing y MapReduce


Esta mañana impartí clase en un curso de verano: Cloud Computing: desarrollo de aplicaciones y minería Web.
 Mi sesión era una introducción al concepto de Cloud Computing, seguida de una presentación del modelo MapReduce.

Como era la primera vez que me tocaba hablas de estos temas, estuve casi todo el mes de agosto preparando lo que iba a contar en 2 horas y media. Sin embargo, quedé contento por lo que aprendí y porque el tema da mucho juego.

Una de las cosas que más me gustó fue entender el modelo MapReduce, que desarrollaron en Google inspirándose en conceptos de Programación Funcional. De hecho, el artículo Google's MapReduce Programming Model - Revisited es uno de los que mejor explica el algoritmo y contiene un miniprototipo en Haskell que facilita mucho la comprensión del modelo.

Las trasparencias del curso las he dejado en Slideshare.
Casualmente, una de las cosas que me llamó la atención fue esta entrada de Jonathan Boutelle, uno de los fundadores de Slideshare, titulada: Lessons from SlideShare: Cloud Computing Fiascos & how to avoid them. en la que comenta sobre algunos problemas concretos que ellos están teniendo con Cloud Computing que les ha llevado a tener que pagar unos 5000dólares en un mes por un despiste al programar uno de los algoritmos. Su reflexión es, cuando se tienen superpoderes, hay que actuar con responsabilidad.