Por @Alvy

Una moneda que puede «lanzarse» en un auténtico proceso cuántico para lograr la aleatoriedad perfecta

Cara: Shrödingger. Cruz: Psi, la función de onda de un sistema cuántico. Todo bajo el lema Ex fluctus veritas, que sería traducible como «La verdad de las ondas». Qué mejor representación de una moneda cuántica que cae cara o cruz en el 50% de los lanzamientos simulados… pero con precisión matemática, porque el resultado procede de un ordenador cuántico de verdad y, por ende, de un proceso físico genuinamente aleatorio.

Basta girar un poco la moneda con el ratón o el dedo para realizar el «lanzamiento»; el resultado aparece en unos pocos segundos. En la parte inferior de la pantalla, un recuento de las caras (H) y cruces (T) permite ver cómo va una serie. Con el tiempo debería aproximarse cada vez más al 50%-50%, aunque tiene la variabilidad lógica y esto puede hacer que haya que esperar bastante para aproximarse lo suficiente al resultado ideal.

El enlace de la derecha puede verse a qué QPU (Unidad de Procesamiento Cuántico) de la plataforma pública de IBM se está conectado; en este ejemplo era al Eagle e3 de 127 qubits. Allí hay más información sobre el hardware, cómo funciona y cómo se programa.

Algo que siempre me ha dado para pensar es de dónde procede esa aleatoriedad auténtica y última en esos procesos cuánticos: tan perfecta que garantiza un azar perfecto, pero al mismo tiempo tan esquiva que es totalmente impredecible. ¿Qué hace que sea realmente tan sutil y adecuada? ¿De qué depende? ¿Tiene una base matemática o hay algo más? Misterios que por mucho que investigues son difíciles de desentrañar, casi tanto como de dónde proviene esa aleatoriedad primigenia.

Relacionado:

Compartir en Flipboard Publicar
PUBLICIDAD


Por @Alvy

Calculadora de Android

Está circulando mucho esta historia de Chad Nauseam que se publicó originalmente como hilo de Twitter titulada ¿Una app de una calculadora? Cualquiera puede hacer eso. Es un relato sumamente entretenido acerca de cómo Google encargó el desarrollo de la Calculadora original de Android a Hans-J. Boehm, un ingeniero que se obsesionó con el tema y con crear la calculadora perfecta.

El problema a resolver es que incluso crear una sencilla calculadora que funcione bien, bien y se vea de forma perfecta (y no muestre algo como 0,000000) no es tan fácil como parece. La conversión entre binario (coma flotante) y decimal complica las cosas y luego ciertos números, ya sea por grandes, pequeños o precisos, aún más.

Y es que no todo es como repartir la cuenta del restaurante entre un pequeño número de comensales. Expresiones como (10^100) + 1 − (10^100) deberían dar 1, no 0 como muestran algunas calculadoras. La cosa se complica cuando aparecen fracciones y números irracionales o transcendentales.

Boehm comenzó empleando bignums (números enteros sin límite de tamaño), luego pasó a fracciones de precisión arbitraria y después a números algebraicos, capaces de representar raíces cuadradas. Pero eso dejaba fuera a números transcendentales como π.

El caso es que poco a poco acabó construyendo un motor de evaluación aritmética y usando una representación híbrida: números expresados como el producto de un número racional por un número real, usando la llamada aritmética real recursiva (RRA) solo cuando era necesario. Para optimizar la velocidad añadieron una representación simbólica para valores como π, e y similares, dado que la complejidad de esos cálculos hacían la app demasiado lenta.

Esta historia está repleta de detalles matemáticos y técnicas aplicadas al desarrollo de software, en una especie de madriguera de conejo por la que se va profundizando cada vez más y más y que no parece tener fin. Aunque lo tuvo. El resultado es la calculadora actual, que puede dar respuestas exactas y «visualmente agradables» para los usuarios y al mismo tiempo aproximadas cuando no hay alternativas.

Relacionado:

Compartir en Flipboard Publicar
PUBLICIDAD


Por @Alvy

¡Que se preparen los diseñadores gráficos, Piskel llega para revolucionar el mundo del pixel art!

Piskel es un editor de sprites, que, para quien no lo sepa, son los pequeños objetos y personajes que se usaban en los antiguos videojuegos porque no requerían sobrecargar la CPU dado que los chips gráficos los gestionaban directamente. Me ha sorprendido leer en la enciclopedia que el término sprite lo popularizó el mismísimo Jay Miner (que trabajó en Atari, Commodore y con los Amiga).

