La Singularidad Desnuda

Un universo impredecible de pensamientos y cavilaciones sobre ciencia, tecnología y otros conundros

Archive for 30 enero 2007

El rostro de Hiperión y sus enigmáticas oquedades

Posted by Carlos en enero 30, 2007

Los grandes planetas gaseosos de nuestro sistema solar son una fuente continua de información fascinante. Con su cohorte de satélites, cada uno de ellos es de hecho un sistema planetario con mundos asombrosos. Pensemos por ejemplo en Saturno VII, más conocido como Hiperión. Este satélite es notable por varias cosas. Para empezar tiene una forma irregular (una especie de ovoide de 360×280×225 km), y sus dimensiones lo hacen el segundo mayor cuerpo de estas características del sistema solar (detrás de Neptuno VIII o Proteo). Su órbita es caótica (es la única luna del sistema solar con esta característica), con una constante variación de su eje de rotación debido a su forma irregular, y a la cercanía del gigante Titán. También es remarcable la morfología de su superficie, llena de cráteres y con aspecto esponjoso. Esta desgarradora orografía ha quedado muy bien reflejada en la impresionante imagen que la NASA eligió hace un par de días como su foto astronómica diaria.

Hyperion

Mecanismos grabados a fuego en nuestros circuitos cerebrales por millones de años de evolución nos permitirán probablemente visualizar un rostro sardónico en esta imagen. Pero dejando de lado esta ilusión óptica, la abrupta superficie del Hiperión es todo un espectáculo. Se supone que el satélite es probablemente el resto de un cuerpo mayor que fue destrozado por algún impacto en el pasado distante. El oscuro fondo de los cráteres puede indicar una diferente composición, quizás relacionándolo con Saturno VIII o Japeto, otra de las más enigmáticas lunas del sistema solar.

Con todo, lo que quizás permita echar a volar más la imaginación es la baja densidad de Hiperión, un 60% de la del hielo. Esto quiere decir que, asumiendo que la composición del satélite es mayormente agua helada, un 40% de su interior es hueco. Por supuesto, si su composición es diferente y tiene un componente rocoso significativo, entonces el porcentaje de porosidad debería ser mucho mayor del 50%. Es tentador elucubrar sobre el aspecto que debe tener el sistema de cuevas que recorre las entrañas de Hiperión, desolados pasadizos donde jamás llega a entrar la luz del Sol, ni el reflejo de Saturno. Es otro más de tantos extraños paisajes que tenemos en el patio trasero de nuestro sistema solar.

Enviar a Blog Memes Enviar a del.icio.us Enviar a digg Enviar a fresqui Enviar a menéame

Posted in Astronomía, Fotografía | Etiquetado: , , , , , | Comentarios desactivados

Planilandia, dos películas en múltiples dimensiones

Posted by Carlos en enero 29, 2007

A finales del s. XIX, un prominente profesor y teólogo británico publicó una obra que más de 120 años más tarde sigue siendo enormemente popular entre matemáticos, físicos, e informáticos. El autor es Edwin Abbott Abbott, y la obra en cuestión es “Planilandia: un romance en muchas dimensiones“. En sí misma, esta novela era una sátira de la rígida sociedad victoriana de la época, y una alegoría de los elementos trascendentales de la vida. Sin embargo, es la envoltura de la misma la que hace a la historia deliciosamente atractiva, sin desmerecer el componente simbólico. El autor nos narra las aventuras de los seres de un universo de dos dimensiones, en el que la noción de arriba y abajo no existe. El protagonista es un humilde cuadrado (una alegoría del autor, ya que la doble A de su nombre le ganó el -poco ingenioso- apelativo de “Edwin A cuadrado” por parte de sus compañeros), que pondrá en cuestión los cimientos de su rígida sociedad al interactuar con un fantástico ser de 3 dimensiones (una esfera) que puede aparecer y desaparecer a voluntad, cambiar de tamaño, ver el interior de recintos cerrados, o teletransportar cosas de un lugar a otro.

