viernes, 26 de septiembre de 2008

nubes y cerveza

No todo en la física son aceleradores y partículas. Hay nubes y cerveza.

Un destacado ejemplo de lectura educativa y amena es "Clouds in a glass of beer" de Craig F. Bohren, que para dar idea del fondo físico de la lectura, se subtitula "Simple experiments in atmospheric Physics".

Nos encontramos con la cerveza y sus burbujas; con granos de sal que desencadenan en la cerveza un borboteo tumultuoso; con la tenue neblina en el cuello de la botella de cerveza recien abierta; con la atmósfera y sus nubosas gotitas de agua; con patos felices de cabeza fría, y mucho más.

Expresado en términos novelescos, asistimos a los equilibrios y desequilibrios entre las dos apariencias de un protagonista, el agua, que se nos presenta a la vez como líquido y como vapor, separados por una superficie. Constantemente hay moléculas de agua que pasan del líquido al vapor (evaporación), y del vapor al líquido (condensación). Si hay equilibrio entre ambos procesos, a una temperatura dada, el vapor tiene una presión de vapor característica, denominada presión de saturación, nombre que intenta expresar que ya hay tanto agua en forma de vapor como permite la situación de equilibrio. Más presión de vapor indica una sobresaturación, exceso de vapor que ha de condensarse para restablecer el equilibrio. Menos presión de vapor que la de saturación implica que la evaporación gana a la condensación y en términos globales se puede aumentar la cantidad de vapor.

Podemos cambiar de jerga y hablar en términos de la humedad relativa, cociente entre la presión de vapor existente y la de saturación. Una humedad relativa del 100% indica la situación de equilibrio. Un valor mayor del 100%, sobresaturación. Bueno, según las reglas del juego, en medio de un vapor sobresaturado, debe producirse condensación y formarse agua. Pero ¿cuanto tiempo lleva eso? Crear una gotita de agua en medio del vapor implica no solo juntar moléculas vaporosas, sino crear una superficie de separación. Esto no es fácil, puede requerir paciencia, y es lo que se denomina nucleación homogénea. Pero las cosas se facilitan si aparecen los centros de nucleación, con sus superficies rugosas que facilitan la creación de la superficie de separación entre vapor y líquido. En la turbia atmósfera no suelen faltar.

El equilibrio suena monótono, pero el desequilibrio puede ser también aburrido si corresponde a una situación estacionaria: anticiclón de las azores, tiempo seco y soleado, baja humedad relativa, humidificadores a tope para paliar tal sequedad, y así podemos seguir días y días. Hasta que la temperatura cambia. El equilibrio entre vapor y agua líquida (y la dinámica de evaporación versus condensación) depende tremendamente de la temperatura: la presión de saturación del vapor de agua decrece muy rápidamente al disminuir la temperatura. Imaginemos una presion de vapor P menor a la de saturación PSat(T1) a la temperatura T1. Por ejemplo una situación de humedad relativa del 50%. De repente llega el frío. La temperatura empieza a descender, y con ella la presión de saturación. Podemos llegar a una temperatura Tr < T1 en que P=PSat(Tr), y por tanto en que la humedad relativa es del 100%. A tal temperatura se le denomina temperatura o punto de rocío para las condiciones dadas en un principio. Si la temperatura sigue descendiendo más hasta una temperatura T2, se puede dar una situación momentánea de sobresaturación, humedad relativa mayor del 100%. Claro que una vez actúe la condensación para restablecer el equilibrio, la presión del vapor de agua debe disminuir hasta P'=PSat(T2), una humedad relativa del 100% en la temperatura T2, que resulta ser la temperatura de rocío en la nueva situación.

La temperatura es por tanto un personaje principal en el drama atmosférico, que puede llegar a sofocarnos. Al lado del mar en tiempo muy caluroso (40ºC) la humedad absoluta es enorme, la humedad relativa puede estar cerca del 100%, y la temperatura de rocío ser por ejemplo de 35ºC. Nuestro sudor no se evapora, y no nos refresca nada. Claro que hay altas temperaturas de Rocío estupendas (bueno, dew, drew, que más da).