A falta de algo mejor que hacer y de formas de conseguir aplicaciones, juegos y utilidades para nuestros ordenadores, en aquellos tiempos (años 80) los que nos iniciábamos con los Commodores, Amigas y MSX solíamos desarrollar nuestras propias herramientas: editores de tipografías, de mapas de escenarios y también de sprites. No era raro comprar una revista en el quiosco cuyo titular de portada era «Editor de sprites». Crear los sprites era un trabajo metódico y delicado. Cuantas más limitaciones tenían, más creatividad hacía falta. Esto se complementaba con técnicas para poder usar más sprites de los que proporcionaban los chips gráficos, por ejemplo moviéndolos rápidamente antes de que llegara el barrido vertical de la pantalla, o reemplazándolos por mapas de bits estáticos en momentos clave.

Piskel me ha recordado un poco aquellas herramientas, porque utiliza muchas de las mismas ideas: lápices, paletas de colores, herramientas para borrar, rellenar, trazar líneas, dibujar cuadrados y círculos… Todo con unos píxeles grandísimos, gordos como puños, como mandan los cánones. Naturalmente aquí las herramientas son un poco más avanzadas: hay selección de zonas para desplazar, brillo y contraste, tramado (dithering) y otras.

Para la navegación por los distintos fotogramas (frames) que componen el sprite se puede variar la velocidad (FPS), usar capas, clonados y otras transformaciones. También hay un buen gestor de paletas de color y se pueden ampliar y reducir imágenes. Lo más interesante es quizá poder importar y exportar GIF animados, además de PNG y JPEGs. Además, como buena herramienta, incluye decenas de atajos de teclado para hacer el trabajo repetitivo más ágil. Incluso se pueden personalizar.

Mientras se trabaja con el sprite se pueden ver todos los frames y también el resultado ya animado, para que resulte todo más cómodo y visualmente fácil de apreciar. ¡Ah! Y el código fuente de Piskel es abierto y está disponible en Github, junto con referencias a todas las librerías que se usan, que no son pocas y también muy interesantes. La de maravillas que hubiéramos hecho en los viejos tiempos con un editor tan rápido y potente como este. ¡Larga vida a los sprites!

Relacionado:

Compartir en Flipboard Publicar
PUBLICIDAD


Por @Wicho

Cruce de cables 21 (25 de enero de 2025)

Un robot en la cocinaJuegos de guerra en el MundoReal™ [~12:20] – En este Cruce de Cables hablamos de algunas ocasiones en los que la mezcla de ordenadores y armas nucleares estuvieron a punto de liarla parda, aunque empezamos por un cruce literal de cables. De cables de cobre, no de las personas que escuchan el programa.

  • Y es que en la noche del 25 al 26 de octubre de 1962 unos cables mal conectados hicieron que dos escuadrones de aviones interceptores F-106 A que estaban de alerta en la Base Aérea de Volk cargados de combustible y armas, incluyendo un misil nuclear Genie en cada uno de los aviones recibieran la orden de despegar de emergencia. Aunque no había tal emergencia. Menos mal que alguien se dio cuenta y consiguió pararlos. Porque en plena Crisis de los misiles de Cuba podía haber pasado cualquier cosa.
  • Otra historia que pone los pelos de punta es la de cuando el 9 de noviembre de 1979 saltaron todas las alarmas en el NORAD –sí, el de Juegos de guerra– al saltar una alarma procedente de otros cuatro centros de comando subordinados que indicaba que se habían detectado 1.400 misiles intercontinentales soviéticos de camino a los Estados Unidos. Aunque en realidad es que alguien en el Pentágono estaba haciendo unos juegos de guerra y se había olvidado de avisar.
  • Pero la que más miedo da y la que estuvo más a punto de terminar con nuestra civilización fue cuando el 26 de septiembre de 1983 los ordenadores del equivalente soviético al NORAD dieron la alarma de que los Estados Unidos habían lanzado misiles contra la Unión Soviética. Menos mal que la presencia de ánimo del teniente coronel Stanislav Petrov le llevó a concluir que, dijeran lo que dijeran los ordenadores, tenía que ser una falsa alarma.

_____
Cada semana grabamos con David Sierra en el distendido ambiente de Cruce de Cables, el programa de Radio Nacional de España, como colaboradores habituales. Se emite en RNE los sábados de 03:00 a 04:00.

Relacionado:

Compartir en Flipboard Publicar
PUBLICIDAD