Esta fantástica novela va a ser llevada al cine ahora por partida doble, según nos cuenta Sean Carroll en Cosmic Variance. Por un lado, en primavera de este año se lanzará Flatland: the Movie, como parte de un DVD educativo que también incorporará el texto original del autor. Martin Sheen será el que le dé voz a A Square. Por otra parte, de manera independiente se está produciendo una película titulada Flatland: the Film, una producción independiente que se pretende estrenar en el Festival de Sundance u otro similar. En ambos casos, se trata de películas de animación, y al menos en el segundo caso no apta para el público infantil. Los que una vez fuimos niños y soñamos con el hiperespacio gracias a Edwin A. Abbott, podremos no obstante disfrutar de ellas enormemente.

Flatland the Movie

Flatland the Film

Enviar a Blog Memes Enviar a del.icio.us Enviar a digg Enviar a fresqui Enviar a menéame

Posted in Ciencia Ficción, Cine, Filosofía, Matemáticas, Nerd | 1 Comment »

Auschwitz – Birkenau, 1940-1945

Posted by Carlos en enero 27, 2007

ausch.jpg

Enviar a Blog Memes Enviar a del.icio.us Enviar a digg Enviar a fresqui Enviar a menéame

Posted in Historia | 6 Comments »

El mundo visto a través de un metamaterial

Posted by Carlos en enero 26, 2007

Cuando hace unos días hablábamos de los metamateriales, vimos que además de su relación con la consecución de invisibilidad, ofrecen grandes posibilidades para la construcción de superlentes. La clave está en el hecho de que estos metamateriales tienen un índice de refracción negativo, lo que intuitivamente quiere decir que los rayos de luz incidentes se curvan hacia “el lado contrario”. Aunque se puede intentar construir un diagrama idealizado que ilustre la situación, es muy difícil llegar a comprender todas las implicaciones del hecho de que la curvatura sea la contraria que en un material normal. Y dado que no hay nada mejor que ver con los propios ojos las cosas, he aquí lo que sucedería si tuviéramos un líquido con índice de difracción negativo:

Negative-index refraction material
Credit: G. Dolling et al. – (c) 2006 Optical Society of America

La imagen de la izquierda corresponde a la situación habitual de un líquido con índice de refracción positivo. La barra introducida en el líquido se curva en la misma dirección en la que incide en el líquido, pero con un ángulo distinto, que causa el bien conocido efecto de que la barra parezca partida. A la derecha se muestra la situación cuando el líquido tiene un índice de refracción negativo. Lo más evidente que se aprecia es el hecho de que la barra parece ahora no sólo rota, sino inclinada en dirección opuesta a la que entra. Sin embargo, hay otras cosas más sutiles e interesantes. En primer lugar la parte inferior de la interfaz líquido-aire es visible, ya que los rayos emitidos hacia abajo son refractados negativamente hacia arriba. Por el mismo motivo, la parte superior del fondo del vaso no puede verse, ya que los rayos emitidos hacia arriba son refractados hacia abajo.

Aunque recientemente se ha conseguido producir metamateriales efectivos en la banda de luz visible, estas imágenes son obviamente una recreación fotorrealista generada mediante ray-tracing por Gunnar Dolling y colaboradores, en un trabajo titulado

que apareció publicado en Optics Express. Si el efecto de la barra anterior parece sorprendente, la cosa no es nada si se observa qué sucedería cuando un objeto se zambulle en el líquido con índice de refracción negativo. Visto desde arriba, la situación normal debería ser que dicho objeto se fuese haciendo cada vez más pequeño a medida que se aleja, sumergiéndose. Sin embargo, lo que apreciamos es un aparente cambio en el sentido de movimiento del objeto, que parece agrandarse cada vez más. El motivo es que el ángulo de visión se incrementa, en lugar de decrementarse, lo que da lugar a una magnificación de la imagen. Pueden verse varios vídeos ilustrativos aquí. ¿No son maravillosas, las leyes de la física?

Enviar a Blog Memes Enviar a del.icio.us Enviar a digg Enviar a fresqui Enviar a menéame

Posted in Física, Fotografía, Tecnología | Etiquetado: , | 1 Comment »

El último gran romántico de las matemáticas