Precisamente el grado de evaporación es mayor cuanto menor es la humedad relativa. Y la evaporación lleva aparejada una absorción de calor que se emplea para pasar del líquido al vapor, y que implica un enfriamiento de la superficie en que se produce la evaporación. Cuanto menos humedad relativa, más evaporación, y más enfriamiento. Una forma de medir la humedad relativa es tomar la temperatura de ambiente en seco y compararla con la temperatura de bulbo húmedo. Si la humedad relativa es baja, la evaporación de un paño húmedo en contacto con nuestro termómetro es alta, produciendo una mayor disminución de la temperatura. Hay tablas para relacionar esta diferencia de temperaturas (de bulbo seco menos la de bulbo húmedo) con la humedad relativa.

Un dispositivo móvil basado en este principio es el pájaro beodo, ilustrado por Bohren, que le denomina pato feliz. En el culo del pato hay un líquido volatil, que también llena en parte un tubito que conecta el fondo del culo con la cabeza. Un enfriamiento de la misma reduce la presión del vapor en la cabeza respecto a la existente en el culo, y esa sobrepresión cular eleva el líquido por el tubo hasta la cabeza y desequilibra al pobre pato, que gira y bebe, empapando su pico, mientras el ángulo de inclinación hace que se conecten e igualen las presiones de culo y cabeza, y el líquido de esta última descienda de nuevo, haciendo retomar al pato su casi erguida posición. Y vuelta a empezar.

Curiosamente si al pato se le da de beber agua con una alta concentración de sal, o de azúcar, pierde bastante de su alegría. El enfriamiento (que promueve la alegría del movimiento) depende de la fuerte evaporación en el empapado pico, mayor si la humedad relativa es baja, que significa que la presión actual de vapor es mucho menor que la presión de vapor saturada. Pero un tal Raoult observó que la presión de saturación de una sustancia disminuía si a la fase líquida pura de la misma se le añadía un soluto, tanto más cuanto mayor fuese la fracción del soluto. De modo que al empapado pico de pato bien salado le corresponde una menor presión de saturación, lo que hace que la humedad relativa a sus efectos sea más próxima al 100% que la experimentada en las mismas condiciones de temperatura y humedad absoluta por un destiladamente empapado pico de pato. Con el agua salada la evaporación es menor, menor la disminución de temperatura, y menor el sube y baja.

Otro protagonista con problemas de equilibrio es el gas carbónico, que aparece como gas libre en el cuello de nuestra botella de cerveza cerrada, o disuelto en el líquido. El equilibrio entre gas libre y disuelto se describe por la ley de Henry: la cantidad de gas disuelto es proporcional a la presión parcial del gas, pero la constante de proporcionalidad depende fuertemente de la temperatura. Para una misma presión del gas, la solubilidad decrece al aumentar la temperatura. En las bebidas carbonatadas se consigue diluir gran cantidad de gas en el líquido trabajando a grandes presiones de carbónico y a bajas temperaturas. Hay auténticos expertos domésticos para tener agua carbonatada en casa en plan hazlo tú mismo. En el caso de nuestra botella de cerveza cerrada, el carbónico del cuello de la botella esta en equilibrio con el carbónico disuelto. Tal equilibrio se pierde en cuanto se abre la botella. La cerveza pasa a contener más carbónico del correspondiente a la nueva situación, en que la presión parcial del carbónico es casi nula al escapar a la atmósfera. A semejanza de la sobresaturación del vapor de agua, el exceso de gas carbónico disuelto puede crear burbujas gaseosas por la lenta vía de nucleación homogénea o con la ayuda de centros de nucleación, como se dan en las rugosas paredes y fondo de nuestro vaso de cerveza. Y si, como propone Bohren, echamos a la cerveza unos granos de sal, o de arena, hay un repentino tumulto de creación de burbujas. Pero además de ser éticamente cuestionable hacer tan deplorable uso de una saludable cerveza, es más es-pec-ta-cu-lar y menos objetable usar una bebida de Cola y unos Mentos.


Lo que sí es aconsejable es comprobar que al destapar una cerveza cerrada, en su cuello puede apreciarse una tenue neblina. El gas carbónico escapa rápidamente produciendo un brusco enfriamiento que satura el vapor de agua presente en el cuello. En una botella cerrada los posibles centros de nucleación se han asentado y el cuello está libre de ellos, de modo que actúa la nucleación homogénea creando la tenue neblina.

Qué dura es la ciencia, ayer tuve que abrir, y degustar, una Grimbergen Double.

martes, 23 de septiembre de 2008

Carácter, natural, bit. Unicode.

Un carácter es un signo de escritura o imprenta, como una letra, un número, una coma, una interrogación... El concepto de carácter es abstracto, por ejemplo la "a minúscula" puede visualizarse con apariencias variadas. La apariencia gráfica se determina por el tipo de letra (Arial, Times,...) y la fuente (normal, negrita, cursiva, etc, de tamaños diversos), pero el concepto de "letra a minúscula" es independiente de tal apariencia concreta.

