Ficcion científica

Hace poco el suplemento cultural Babelia dedicaba un espacio a hablar de novelas con ciencia, es decir obras que usasen la ciencia para contar sus historias. Loable iniciativa, pero al final decepcionante: se limitaron poco más o menos a hablar del technothriller del futuro (que desde un punto de vista científico tiene poco interés) y de algunas obras de ciencia ficción (género que tiene convenciones propias que en muchas ocasiones lo aparta de la ciencia). Las novelas sobre la ciencia (como El dilema de Cantor, El universo de un joven científico o El quinteto de Cambridge) quedaban curiosamente olvidadas.

Por suerte, cuando la prensa nacional no da la talla a veces la extranjera compensa. Ayer en el IHT (el periódico que, curiosamente, leo cuando viajo aunque venga a Madrid) reproducía de The New York Times un interesantísimo artículo sobre ese tipo de novelas. «Art and science meet with novel results«, firmado por Emily Eakin, se llama el invento y la verdad es que la autora se lo ha currado. Aprovechando el lanzamiento de Radiant Cool de Dan Lloyd se lanza a explorar ese apasionante punto de convergencia de científicos que escriben novelas y novelistas que se acercan a la ciencia.

La descripción de Radiant Cool es ciertamente llamativa. Se trata de una novela negra, con sus personajes siniestros y su plan para controlar el mundo. Pero también es el vehículo elegido por el autor para difundir su hipótesis sobre la consciencia. Es más «readers soon find themselves enrolled in a heady tutorial on Husserl, phenomenology, neural networks and multidimensional scaling». De hecho, el autor afirma que empotrar su hipótesis en una novela era la única forma de exponerla correctamente. Y para aquellos que no consigan entenderla en la ficción, el libro incluye un apéndice explicativo de 100 páginas.

A partir de ese punto, detalla otras novelas de planteamientos absolutamente fascinantes. Faster Than the Speed of Light de Joao Magueijo (físico teórico) sobre la posible no constancia de la velocidad de la luz. Turing (A Novel about Computation) de Christos Papadimitriou (informático). The One True Platonic Heaven de John Casti (matemático) sobre lógica cuántica con apariciones estelares de Einstein, Godel, Oppenheimer y von Neumann. O Properties of Ligh un romance sobre mecánica cuántica scrito por Rebecca Goldstein (filósofa).

Eakin tiene incluso tiempo (sacándole un asombroso partido a sus cuatro medias columnas) de realizar una semblanza histórica y poner los dientes largos para terminar. Resulta que Papadimitriou está preparando su segunda obra. En palabras del propio autor:

It’s called Logicomix. It’s a graphic novel and mathematical biography. It traces the story of the development of logic throughout the 19th and 20th centuries and how it led to computers. It’s an incredibly sad human story because most of the people involved ended up insane.

Nada, que nos ha dejado unas ganas locas de comprarnos esos libros. Miraremos mañana por si hay suerte en la casa del libro. Si no, siempre nos quedará Amazon.

Continuar leyendoFiccion científica

Rafael Marín

El muy buen traductor, y todavía mejor autor, Rafael Marín pasaba unos días en Madrid recluido en un convento (en uno de esos curso de adoctrinamiento para profesores, ya saben). Como el hombre tenía un par de horas libres nos lo llevamos a comer.

Hablamos de todo, como es natural siendo Rafa un conversador genial, especialmente de Buffy y Angel y de simbolismos y metáforas en esas dos series magníficas. También comentamos qué bien estaría una serie con Spike de protagonista.

Y ya que estamos, de Rafa recomiendo encarecidamente su Lágrimas de luz.

Continuar leyendoRafael Marín

[javaHispano] Patrones

«Un enfoque basado en patrones para le enseñanza de J2EE» de Fernando Bellas fue una muy interesante charla sobre las dificultades (y cómo evitarlas) cuando uno se plantea enseñar la tecnología J2EE.

J2EE ofrece un gran número de tecnologías. ¿Cómo explicarlas a alguien que sólo conoce el lenguaje Java? En lugar de explicar «API tras API» propone explicar tecnología y diseño de manera integrada por medio de patrones. Su reflexión es que es difícil entender las abstracciones de una tecnología si no se conocen los patrones de diseño del dominio en el que se aplican y tampoco es posible aplicar la tecnología de manera eficaz si no se dispone de un método de ingeniería claro (esto copiado de las transparencias).

Planteó una serie de problemas: Muchas descripciones de patrones asumen EJB, faltan formatos estándares de documentación de patrones, los libros se limitan por lo general a explicar el código, es difícil explicar sin código (Pet Store no es práctico debido a su gran tamaño) y J2EE está en continuo crecimiento y modificación lo que dificulta estar al día.