Posted by Carlos en enero 25, 2007

David Hilbert

Debemos saber. Sabremos.
David Hilbert (1862-1943),
Matemático alemán

Que la sociedad cambia a pasos agigantados es una obviedad, pero nunca está de más pararse a pensar en cómo son las cosas, y cómo eran tiempo atrás. Este cambio es patente en todos los órdenes de la vida, y en particular en el área de la investigación científica, por lo que tiene de apertura de nuevos caminos, y punta de lanza (a la vez que propulsora) de la evolución social. Hoy en día, es mayoritario el “publica o muere“, el perder horas y horas en papeleo administrativo, y el cambiar de pautas de comportamiento según vayan cambiando los criterios de valoración del correspondiente Ministerio. Hace años, y me estoy refiriendo a hace un siglo, las cosas -con todos los defectos que una estructura social mucho más rígida pudiera conllevar- tenían otro cariz. Admito que se puede tratar de una versión idealizada por la retrospectiva, pero es innegable que en aquella época el Universo exhibía innumerables misterios que había que resolver: se desconocía por completo -o a lo sumo estaba en pañales- la mecánica cuántica, la física relativista, la noción de computación, … Todo esto dotaba a la investigación científica del romanticismo que la exploración de lo desconocido tiene, máxime cuando la proporción de científicos era mucho menor que la actual.

En esta época, y en este contexto es en el que creció la inmensa figura de David Hilbert, de cuyo nacimiento se cumplió el 145º aniversario hace un par de días. En un momento en el que la ciencia no estaba compartimentada como ahora, y en la que filosofía, matemáticas, y física intersectaban de manera natural, Hilbert era un todoterreno con motor de Formula-1. Sus trabajos en álgebra, geometría, análisis funcional, o teoría de números son hitos en la historia de las matemáticas del siglo XX. Prodigioso matemático -mucho mejor que Einstein, que en contra de lo que la leyenda urbana cuenta, era fantástico en esta disciplina- pudo llegar a las ecuaciones de campo de la Teoría de la Relatividad General antes que este último (cuestión debatida, pero sólo por cuestión de días). Más conocidos son los denominados problemas de Hilbert, una colección de 23 problemas sin resolver en la época (y algunos sin resolver hoy en día), cuya resolución (a menudo produciendo otros subproblemas asociados) ha proporcionado momentos de gloria a las matemáticas modernas.

De todas formas, si hay algo que me atrae en especial de la figura de Hilbert es su optimismo en el uso de las matemáticas como la herramienta final, una ambición romántica de conseguir dar respuesta a los misterios del Cosmos en términos matemáticos, y mediante procedimientos mecánicos. Éste era el objetivo último de lo que se conoció como el programa formalista de Hilbert. Hilbert detestaba la visión pesimista sobre los límites de la ciencia postulada por algunos pensadores, y que se resumía en el célebre ignoramus et ignorabimus (“ni sabemos ni sabremos”). Frente a él, esgrimió la potencia de las matemáticas en su célebre discurso radiofónico de 1930:

No debemos creer a aquéllos que hoy en día, con expresión filosófica y tono de superioridad, profetizan la caída de la cultura, y aceptan el ignorabimus. Para nosotros no existe el ignorabimus, ni en mi opinión lo hay tampoco para las ciencias naturales. En oposición al estúpido ignorabimus, propongo un nuevo eslogan: “Debemos saber. Sabremos.”

Un mes escaso después de este discurso, un joven matemático austriaco presentaba su trabajo en la First International Conference on the Philosophy of Mathematics de Königsberg. Se trataba de Kurt Gödel, y en él nos mostraba su Teorema de Incompletitud. Con él se fueron al traste las ambiciones del programa formalista de Hilbert. Una lástima por los sueños del gran Hilbert, pero una inmensa fortuna para los que apreciamos las matemáticas por su significado profundo, y no por su mecanicismo.

Enviar a Blog Memes Enviar a del.icio.us Enviar a digg Enviar a fresqui Enviar a menéame

Posted in Ciencia, Citas, Filosofía, Matemáticas, Personajes, Universidad | 1 Comment »

