…esto no es un subtítulo…
lu | ma | mi | ju | vi | sá | do |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | |||
2013-10-30
Hoy tenemos otro artículo de nuestra serie que introduce vocabulario aeroespacial. En el artículo de hoy, introducimos dos palabrejas en inglés: «docking» y «berthing». Ambas hacen referencia al acoplamiento entre dos naves espaciales. El acoplamiento, que consiste en la conexión de dos vehículos espaciales, es un proceso común en estaciones espaciales (pero las estaciones espaciales no tienen el monopolio sobre las maniobras de acoplamiento) tanto en el caso de uniones más o menos permanentes entre módulos como uniones transitorias con vehículos de transporte de carga. ¿Cuándo una unión es un «docking» y cuando es un «berthing»?
Ambos términos hacen referencia a las maniobras de atraque, pero «berthing» tiene cierta relación con el amarre hasta cierto punto análoga al uso de un brazo robótico para unir dos vehículos.
La Estación Espacial Internacional recibe a menudo otras naves con provisiones y relevos para la tripulación. Algunas de estas naves, como el ATV y la Soyuz, se acoplan por sus propios medios (hacen docking); otras, como el HTV y el Dragon, se acoplan mediante el brazo robótico Canadarm2 (hacen berthing).
Categorías: Aeroespacio, Lingüística
Permalink: https://sgcg.es/articulos/2013/10/30/vocabulario-aeroespacial-7-docking-y-berthing/
2013-10-28
Hace unos días surgió un proyecto para crear una fuente de «humo» como efecto decorativo. Entre las opciones más espectaculares, se encontraba la de usar hielo seco. El hielo seco es dióxido de carbono en estado sólido. Viene presentado en bloques a muy baja temperatura que subliman al ser expuesto a condiciones más confortables para el ser humano. Si introducimos un fragmento de hielo seco en un recipiente con agua, se produce un fuerte burbujeo de dióxido de carbono que vuelve el aire blanco y opaco. El efecto es muy espectacular y es seguro si se opera con cabeza. En primer lugar, hay que llevar protección para evitar el contacto directo con el gélido hielo seco. En segundo lugar, hay que contar con una ventilación adecuada para evitar la exposición asfixiante a concentraciones elevadas del gas.
Podemos calcular cuánto se expande el dióxido de carbono al sublimar con ayuda de la ley de los gases ideales. El dióxido de carbono tiene una masa molar M ≈ 44,0 kg kmol−1. La constante universal del gas ideal es R ≈ 8,314 J mol−1 K−1, así que la constante de gas ideal del dióxido de carbono es RCO2 ≈ 189 J kg−1 K−1. Ahora supongamos que estamos en una habitación en Madrid con una presión atmosférica p = 945 hPa y una temperatura T = 293 K. La ley de los gases ideales nos dice que la densidad del dióxido de carbono puro es ρgas = p ⁄ (RCO2 T) y el volumen específico v es la inversa de esta cantidad, es decir, ρgas = RCO2 T ⁄ p = 1 ⁄ ρ = ≈ 0,59 m3 kg−1). El hielo seco tiene una densidad ρsólido ≈ 1,5 g cm−3 o un volumen específico vsólido ≈ 0,67 dm3 kg−1. El volumen específico del dióxido de carbono gaseoso es casi mil veces (ochocientas ochenta veces) el volumen específico del dióxido de carbono sólido.
Si tuviéramos un cubo de 10 cm de lado, podríamos llenar un volumen más grande, de casi 1 m de lado, con CO2 puro y a las mismas condiciones de presión y temperatura que el ambiente. Ahora bien, la habitación será generalmente mucho más grande que unas mil veces el volumen del bloque de hielo seco original y partimos de la idea de que ya está llena de aire, así que si dejáramos sublimar un bloque de hielo seco, el dióxido de carbono gaseoso acabaría disuelto en el aire de la habitación. En primera aproximación, podemos asumir que no cambian significativamente las condiciones ambientales de temperatura, presión y volumen atmosférico de la sala al sublimarse el hielo seco. Esto nos facilita la vida y no supone un error apreciable salvo si metemos en la habitación un bloque de hielo seco enorme, casi tan grande como ella. Tras la sublimación, tenemos que repartir el volumen de CO2 por la habitación. Si dividimos el volumen que ocuparía el gas si fuera puro por el volumen de la habitación, obtenemos lo que crece la concentración en volumen del CO2. Si la composición final del aire fuera uniforme, un bloque de 1 kg de masa ocuparía 0,59 m3 si fuera puro y tendría una concentración volumétrica del 1 % en una habitación de 59 m3 que, si fuera cúbica, tendría 3,9 m de lado. Esta concentración es muy superior a la que suele encontrarse en una habitación normal y corriente y es lo bastante grande para causar molestias en la población general. Ahora bien, el CO2 es más denso que el resto del aire y la difusión no es suficiente para vencer el efecto gravitatorio y mantener una concentración marcadamente uniforme, así que hay una tendencia a que el dióxido de carbono se acumule cerca del suelo, donde la concentración es por lo tanto mayor y ya hay más riesgo de asfixia en niños y animales domésticos. La distribución no uniforme del dióxido de carbono es más complicada de calcular, así que queda fuera de este articulito corto.
Categorías: Química
Permalink: https://sgcg.es/articulos/2013/10/28/cuanto-se-expande-el-hielo-seco-al-sublimar/
2013-10-25
Esto está relacionado
con las
protestas del sector educativo de ayer. Resulta que me encuentro
con esta
portada del diario El Mundo. Aparece una fotografía de un aula
con varios estudiantes en acto de hacer ruido y con un titular que
dice coacción en las aulas
. Debajo, el diario informa de que
varios jóvenes impidieron el acceso a las aulas de la Facultad de
Ciencias de la Información de la Universidad Complutense de Madrid.
Pues vale, pues me alegro. Esa fotografía no es de Ciencias de la
Información. El aula está en la planta baja de lo que fue la
Escuela Técnica Superior de Ingenieros Aeronáuticos (ahora Escuela de
Ingeniería Aeronáutica y del Espacio) de la Universidad Politécnica de
Madrid. Quizá la noticia es que estos tipos de la Complutense son tan
hábiles imitadores que nos han copiado no solamente las aulas, sino
hasta los profesores. Lo que hay que ver.
En la pizarra, a la derecha, aparece el texto CERRADO X
HUELGA
, mientras que a la izquierda aparecen dos igualdades que se
me antojan improbables en Ciencias de la Información: la superior
define el consumo específico basado en el empuje (útil en aviones
propulsados por aerorreactores) y la inferior define el consumo
específico basado en la potencia (útil en aviones propulsados por
motor hélice). Aprendan, señores de El Mundo:
CT = −(dm ⁄ m) ⁄ T
CP = −(dm ⁄ m) ⁄ P
Habría sido mejor poner un signo de equivalencia en vez de uno de igualdad. CT es el consumo específico basado en el empuje, CP es el consumo específico basado en la potencia, m es la masa, T es el empuje y P es la potencia.
Esta pequeña lección es gratuita y espero que compense un poco las carencias educativas a las que nos vemos encaminados.
El incauto lector quizá se preguntará por qué todo esto de la fotografía es importante. Pues es todo muy simple: es una mera cuestión de ética periodística y de integridad profesional. Quizá, debido a la destrucción de la enseñanza pública, las nuevas generaciones de periodistas no están bien preparadas en esta materia, así que habrá que explicarlo de forma sencilla: si tú ilustras una noticia con una fotografía, tú te aseguras de que la fotografía trata de lo que trata el texto de la noticia. La cuestión es que si son desonestos con la fotografía, ¿en qué más cosas engañan?
Del titular principal de la portada, mejor ni hablamos.
Categorías: Actualidad, Aeroespacio
2013-10-24
Los recortes en la educación pública y la LOMCE (la nueva ley de educación) son vistos con malos ojos por un amplio sector de la población que hoy, 24 de octubre de 2013, organizó una jornada de protesta por toda España. Hubo paros en el sector educativo y manifestaciones en muchas ciudades.
En Madrid ciudad había convocada al menos una manifestación a las 18:30 CEST desde Neptuno hasta Sevilla. Sobre las 18:00 CEST había ya algunas decenas de miles de personas en Atocha. A eso de las 19:00 CEST pude contar manifestantes a lo largo del Paseo del Prado desde unos 300 m de distancia de Atocha hasta Cibeles; una línea de alrededor de 1,0 km que cubría los carriles de subida en todo su ancho (para hacer cuentas, 10 m de Atocha a Neptuno y 20 m de Neptuno a Cibeles) con una densidad elevada de entre dos personas y tres personas por metro cuadrado. En total, habría alrededor de 50000 personas.
La manifestación se vio interrumpida cerca de las 19:10 CEST por una lluvia repentina. Más adelante, más allá de las 19:30 CEST, un grupo reducido (algún millar de personas) subía por la calle Atocha con compañeros delante y compañeros detrás. Llevaban carteles y gritaban consignas no solamente sobre la situación educativa, sino sobre los recortes en general.
Manifestantes que suben por la calle Atocha.
Aquí hay algunas fotos.
Cartel. Dice así: El peor enemigo de un gobierno corrupto es
un pueblo culto
.
Chorizo gigante.
Cartel. Dice así: ¡No a la LOMCE!
Cartel en el que sale un muñequito recortable con un birrete, cara
triste y una camiseta con el texto No soy recortable
y unas
tijeras.
Cartel. Dice así: Recortes, no
. Aparecen unas tijeras
bajo una señal de prohibición.
Cartel que recuerda a uno de anuncio de venta de vivienda. Dice
así: Se vende universidad pública. Número de teléfono:
666-Wert
.
Las máscaras de Guy Fawkes no suelen faltar.
Categorías: Actualidad, Madrid
2013-10-23
El 23 de octubre es el Día del Mol, un día dedicado al número de Avogadro y a la ciencia química. Es un día excelente para hacer labores de divulgación.
Para celebrar el Día del Mol de este año, vamos a estudiar una reacción vistosa y razonablemente frecuente en el ámbito doméstico: la neutralización de las soluciones limpiadoras de lentes de contacto. Veremos que esta reacción libera cierta cantidad de oxígeno y calcularemos, de hecho, cuánto oxígeno suele liberarse.
Las lentes de contacto (salvo las de un solo uso) requieren sistemas de desinfección. Un sistema habitual consiste en una solución con peróxido de hidrógeno al 3 % y un neutralizador basado en catalasa. La catalasa es una enzima que acelera la descomposición del agua oxigenada, que es esta reacción:
2 H2O2 → 2 H2O + O2.
Esto provoca un burbujeo de oxígeno en estado gaseoso. Este burbujeo se produce rápidamente y tiene cierto valor espectacular.
Burbujeo de oxígeno por neutralización de peróxido de hidrógeno en
presencia de catalasa. La solución era transparente antes de entrar
en contacto con el anillo neutralizador de la parte inferior del
frasco.
El frasco está lleno con unos 10 cm3; esto es representativo de lo que suele usarse. Como la solución es al 3 % en volumen, tenemos que el volumen añadido de peróxido de hidrógeno es de 0,3 cm3. La densidad en condiciones estándar del peróxido de hidrógeno es de 1,44 g cm−3 y la masa molar es de 34,0 g mol−1, así que hay aproximadamente 12,7 mmol de peróxido de hidrógeno en el frasco antes de la neutralización. De la reacción de neutralización, vemos que saldría la mitad de oxígeno: 6,35 mmol o 205 mg. El volumen liberado es algo comparativamente grande: la ley de los gases ideales nos da unos 157 cm3: aproximadamente dieciséis veces el volumen de la solución que habíamos echado en el frasco. Este volumen es aproximadamente un tercio del volumen corriente de la respiración de un ser humano adulto típico, pero como el aire tiene más o menos un 21 % en volumen de oxígeno, el burbujeo de la neutralización de la solución limpiadora de un frasquito da para una respiración y media. Los frascos de lentes de contacto disponen de agujeros que permiten escapar el exceso de gas.
Permalink: https://sgcg.es/articulos/2013/10/23/dia-del-mol/
2013-10-20
Las palabras «vergonzoso» y «vergonzante» tienen significados hasta cierto punto relacionados, pero diferentes. Veamos cómo. «Vergonzoso» es algo o alguien que o bien causa vergüenza, o bien se avergüenza fácilmente. «Vergonzante» es quien tiene vergüenza. Así, un individuo vergonzoso (que tiende a sentir vergüenza) actúa a menudo de forma vergonzante (es decir, sintiendo vergüenza). De ninguna manera «vergonzante» hace referencia a algo que causa vergüenza; la palabra a usar en tal caso es «vergonzoso». Es un error común confundir estas dos palabras debido a que el sufijo «ante» parece indicar un agente causal y una de las acepciones de «vergonzoso» es muy próxima al significado de «vergonzante», pero no es el caso.
Categorías: Lingüística
Permalink: https://sgcg.es/articulos/2013/10/20/la-diferencia-entre-vergonzoso-y-vergonzante/
2013-10-15
Pasan muchas cosas muy feas. Vamos a centrarnos un poquito en una relativamente frívola (pues las hay mucho más terribles y deprimentes).
Cuando nuestro actual Sagasta subió los impuestos indirectos, nuestro actual Cánovas insistió mucho en que tal cosa era contraproducente. Ahora que el turno es el de Cánovas, subir los impuestos indirectos no es malo. Aunque estamos acustombrados como estamos a que esta gente mienta más que hable, todavía nos encontramos con declaraciones de un cinismo desmedido; véase por ejemplo lo que nos cuenta cierto diario de capa caída sobre las últimas palabras del ministro de Educación, Cultura y Deporte: es muchísimo más grave para el cine el tema de la piratería que la subida de los impuestos indirectos. Uno podría pensar que tenemos muchos cineastas secuestrados en alta mar, pero como es costumbre, el ministro no se refieren a la piratería de verdad, sino que hace un uso fraudulento del lenguaje (muy popular en ciertos círculos) para equiparar algo cuyo daño es como mucho discutible (la aparición de mercados negros libres paralelos a monopolios) con algo socialmente poco aceptado (abordar barcos para robar). ¿Por qué digo que es como mucho discutible la distribución no autorizada de obras monopolizadas (es decir, sujetas a copyright)? Lo digo porque resulta que estos supuestos efectos negativos no se observan empíricamente, sino que vemos el efecto contrario: la industria de los contenidos crece y crece (enlace a lo mismo presentado de forma diferente) incluso con los problemas económicos que hay. ¿En España cierran muchos cines? Pues sí. También cierran zapaterías, carnicerías y fábricas de caramelos. Será todo culpa del crío que se descarga peliculitas que de todas formas no podía pagar, claro.
Categorías: Actualidad
Permalink: https://sgcg.es/articulos/2013/10/15/y-dale-con-la-pirateria/
2013-10-13
El 13 de octubre es el Día Internacional de Ponerse Traje (International Suit Up Day en inglés). Hay que ponerse traje. Hay que ir elegante.
El Día Internacional de Ponerse Traje
está sacado de la telecomedia de situación How I met your
mother. Uno de los personajes de esta telecomedia es un
donjuán que siempre viste traje y recomienda hacerlo a la orden de
suit up
.
How I met your mother es, salvando las distancias, algo así como la sucesora natural de Friends, otra sitcom longeva (algo más) de excéntricos amiguetes entre los veintimuchos y los treinta y pocos con muchos líos amorosos.
Categorías: Fechas
Permalink: https://sgcg.es/articulos/2013/10/13/dia-internacional-de-ponerse-traje/
2013-10-12
Esto es para los rezagados que todavía no se han enterado de la noticia. Tim Berners-Lee reitera la intención del grupo de trabajo de HTML incluir sistemas de restricciones de uso (DRM) en los próximos estándares… más o menos. El sistema, EME (Encrypted Media Extensions no especifica los detalles del DRM, pero sí cómo detectar que el contenido está diseñado para ser defectuoso y posibilitar que algún sistema de gestión de restricciones (DRM) a modo de complemento o plug-in se encargue de descifrar el contenido. Este asunto lleva cociéndose algún tiempo y ya provocó cierta movilización hace meses.
La idea consiste en que el usuario no tenga el control de lo que hace su navegador, sino alguna corporación que decidirá lo que puede ver el usuario y durante cuánto tiempo puede verlo. Algunas plataformas propietarias y privativas como Flash permitían hacer esto, pero se supone que tienen los días contados ante el aumento de las prestaciones que ofrecen los estándares abiertos. Ante la amenaza de la pérdida de la capacidad de restringir a los consumidores y usuarios, varias corporaciones se plantan bajo la amenaza de que no usarán los estándares y vivirán con sus propias plataformas fuertemente restrictivas de fantasía que, en un exceso de imaginación, se impondrán ante la competencia de plataformas abiertas que permiten un mercado libre.
El planteamiento es incompatible con el software libre. Los módulos DRM de EME tienen que ser cajas negras para que el esquema funcione, pero el software libre va de todo lo contrario: de transparencia y control ejercido por el usuario. El software libre no puede implementar EME de forma satisfactoria. Hay una petición en el sistema Bugzilla del proyecto Mozilla para que este proyecto jamás implemente EME en sus productos.
EME, al imponer el uso de código cuyo verdadero funcionamiento está ofuscado a los ojos del usuario, ha de ser considerado una fuente potencial de problemas de seguridad igual que lo son otros sistemas propietarios como Flash. ar
Dicen que el W3C no tiene capacidad de imponer estándares no deseados. Esto es aproximadamente cierto; véase el fiasco de XHTML. A esto hay que añadir la propia opinión de Tim Berners-Lee, quien dice que el W3C no puede dictar lo que los navegadores y los distribuidores de contenido pueden hacer, con lo que justifica esta fiesta en la que uno puede utilizar el W3C para estandarizar lo que le apetezca (nótese, por cierto, que el propio Berners-Lee considera que el DRM es indeseable). Ahora bien, es un auténtico error por parte del W3C permitir siquiera que se le use como marco para elaborar algo tan nocivo y contrario a los conceptos de un sistema de comunicaciones abierto como un DRM que busca que las comunicaciones y su contenido sean algo cerrado y anticompetitivo.
Como explicó Ian Hickson (quien supervisa el estándar o conjunto de
estándares vagamente conocido como
HTML5), el
DRM sirve para controlar el mercado de los reproductores de
contenido: DRM's purpose is to give content providers control
over software and hardware providers, and it is satisfying that
purpose well
(el propósito del DRM es dar a los proveedores de
contenido el control sobre los proveedores de software y hardware; el
DRM está satisfaciendo bien tal propósito
). A lo mejor el W3C no
puede decidir lo que un navegador puede hacer, pero al dar un marco de
legitimidad a los caprichos de los abogados de multinacionales
monopolistas, estas propias multinacionales sí podrán tomar tal
decisión. Y todo esto
es a
cambio de nada.
Categorías: Actualidad, Informática
Permalink: https://sgcg.es/articulos/2013/10/12/el-w3c-y-su-nuevo-amor-por-una-web-cerrada/
2013-10-06
Hace varios artículos, planteamos un interesante proyecto: una pequeña nnbiblioteca para construir autómatas celulares. Los autómatas celulares son unas estructuras matemáticas muy curiosas: retículos de celdas que van cambiando de un estado a otro y que pueden, a partir de reglas sencillas, exhibir complejísimos comportamientos emergentes. Como práctica, nuestra biblioteca estará hecha en Scheme R5RS y en Python 2. El enfoque es funcional porque el problema se presta mucho a ello. No nos preocuparemos tanto por hacer un código especialmente rápido como por hacerlo claro y conciso.
Ya tenemos una biblioteca completísima, pero nos falta un aspecto importante relacionado con la presentación de resultados: la capacidad de generar imágenes con las que representar el estado de un autómata. Las funciones que creamos para imprimir texto (translate-and-display-1d y translate-and-display-cartesian-2d) están bien para hacer una evaluación interactiva rápida del buen funcionamiento de un modelo de autómata celular, pero se quedan algo cortas. Una imagen permite ilustrar un autómata muy grande en poco espacio, pues podemos tomar un píxel por celda en vez de un enorme carácter por celda.
Vamos a generar imágenes PBM, PGM y PPM. Las imágenes PBM son monocromáticas con dos valores posibles (blanco y negro), las imágenes PGM son en escala de grises y las imágenes PPM son a color. Todos estos tipos están codificados sin compresión y pueden darse en formato binario y en formato ASCII; nos centraremos en el formato ASCII. En conjunto, se les conoce como PNM o el formato de Netpbm. Como no tienen compresión, las imágenes que guardamos en estos formatos ocupan bastante espacio de almacenamiento, pero tienen la ventaja de que son muy fáciles de escribir. Este proyecto ya ha crecido mucho y se aleja de su didáctica desarrollar funciones para hacer una codificación más complicada.
El formato
PBM es muy sencillo. Es así:
P1
columnas filas
datos
Tanto columnas como filas son números
decimales. Los datos son una secuencia de ceros (píxeles
blancos) y unos (píxeles negros) que representa los píxeles en orden
de lectura de izquierda a derecha primero y de arriba abajo después,
con o sin espacio de separación entre números. El espacio de
separación puede consistir en espacios, tabuladores, caracteres de
nueva línea y retornos de carro. El contenido de datos ha
de ir dividido en líneas de no más de setenta caracteres.
El formato
PGM es similar al PBM, pero tiene alguna complicación adicional
para poder codificar imágenes en escala de grises. Es así:
P2
columnas filas máximo
datos
El primer aspecto novedoso, además del cambio del número mágico
de P1
a P6
, es el máximo
(superior a 0 e inferior a 65536) que se corresponde con el máximo
nivel de gris o el número de valores de gris que podemos codificar
menos uno. Seguidamente, vienen los datos, que igual que
antes son los píxeles de izquierda a derecha y de arriba abajo en
líneas que no superan los setenta caracteres, pero esta vez con alguna
cantidad no nula de espacio entre números siempre y con números que
puden tener varias cifras: de 0 a máximo.
El formato
PPM es similar al PGM. Es así:
P3
columnas filas máximo
datos
En este caso, los datos codifican los píxeles con tríos
de números: uno para el rojo, otro para el verde y otro para el azul,
cada uno entre 0 y máximo.
Vamos a crear una función llamada write-pnm que aceptará
el nombre filename del fichero de salida, el número mágico
magick-number ("P1" para PBM, "P2"
para PGM y "P3" para PPM), el máximo
valor maximum (o el valor falso #f si el formato
omite este número) y una lista de filas list-of-rows. Esta
lista de filas es una lista de listas: cada elemento es una lista con
la representación de cada píxel en el formato correspondiente. Por
ejemplo, en el formato PPM, un píxel cuyo color es la terna
(1 2 3), quedaría representado mediante la cadena de
caracteres "1 2 3". La función en Scheme es así:
(define (write-pnm filename magick-number maximum list-of-rows)
(let* ((rows (length list-of-rows))
(columns (length (car list-of-rows))))
(with-output-to-file filename
(lambda ()
(display magick-number)
(newline)
(display columns)
(display " ")
(display rows)
(if maximum
(begin (display " ")
(display maximum)
(newline))
(newline))
(for-each (lambda (row)
(for-each (lambda (pixel)
(display pixel)
(newline))
row))
list-of-rows)))))
Las funciones de salida de Scheme R5RS dan código muy prolijo. La
típica función format o printf permitiría
escribir algo con una notación un poquito más compacta. La traducción
literal a Python es así:
def write_pnm(filename, magick_number, maximum, list_of_rows):
rows = len(list_of_rows)
columns = len(list_of_rows[0])
with open(filename, 'w') as fd:
fd.write(str(magick_number))
fd.write('\n')
fd.write(str(columns))
fd.write(' ')
fd.write(str(rows))
if maximum:
fd.write(' ')
fd.write(str(maximum))
fd.write('\n')
else:
fd.write('\n')
for row in list_of_rows:
for pixel in row:
fd.write(pixel)
fd.write('\n')
¡Esto no es ni mucho menos la forma más recomendable de escribir
la imagen en disco!
Digamos que tenemos las generaciones generations de un
autómata elemental creadas mediante la función step. Los
valores adoptados por las celdas de este autómata son 0
y 1. Ya tenemos una lista de listas con la que podemos
alimentar a write-pnm para escribir una imagen PBM. El uso
sería así:
(write-pnm filename "P1" #f generations)
Ahora asumumamos que tenemos la lista de celdas cells de
una cierta generación del autómata del incendio forestal. Las
dimensiones del tablero están dadas en la lista sizes.
Queremos que los claros (valor 0) salgan grises, los
árboles (valor 1) salgan verdes y los incendios
(valor 2) salgan rojos. Podemos hacer que los colores
vayan de 0 a 2, de modo que codificamos el gris
como "1 1 1", el verde como "0 2 0" y el rojo
como "2 0 0". Hacemos así:
(write-pnm filename
"P3"
2
(cartesian-rows (map (lambda (cell)
(cond ((= cell 0) "1 1 1")
((= cell 1) "0 2 0")
(else "2 0 0")))
cells)
sizes))
Veamos qué hace esto. Lo interesante es la construcción del
cuarto argumento de write-pnm, la lista de filas.
Construimos esta lista con la función cartesian-rows que
para
imprimir por pantalla mallas cartesianas bidimensionales como las
del juego
de la vida de Conway y las
del modelo
del incendio forestal. Esta función acepta una lista plana y la
convierte en una lista de filas; esta lista plana no contiene las
celdas tal como salen del autómata del incendio forestal, sino tras
pasar por una etapa de procesado con map para convertir los
estados de las celdas en los colores de los píxeles que queremos.
Podemos ver lo que sucede en la generación número cincuenta de un
modelo del incendio forestal así:
(let* ((sizes '(320 320))
(tree-probability 1e-2)
(fire-probability 1e-3)
(rule (wrap-with-generator (forest-fire-rule tree-probability
fire-probability)
(uniform-generator 0)))
(initial-cells (repeat 0 (apply * sizes)))
(neighbourhoods (lambda (cells)
(cyclic-forest-fire-neighbourhoods cells
sizes)))
(number-of-generations 50)
(generations (step rule
initial-cells
neighbourhoods
number-of-generations))
(cells (list-ref generations (- number-of-generations 1)))
(cell->pixel (deterministic-rule '((0 "1 1 1")
(1 "0 2 0")
(2 "2 0 0"))))
(pixels (map cell->pixel cells))
(rows (cartesian-rows pixels sizes)))
(write-pnm "forest-fire.ppm" "P3" 2 rows))
Hemos aprovechado la función deterministic-rule para
convertir los estados de las celdas a los colores de los píxeles. El
resultado (aquí convertido después al formato PNG) es así:
Autómata del incendio forestal.
Categorías: Informática
Permalink: https://sgcg.es/articulos/2013/10/06/jugando-con-automatas-celulares-19/
2013-10-02
Me han preguntado sobre el impacto inmediato del cierre del Gobierno de los Estados Unidos de América en las operaciones en la Estación Espacial Internacional. Aunque la mayor parte de la plantilla de NASA se queda sin ir a trabajar hasta nueva orden, todavía hay personal en MCC-H (Houston, Texas) y en HOSC (Huntsville, Alabama) para mantener en marcha las operaciones que están en marcha. Por supuesto, los programas de Europa, Canadá, Japón y Rusia siguen funcionando.
Categorías: Actualidad, Aeroespacio