La enseñanza se plantea bajo un enfoque Modelo, Controlador y Vista aplicando los patrones convenientes a cada caso. En particular, trató la creación de la capa de modelo comentando que la mejor forma de diseñar esa capa es en forma de una api sencilla que proporciones una operación por cada caso de uso. La forma de trabar es muy orientada a un buen diseño.

¿Cómo explicar EJB? Pues la conclusión es que es fácil si se conocen los principales patrones de la capa modelo en JDBC y si se conoce RMI. Al final el resultado es un método de ingeniería para el diseño e implementación de aplicaciones empresariales con J2EE con una filosofía de desarrollo incremental.

Continuar leyendo[javaHispano] Patrones

[javaHispano] No a los métodos ágiles

Posiblemente la charla con el título más largo «Fragile Methods: Métodos ágiles (y cómo evitarlos), Métodos prudentes (y cómo ponderarlos)» y ciertamente la más divertida. Ricard Devis cargó contra todo y no dejó títere con cabeza: XP, UML, XML, XSLT, etc. Era, en su propio definición, una e-arenga y además todo un ejemplo de domino del escenario. Mira que la zona de conferenciantes es enorme, pues al tío parecía que se le quedaba pequeña. Impresionante.

Por supuesto, eso no implica que uno esté de acuerdo con lo que dijo. Posiblemente él mismo tampoco. A posteriori, destilando su presentación, tanto lo que dijo como lo que podía leerse en las transparencias (densas y llenas de letras, como si nos desafiase a leerlas enteras antes de cambiarlas) parecía venir a decir que todo hay que tomárselo con mesura y no llevar las cosas al extremo. Si se coge una tecnología y se exagera usándola para todo, al final acabaremos con algo peor de lo que pretendíamos sustituir inicialmente.

Continuar leyendo[javaHispano] No a los métodos ágiles

[javaHispano] Refactorización

«Refactorización». Una repaso a las técnicas de la refactorización y a las mejores prácticas. Destacaron como principal oposición a la refactorización el factor humano: «De este proyecto yo paso. No entiendo nada» añadiendo que es preciso refactorizar lo antes posible. Entre las mejores prácticas, distinguieron entre refactorizaciones grandes (1.- Define y aísla la refactorización, 2.- Vuelve atrás a la versión anterior estable si te pierdes y 3.- Usar las pruebas como guía) y trabajo en equipo (1.- Define y comunica cultura de diseño, 2.- Comunica la refactorización a priori, 3.- Reuniones de diseño).

—–

Continuar leyendo[javaHispano] Refactorización

[javaHispano] Serialización en J2ME

«Mecanismos de serialización en J2ME». Guillemo Diez-Andino nos habló de esa «carencia» de la plataforma J2ME y de los intentos de crear un mecanismo de serialización para J2ME. Entre los problemas que comentó estaba que J2ME no soporta el mecanismo de reflection muy ligado a la serialización, por tanto, cualquier implementación requiere la intervención del programador al no poder hacerse del todo transparente. De hecho, después de explicar cómo funciona el mecanismo de serialización que han implementado, propuso entre las líneas futuras el generar automáticamente algunos de los métodos necesarios.

—–

Continuar leyendo[javaHispano] Serialización en J2ME

[javaHispano] Portlets

«Hacia una estandarización de los portlets en Java: la especificación de los portlets»: una útil introducción a los portlets (que yo no comprendía muy bien) por parte de Antonio Estévez (de OpenCanarias, de Tenerife). Describió las características más importantes de los portlets, especialmente en lo relativo a su uso, generación de contenidos, relación con JSP y Servlets y su integración con otras tecnologías como JSF o servicios web. Básicamente ofrecen un mecanismo para la creación de aplicaciones de portal. Llegué unos minutos tarde, por lo que no sé si definió o no lo que era un portal (yo no lo tengo muy claro).

Luego ha descrito la implementación de OpenCanarias de un contenedor de portlets. Ha comentado que esa implementación estará disponible para bajársela. Interesante porque me gustaría jugar con ella.

En las conclusiones ha propuesto un interfaz de servicios del portal de forma que otros fabricantes podrían crear servicios para integrarlos en el portal. Al final ha destacado dos cosas, 1) la importancia de la colaboración Universidad/empresa y 2) lo mucho que se aprende creando tu propia implementación de unas especificaciones.

Watch the skies, everywhere! Keep looking. Keep watching the skies!

—–

Continuar leyendo[javaHispano] Portlets