Las nanocápsulas, cada vez más cerca

Posted by Carlos en enero 24, 2007

En “El Otoño de las Estrellas”, la novela de Pedro Jorge y Miquel Barceló que reseñaba hace algún tiempo, hay un momento en la trama en la que uno de los protagonistas decide enfrentarse a la inhóspita superficie del planeta en el que vive (el protagonista es humano, y habita en unas colonias subterráneas, ya que periódicamente hay un extraño fenómeno en la superficie que arrasa todo lo que en ella se encuentre). Para ello, y en previsión de que la atmósfera se torne irrespirable o no sea posible encontrar sustento, se dota de reservas en forma de nanoesferas inyectadas en el caudal sanguíneo. El contenido de estas nanoesferas -comprimido a gran presión- le proporcionará el necesario soporte vital cuando lo necesite.

Esta idea, como otras tantas relacionadas con la nanotecnología, no es tecnológicamente factible por el momento, pero cada vez está más cerca. Uno de los problemas prácticos que plantea la construcción de nanoesferas es el hecho de que al intentar generarlas mediante la composición de partículas básicas, estas últimas tienen a agruparse de manera un tanto irregular, lo que dificulta mucho la obtención de una colección homogénea de nanoobjetos. Este problema puede que se esté empezando a resolver empleando el enfoque complementario: construir los nanoobjetos mediante la disgregación de objetos mayores. Esto es precisamente lo que Fan Li, Zhiyong Wang y Andreas Stein, de la Universidad de Minnesota, han conseguido, según comunican en un artículo titulado:

y publicado en Angewandte Chemie. El método seguido consiste en construir una especie de molde mediante diminutas esferas de polimetilmetacrilato empaquetadas al máximo. Los huecos entre las esferas (que en este caso tienen forma de tetraedros y de octaedros) se rellenan de un compuesto que comienza a solidificarse. Cuando se destruyen las esferas (mediante calcinación), se obtiene una estructura de tetraedros y octaedros que con un adecuado tratamiento darán lugar a esferas y a cubos respectivamente.

Synthesis of Ordered Macroporous Metal Oxides, Metals, and Hybrid Solids
Credit: Stein Research Group

El método es ingenioso, y puede abrir el camino a la generación de nanoobjetos con otras estructuras. La distancia entre la realidad y la ficción se sigue acortando a pasos agigantados.

Enviar a Blog Memes Enviar a del.icio.us Enviar a digg Enviar a fresqui Enviar a a menéame

Posted in Ciencia Ficción, Nanotecnología | 3 Comments »

Exploración robótica del Cosmos: nuevos desafíos, nuevos algoritmos

Posted by Carlos en enero 23, 2007

El tema de la exploración humana del espacio es apasionante y controvertido. En muchas situaciones se tiende a hacer una analogía con los antiguos exploradores, que se adentraron en desconocidos territorios polares, desérticos, o selváticos, y aunque la imagen es evocadora, parece irreal. Básicamente, mucho antes de que se tengan los medios técnicos para una detallada exploración humana de, pongamos por caso, Marte, será factible realizarla mediante sondas robóticas. La lógica indica que este paso previo es mucho más prudente, con independencia de lo que luego se pudiera decidir sobre eventuales misiones tripuladas.

Exploration Robotic/Human
Credit: NASA