Al llegar la era de la información los ordenadores deben manejar los caracteres normales, y además se empiezan a usar caracteres no visibles, pero que tienen su utilidad, como el retorno de carro y lo que en general se llaman caracteres de control, que informan a las máquinas de cómo comportarse: mueve esa cabezota de impresión al principio de la línea, avanza el rodillito hasta la siguiente línea, pita, etc.

Internamente los sistemas digitales solo entienden secuencias de bits. Un bit, un dígito binario, es o cero o uno, 0 o 1. Por razones históricas esas secuencias casi siempre se agrupan y manejan en grupos de 8 bits, lo que se denomina byte.

¿Como relacionar los caracteres con los bytes? Pues en dos pasos, que en muchos casos se dan a la vez . Empleando una denominación que no puede considerarse estándar, pero que uso consistentemente para diferenciarlos, esos dos pasos son:

Código (coded character set), del carácter al número. Se asocia a cada carácter abstracto un número natural. Como interesa manejar un repertorio de caracteres, podemos visualizar esta asociación como la colocación de cada carácter en una casilla de un casillero, siendo identificada cada casilla del casillero por un número natural, lo que llamaremos punto de código, o en inglés "code point".

Codificación (character encoding form), del número al bit. Regla por la que se asocia un número natural con una pauta concreta de bits. Con 8 bits hay 256 pautas distintas, que se asocian de forma "natural" a los números naturales del 0 al 255, según una regla que puede llamarse sistema binario, según la cual por ejemplo '10000011' corresponde a 131. En realidad este sistema binario se puede aplicar para relacionar cualquier secuencia de bits, tan grande como se quiera, con un número natural. Con 16 bits, 2 bytes, se pueden representar los números del 0 hasta el 65535. Con 4 bytes, los números naturales entre 0 y 4294967295. Pero no tiene que emplearse forzosamente ese sistema binario "natural", y puede haber pautas especiales de bits que no se asocien a un número.

Hace muchos años, cuando los norteamericanos eran casi los únicos en el mundo de la informática, cogieron un repertorio de sus caracteres favoritos, que no pasaban de 128. Les repartieron a su manera en un casillero de 128 casillas. Luego cada casilla la representaron con bits por la pauta "natural" empleando 7 de los 8 bits de un byte. El bit restante se usaba como comprobación contra errores. Lo que resultó es el código de caracteres ASCII (Código Estadounidense Estándar para el Intercambio de Información). Este código engloba tanto la asignación de cada carácter del repertorio a una casilla (código), como el byte correspondiente a esa casilla (codificación). En el ASCII inicial el byte obtenido para cada una de las 128 casillas no era siempre el resultante de aplicar la regla "natural" del sistema binario, por el uso especial del octavo bit.

Pronto se necesitó ampliar el repertorio de caracteres y usar un casillero mayor, de 256 casillas. Se amplió el ASCII rellenando el casillero agrandado, y cambiando la regla de codificación para usar, entonces sí, el sistema binario "natural" y abandonar el bit de paridad.

Pero como los americanos no estaban solos, y hay muchos alfabetos en el mundo, se hizo imprescindible definir más casilleros, cada uno con 256 casillas en las que en cada caso se colocaban distintos repertorios de caracteres, o incluso un mismo carácter se colocaba en distinta casilla. A cada casillero distinto se le suele denominar página de código, o code page, y se distinguen unos casilleros de otros por un número. La página de código 437 es la original del IBM PC, y en ese casillero la "a minúscula acentuada" ocupa la casilla 160. La página de código 1252 es la usada por Windows para el repertorio de caracteres latinos eurooccidentales, y en este casillero la "a minúscula acentuada" ocupa la casilla 225. Hay páginas de código con caracteres de repertorios correspondientes a lenguas de casi todo el mundo.

Y aquí tenemos la babel desatada. Porque casi se podía acertar en suponer que la codificación (encoding) de un byte era la "natural" del sistema binario, y de los bytes obtener el número natural correcto indicativo de la casilla. Pero la casilla ¿de qué casillero? Había que saber la página de código correcta. Y en aplicaciones multilingües podían ser necesarias muchas.