En relación con esta exploración robótica surgen diferentes cuestiones de gran interés. Por un lado está la planificación a gran escala de esta exploración. Jordi nos reseña en su bitácora un artículo en el que se aborda este tema. Es sin duda un asunto interesantísimo, y que se presta a diferentes análisis. No obstante, quería comentar algo en relación a otro aspecto de naturaleza más local, pero no por ello de menor importancia: el control de las sondas robóticas. Está claro que el límite físico de la velocidad de la luz impide que las comunicaciones se puedan desarrollar en tiempo real, y por lo tanto no es planteable que los robots sean meros instrumentos teledirigidos. Éste no es sólo el caso de una hipotética exploración de planetas extrasolares, sino que se trata de una consideración crucial para la exploración de Marte por ejemplo. Consideremos que la distancia que nos separa de Marte oscila entre unos 55 millones y unos 400 millones de kilómetros. Esto supone que los tiempos de comunicación bidireccional (mensaje y respuesta) oscilan entre poco más de seis minutos y casi 45 minutos. En general, esto significa que la sonda ha de tener un cierto grado de autonomía que le permita valerse por sí misma, e incluso planificar los detalles de la exploración. Para esto será necesario emplear técnicas de inteligencia artificial (IA), entendidas en un sentido amplio:

  • Los métodos clásicos de IA tales como los sistemas expertos, el razonamiento basado en casos, o los métodos bayesianos pueden ser útiles a la hora de planificar a alto nivel los objetivos a largo plazo, construir modelos del entorno, o realizar toma de decisiones estratégicas.
  • Los métodos modernos englobados dentro de la inteligencia computacional, tales como la computación evolutiva o los sistemas neurodifusos, resultarán imprescindibles a la hora de resolver problemas de medio alcance que se planteen en la consecución de los objetivos estratégicos, tales como planificación de tareas, interpretación visual, u optimización de maniobras.
  • Finalmente, el nivel más bajo deberá ser puramente reactivo: reglas de actuación ante patrones de entrada sensorial, que permitan una respuesta rápida ante situaciones tales como obstáculos imprevistos, terrenos impracticables, etc. Por supuesto, este nivel reactivo básico puede estar sujeto a continuo refinamiento mediante técnicas de aprendizaje, tales como los algoritmos evolutivos.

Evidentemente, en el caso de Marte es factible cierto tipo de control remoto, no en tiempo real, pero si al menos para determinar la planificación a medio y largo plazo de la exploración. Sigue existiendo entonces la problemática del control a muy corto plazo, y muy en particular la del cómputo de las trayectorias. Para ello, la NASA está recurriendo a una solución mucho más conservadora que las descritas anteriormente, cosa que tampoco es excesivamente criticable, dado que en el fondo la proximidad de Marte facilita las cosas, esto es, no es necesaria una total independencia de la sonda (salvo en circunstancias puntuales y transitorias, como un ocultamiento de Marte por el Sol, aunque en ese caso, se opta por dar unas “vacaciones” a las sondas).

Mars Exploration Rovers
Courtesy NASA/JPL-Caltech

El mecanismo que se emplea en la Spirit y en la Opportunity en lo que a planificación de trayectorias se refiere es una variante del clásico algoritmo A*. A grandes rasgos, el A* es un algoritmo completo de búsqueda para la exploración de grafos. En este caso, el grafo representa el terreno sobre el que la sonda se ha de desplazar, discretizado como si se tratase de las casillas de un tablero de ajedrez. El desplazamiento de una casilla a otra tendrá un coste que dependerá de las características del terreno. El algoritmo explora sistemáticamente todos los caminos que parten de la posición inicial, construyendo una lista de caminos abiertos, y seleccionando para su extensión a aquellos que resultan más prometedores de acuerdo con una función de coste heurística. Para evitar ciclos, se mantiene también una lista de las casillas visitadas (la gestión de esta lista tiene algunos matices, pero podemos obviarlos de momento). Si la función heurística es optimista (es decir, nos proporciona siempre una cota inferior del coste final de un camino incompleto), tenemos garantizado el encontrar finalmente la solución óptima.

El problema del A* es que obviamente parte del conocimiento del terreno, cosa que no es totalmente realista en el caso de las sondas: a medida que éstas avanzan obtienen nuevas imágenes que revelan nuevos obstáculos, o alteran las características que se suponía tenía el terreno. Esto conlleva que el grafo subyacente debe ser modificado, y el camino óptimo recomputado. Afortunadamente, hay formas eficientes de realizar esto, ya que por definición, las modificaciones que se realizan afectan fundamentalmente a la vecindad inmediata del la sonda. El algoritmo que se emplea a tal efecto es el D* (la D es de “dinámico”), y se basa en una astuta gestión de la lista de caminos abiertos. Para más detalles, puede consultarse el trabajo titulado:

realizado por Anthony Stentz, de la Carnegie Mellon University, y publicado en la 1994 IEEE International Conference on Robotics and Automation. Con este algoritmo y gracias a las últimas mejoras en los sistemas de análisis visual de la sondas, será posible que alcancen un nivel de autonomía muchísimo mayor que el que disfrutaban hasta ahora. Poca cosa si se piensa en lo que será preciso en misiones de más calado en regiones mucho más lejanas del Universo, pero un paso necesario en cualquier caso.

Env�a a Blog Memes Env�a a del.icio.us Env�a a digg Env�a a fresqui Env�a a menéame

Posted in Algorítmica, Astronáutica, Computación Evolutiva, Inteligencia Artificial | Etiquetado: , , , , , , | Comentarios desactivados

Un bombardeo con misiles en miniatura

Posted by Carlos en enero 22, 2007

Una premisa bastante habitual de la ciencia-ficción es plantear como los protagonistas de la trama son reducidos de tamaño, y han de enfrentarse al microcosmos que los rodea. En aquellos casos en los que la reducción es a unos pocos milímetros de tamaño, suele haber dos recursos argumentales muy socorridos: defenderse de fieros artrópodos que persiguen a los protagonistas, o guarecerse de una lluvia repentina, cuyas gotas son como misiles para nuestros héroes. Esta última imagen no anda muy desencaminada, según podemos ver en un trabajo titulado:

realizado por David Jon Furbish y colaboradores, de las Universidades de Vanderbilt y de Arizona, y publicado en el Journal of Geophysical Research. En este trabajo, los autores estudian la dinámica de los impactos de las gotas de lluvia sobre el terreno, y llegan a conclusiones ciertamente curiosas.

La técnica empleada en el estudio ha consistido en situar una jeringa de apertura controlable a una altura de unos 5 metros, y dejar caer gotas de agua (protegidas en su caída por una tubería, eliminando así perturbaciones producidas por corrientes de aire) sobre una superficie de arena. Durante el momento del impacto (que tiene lugar a una velocidad de entre 22.3 km/h y 27.4 km/h) han tomado fotografías de alta velocidad, para estudiar sus características.

Impacto de gotas de agua sobre arena

Como puede apreciarse en la imagen superior, nada más producirse el impacto se desarrolla una corona similar a la que se produce cuando una gota cae sobre una superficie líquida. Sin embargo, la dinámica posterior está dominada por la interacción entre granos de arena, que chocan unos con otros a medida que la onda de choque se expande.

La visión tradicional del proceso sería que los granos de arena salen disparados de manera radial en todas direcciones, incluso si la superficie de impacto no es horizontal. Sin embargo, la conclusión del estudio es que hay una asimetría en la dirección de la pendiente. Así, en superficies horizontales la distancia a la que son lanzados los granos de arena no varía mucho en relación al tamaño de la gota, aunque su cantidad sí. En el caso de que haya una pendiente, sí se observa como la distancia a la que son lanzados es mayor pendiente abajo. Obviamente, el hecho de que la trayectoria parabólica seguida por los granos de arena intersecte más lejos con el suelo hacia abajo en la pendiente influye en este resultado, pero no es el factor primario (de hecho, fuera de la superficie de arena se usa papel adhesivo, lo que excluye también que los granos de arena rueden). Lo fundamental es la variación del momento lineal de la gota paralelo a superficie. Es un resultado un poco sorprendente, y puede tener numerosas implicaciones prácticas en, por ejemplo, el estudio de los mecanismos de erosión.

Enviar a Blog Memes Enviar a del.icio.us Enviar a digg Enviar a fresqui Enviar a menéame

Posted in Física, Fotografía, Geociencias | 2 Comments »

Rumiando programas: Programación bovina distribuida con COW y DDX

Posted by Carlos en enero 20, 2007

Friesian/Holstein cowHace unos días hablábamos del lenguaje Homespring, y de cómo permite que el programador se concentre en lo que realmente importa: las costumbres reproductivas del salmón. Claro que tan útil como esta metáfora de la programación pueda parecer, no es la única que se puede considerar. De hecho, hay ocasiones en las que es más conveniente pensar de otro modo a la hora de abordar un problema. Por ejemplo, podemos plantearnos: ¿cómo resolvería una vaca este problema? En ese caso, la forma natural de expresar la solución sería en el lenguaje COW.