Contra la babel desatada, organización. UNICODE. La solución en esencia es olvidar la multitud de casilleros de reducidas dimensiones. Usar un único casillero que pueda albergar cualquiera de los caracteres que ha habido en la historia humana o que pueda idearse en el futuro: un casillero con 1,114,112 casillas. En vez de imaginar las casillas en línea, para distinguir las partes del casillero este se divide en 17 planos (del 0 al 16), cada plano con 65536 casillas. Cada casilla se distingue del resto por su punto de código (code point), un número natural entre 0 y 1,114,111 aunque lo más común no es usar el sistema decimal, sino el hexadecimal. Todos los caracteres de todos los idiomas conocidos, más todo tipo de símbolos, se reparten por el casillero de una forma convenida que se conoce como Conjunto de Caracteres Universal. A veces se habla de "caracteres Unicode".

Resuelto el problema del código, se agrava un tanto el de la codificación. Para cubrir ese rango numérico hacen falta como mínimo 21 bits, que implica usar 3 bytes. Ademas a los sistemas binarios no les gustan los impares, a veces manejan "palabras" de 2 o de 4 bytes, pero no de 3. Para abordar este tema de la codificación de los puntos de código, se ofrecen varias tipos de codificación. El más simple se denomina UTF-32, y usa 4 bytes para representar cada casilla. Ventaja: uniformidad y rapidez en codificar y descodificar. Desventaja: Salvaje despilfarro de espacio, pues la inmensa mayoría de caracteres realmente utilizados están en casillas de números bajos, que pueden representarse con sólo un byte, o con dos bytes. Por eso se plantean los sistemas de codificación de longitud variable, aquellos que emplean diferente número de bytes según la casilla de que se trate. UTF-16 emplean como mínimo dos bytes (16 bits). El más económico es UTF-8, que como mínimo puede emplear un sólo byte (8 bits). Estas tres formas de codificación son parte del estándar Unicode. Hay otras variantes que no son estándar y es mejor olvidar.

UTF-8 tiene la ventaja de ahorro en espacio, y de compatibilidad con el veterano y muy extendido código ASCII. El lado negativo está en la mayor complejidad en la codificación y descodificación, pero como eso lo hacen las máquinas... Es de esperar que en un futuro sólo se use Unicode (el casillero Conjunto de Caracteres Universal), y como codificación UTF-8 y UTF-16.

Todo esto que parece tan sencillo tiene muchos detalles técnicos que dan para leer largo y tendido. Parte de la codificación UTF-8 consiste en distinguir cuando se usa sólo un byte o cuando se usan más. De los bytes empleados solo algunos bits se emplean para obtener, usando el sistema binario, el punto de código. Hay una pauta de bits reservada para identificar el orden de bytes usados en cada sistema informático (pues usando palabras de 2 bytes, el byte con los bits más significativos puede ir o el primero o el segundo, y habiendo dos posibilidades ...).

Para que la felicidad sea completa, y reconozcamos gráficamente los caracteres, solo falta tener una fuente que represente (casi) todos los definidos en Unicode. En Windows se puede visualizar cualquier carácter Unicode con la fuente Arial Unicode MS.

En todo este ámbito, en que las tecnologías de la información se relacionan con los sistemas de escritura y los lenguajes humanos, puede apreciarse lo fructífero (y arduo) que resulta la cooperación, el entendimiento, la unificación de criterios, y el empleo del discurrir de muchos para el beneficio de todos. Bien por Unicode.

sábado, 13 de septiembre de 2008

Sentado, solo, en la montaña de Jingting


Los pájaros han tornado a sus nidos en bandadas.

Perezosa, la última nube se aleja.

La montaña es mi única compañera.

Ni al uno ni al otro nos cansa mirarnos.


(Mondadori, trad. Chen Guojian)

miércoles, 10 de septiembre de 2008

Al fin dando vueltas al LHC

Ya sale en los medios más diversos, el Gran Colisionador de Hadrones o LHC de sus siglas en inglés, hacía el debut oficial. La prensa y en general todos necesitamos esas simplificaciones de marcar un sólo día como hito señero de algo que realmente lleva años y años, más de veinte, y tiene por delante varios meses hasta el pleno funcionamiento. Y luego años y años de experimentos, análisis, y "digestión" de resultados.

Era hoy, "histórico" 10-9-8. Además de ojear la reseña oficial, más significativo, informativo y emotivo es la explicación (en español) de Reyes Alemany Fernandez, una de las muchas personas involucradas en el esfuerzo internacional conjunto para ganar el conocimiento acerca de nuestra más íntima constitución.




Enhorabuena.