COW es un lenguaje de programación orientado a bovinos. Ya sabemos que las vacas sólo entienden la palabra “moo” (o traducido al español, “muu”), por lo que todas las palabras claves del lenguaje son variaciones en mayúscula o minúscula de la misma. Esto nos facilita bastante las cosas a la hora de documentar los programas, ya que todo lo que no sea “moo” (en cualquiera de sus formas alternativas) se tomará por un comentario. Básicamente, COW es un lenguaje imperativo en el que tenemos acceso a una memoria (en principio ilimitada) indexada por posición. En todo momento hay un puntero interno que nos indica cuál es bloque de memoria actual, y disponemos de instrucciones para desplazar este puntero hacia adelante (moO) o hacia atrás (mOo). Por supuesto, podemos modificar el contenido de la dirección apuntada, decrementándolo en 1 (MOo), incrementándolo en 1 (MoO), o fijándolo a 0 (OOO). Hay también un registro interno del/al que podemos copiar el valor de un bloque de memoria mediante MMM. La entrada/salida se realiza mediante oom (para leer un valor y almacenarlo en el bloque de memoria actual) y OOM (para imprimir el valor del bloque de memoria actual).

Lo más interesante de COW son las instrucciones que hacen referencia al control del flujo de ejecución. Tenemos así a MOO y moo que son muy similares (pero no idénticas) a while y endwhile respectivamente (usando el valor del bloque actual de memoria como condición de control: 0 es FALSE, y diferente de 0 es TRUE). Moo es una lectura/escritura condicionada al valor del bloque de memoria actual (lectura si es 0, escritura en otro caso). Finalmente, mOO ejecuta el contenido del bloque de memoria actual como si fuera una instrucción (hay un código numérico para cada una). Es importante tener en cuenta que al igual que ocurría con Homespring, en COW se retira la carga de una sintaxis estricta de los hombros del programador, no situándola en ningún lugar en particular. Así, no tiene por qué haber un moo para todo MOO (ni viceversa). Más aún, la disponibilidad de mOO proporciona la flexibilidad de LISP a la hora de manipular programas como datos, abriendo la puerta por ejemplo a la definición dinámica de bucles.

Un programa “Hola Mundo” es perfectamente factible en COW (de hecho el lenguaje es Turing-completo), pero resulta un tanto enrevesado, ya que no podemos representar texto constante de manera explícita en el lenguaje. Mucho más simple y elegante es por ejemplo un programa para calcular la sucesión de Fibonacci:

MoO moO MoO mOo
[[ bucle principal ]]
MOO
[[ imprimir primer número ]]
OOM
[[ copia temporal del primer número ]]
MMM moO moO MMM mOo mOo
[[ almacenar el segundo número en la primera posición ]]
moO MMM mOo MMM
[[ retroceder al número temporal ]]
moO moO
[[ sumarlo al primer número y almacenarlo en el segundo ]]
MOO MOo mOo MoO moO moo
mOo mOo
moo

A pesar de su elegancia, esto que hemos visto es tan sólo la punta del iceberg de lo que podemos conseguir con este paradigma de programación. Ya sabemos que el sistema digestivo de una vaca es realmente complejo, e incluye varios estómagos. Sería absurdo no explotar este hardware, y para ello podemos emplear DDX (Distributed Digestion eXtensions). DDX permite manipular hasta siete bloques de memoria simultáneamente (los bóvidos sólo tienen cuatro estómagos, pero no dejemos que esto nos limite). Para ello, se incluyen operaciones para seleccionar el estómago por defecto, así como para realizar operaciones simultáneas en todos los estómagos (véase esta página para más detalles). Con estos cambios, el programa anterior quedaría como sigue:

[[ Iniciar los dos primeros estómagos con 1s y permanecer en el segundo ]]
MoO OOM MmM MoO OOM

[[ sumar, resetear el estómago previo, guardar en el siguiente estómago, e imprimir ]]
MOO mmm MMm OOO MmM MmM MMM OOM moo

Realmente fantástico. Y es que no hay nada como poder rumiar la solución a un problema.

Enviar a Blog Memes Enviar a del.icio.us Enviar a digg Enviar a fresqui Enviar a menéame

Posted in Geek, Programación | 1 Comment »

Granos de arena y estrellas supergigantes

Posted by Carlos en enero 19, 2007

Desde tiempo inmemorial hemos recurrido a expresiones como “más que granos de arena en la Tierra”, o “más que gotas de agua en el mar” como descripción gráfica de la inconmensurabilidad. Un ejemplo típico lo constituye la afirmación -popularizada por Carl Sagan- de que hay más estrellas en el cielo que granos de arena en la Tierra, por no hablar de la famosa lágrima que cayó en la arena y que fue arrastrada al mar por una ola. En relación precisamente a la primera afirmación, hay gente que ha intentado de veras comprobarla, y aunque es bastante verosímil que sea cierta, la verdad es que cualquier medida del número de estrellas o del número de granos de arena está sujeta a mucha imprecisión. Centrándonos en este último, hay diversos cálculos, pero se suelen centrar en la arena de las playas, no teniendo en cuenta que las mayores bolsas de arena se encuentran en los desiertos del Sahara y de Gobi. Así, se estima entre 1020 y 1024 el número de granos de arena en las playas, y en torno a 1025 en el Sahara. Podemos curarnos en salud, y tomar 1026 como estimación global del número total de granos de arena en la faz de la Tierra. No me interesa tanto en este momento comparar esta cantidad con el número de estrellas, pero sí con otra magnitud relacionada con las mismas: la energía que nos llega de ellas.

Podemos suponer que la energía emitida en cada instante por una estrella (o por cualquier cuerpo celeste) se distribuye de manera homogénea en la superficie de una esfera en expansión. Si la distancia a la Tierra de dicha estrella es de R metros, la superficie de dicha esfera es lógicamente 4πR2. La Tierra tiene una sección de πr2, donde r es el radio terrestre, de donde se sigue que la fracción F de la energía que nos llega de la estrella es F=(r/2R)2. ¿Qué distancia haría falta para que esta fracción fuera equivalente a un grano de arena en el desierto (F=10-26)? Pues en torno a 3·1019 m, o lo que es lo mismo, algo más de 3,300 años-luz. Precisamente a esta distancia de la Tierra (años luz arriba o abajo), nos encontramos a Deneb, una supergigante azulada de clase A2 Ia, cuya masa es unas 20-25 veces mayor que la del Sol, y cuyo radio oscila entre los 200 y los 300 radios solares. La imagen inferior muestra a Deneb junto a las nebulosas Sh2-112 y Sh2-115.

Deneb and the nebular complex of Sh2-112 and Sh2-115  in Cygnus
Credit: Davide De Martin – http://www.skyfactory.org

De acuerdo con los cálculos anteriores, si Deneb estuviera lanzando al Cosmos a cada instante y de manera uniforme la cantidad de granos de arena que hay sobre la Tierra, sólo nos llegaría uno en cada momento. A pesar de esto, Deneb es una de las más brillantes estrellas del firmamento nocturno, lo que nos da una idea de su poder. Su temperatura superficial es de 8400K, y su luminosidad (de acuerdo con la estimación de distancia indicada, sobre la que hay cierta imprecisión) es 250,000 veces la del Sol. Su potencia lumínica es tal que en un solo día genera tanta luz como el Sol en 140 años, y su brillo es comparativamente superior incluso al de algunos láseres industriales. De hecho, si estuviera a la distancia de Sirio (unos 8.6 años-luz), su brillo sería superior al de la Luna llena.

La magnitud de estos números da vértigo, pero no es nada comparada con la de objetos más lejanos y más poderosos energéticamente, como los quásares por poner un ejemplo. Otro día hablaremos de ellos, y de otros prodigios de la Naturaleza.

Enva a Blog Memes Enva a del.icio.us Enva a digg Enva a fresqui Enva a menéame

Posted in Astronomía, Nerd | 1 Comment »