Por @Wicho

Por fin he podido ver la charla The Apollo Guidance Computer. Anatomía para ingenieros que impartió Samuel Antonio Jiménez en T3chFest 10 hace unos meses. Yo dría que quizás es más bien para informáticos. O para ingenieros que sepan de informática. Aunque creo que cualquier persona con un poco de interés en el Programa Apolo y con algún conocimiento básico de informática puede seguirla bastante bien.

Todo comienza cuando la NASA se da cuenta de que va a necesitar un ordenador que guíe las naves del Programa Apolo, que no puede depender de las habilidades de los astronautas, por mucho que todos sean experimentados pilotos, muchos de ellos pilotos de pruebas.

Así que empiezan a plantearse las especificaciones de esa máquina, bautizada como Apollo Guidance Computer (AGC, Ordenador de guiado del Apolo), que por el momento sólo existe en papel. La idea original era un ordenador con 256 palabras de memoria RAM, 4K de ROM y una velocidad de 0,1 MHz en 1961. Pero las necesidades de la misión fueron evolucionando de tal modo que al final, allá por 1965, se hablaba de un ordenador con 2K palabras de ROM, 36K palabras de RAM, y una velocidad de 1 MHz.

El problema es que la tecnología de la época producía máquinas del tamaño de habitaciones, con un peso de varias toneladas y un consumo eléctrico equivalente al de un pequeño pueblo. Bueno, puede que un poco menos, pero ya me entiendes.

Y el Programa Apolo necesitaba llevar tres ordenadores: uno en el módulo de comando y dos en el módulo lunar, por aquello de la redundancia. Tres ordenadores que además tenían que ser capaces de ejecutar su software en tiempo real y en modo multitarea, nada de la ejecución por lotes habitual de la época.

Sergio va explicando cómo en el MIT se fueron enfrentando a todos los desafíos que supuso crear esa máquina capaz de llevar una misión tripulada a la Luna. Que, para dar un poco más de contexto al asunto, fue un objetivo anunciado por el presidente Kennedy en su famoso discurso «escogimos ir a la Luna« cuando los Estados Unidos contaban con la friolera de cinco horas de experiencia con misiones espaciales tripuladas.

Los AGC son, aunque cualquier móvil actual tenga sobre el papel una capacidad casi infinitamente más grande, máquinas impresionantes. No sólo por lo que lograron sino por cómo lo lograron.

Dos detalles que destacaría son las memorias de cuerda, en las que literalmente se cosía el software que iban a correr, y su capacidad de reiniciarse en dos segundos de forma automática al detectar cualquier problema sin perder datos. Aunque tampoco está mal que esas máquinas corrieran durante días sin problemas cuando lo habitual el el momento en el que empezaron a diseñarlas era que un ordenador apenas aguantara unas horas en funcionamiento antes de colgarse. Los AGC nunca fallaron en ninguna de las misiones en las que volaron.

Algunos recursos que menciona Samuel en su charla:

Y no, no sale Margaret Hamilton, pero es que la charla, en esta versión recortada para el tiempo del que disponía Samuel, termina antes de que ella entrara a trabajar en el desarrollo del software de los AGC.

En fin, una charla a la que bien merece dedicarle un rato.

(Muchas gracias, Javier).

Relacionado,

_____
Los enlaces a Amazon llevan nuestro código de asociado, así que si compras los libros o alguna cosa más tras seguirlos es posible que obtengamos algo en forma de comisión.

Compartir en Flipboard Publicar
PUBLICIDAD


Por @Alvy

Pósteres binarios, curiosos y atractivos

Ange Albertini ha ido recopilando en una galería sus Pósteres binarios, a cual más informativo, curioso y –como los frikis apreciarán– atractivo.

Hay algunos que explican los formatos binarios de los documentos MPEG4, PDF y JPEG, una tabla ASCII y el WAD de algunos videojuegos.

También hay pósteres que se remontan a 2017 con chascarrillos sobre Microsoft, el erizo Sonic y algún que otro logotipo e imágenes de épocas antiguas; informática y videojuegos viejunos donde los haya.

Relacionado:

Compartir en Flipboard Publicar
PUBLICIDAD


Por @Alvy

Los 10 lenguajes de programación (¿muertos?) más influyentes de todos los tiempos (CC) Alvy

Según 10 Most(ly dead) Influential Programming Languages serían estos:

1. Cobol. Un lenguaje comercial creado en 1960 por el Departamento de Defensa de EE. UU., clave para sistemas bancarios y empresariales. Introdujo los registros estructurados. Es quizá el muerto menos muerto de todos, por cuestiones de «legado» (cantidad de sistemas en bancos y la administración funcionan en él).

2. Algol. El abuelo de la mayoría de lenguajes modernos. Introdujo la sintaxis estructurada y la BNF (notación de Backus-Naur).

3. APL. Lenguaje simbólico para procesamiento de arrays. Usado en matemáticas aplicadas y finanzas. Potente pero limitado por ser un poco críptico.

4. Basic. Otro que está poco muerto. Llevó la programación a los hogares en los 70 y 80, popularizó los intérpretes en tiempo real y democratizó el acceso a los ordenadores.

5. PL/I. Fue un intento de IBM de unificar Fortran y Cobol. Técnicamente avanzado (punteros, sobrecarga, constantes), pero no acabó bien por el enfrentamiento de los fanáticos de ambos «bandos».

6. Simula 67. Extensión de ALGOL para simulaciones. Inventó las clases y objetos. Inspiró C++, CLU y la programación orientada a objetos moderna. Ahí se quedó.

7. Pascal. No sé si todavía se usa, pero en mis tiempos lo dábamos en clase. Es un lenguaje académico derivado de ALGOL.

8. CLU. Creado por Barbara Liskov para explorar tipos abstractos. Antecesor de los iteradores, genéricos, excepciones y la encapsulación moderna.

9. ML. Diseñado por Robin Milner, fue pionero del tipado estático con inferencia de tipos. Es la base de otros lenguajes como OCaml, F# y Coq.

10. Smalltalk. Quizá uno de los más importantes. Era un lenguaje puro orientado a objetos, donde todo eran objetos. Influenció la interfaz gráfico y lenguajes como Java y Ruby. Ahí es poco.

Compartir en Flipboard Publicar
PUBLICIDAD


Por @Alvy

Un juego que combina puzles 3-D, vóxeles y el aprendizaje de la programación

Replicube es un todo en uno que sirve para entretenerse y aprender algo de programación, si acaso no lo has probado nunca. Es un juego en el que el objetivo es replicar la imagen que se muestra, pero para hacerlo hay que picar código de modo que la nueva imagen se genere según las instrucciones.

Lo más fácil es seguir el tutorial («Introductory Puzzles») para aprender a base de ejemplos: allí se explica cómo funcionan los comandos para cambiar colores, los condicionales del tipo IF… THEN… ELSE… END y muchos otros.

El juego tiene además el tacto pixelado de los píxeles como puños (y en este caso también vóxeles como puños) y las ventanas con interfaz y tipografía propia de un equipo de 8 bits, aunque estés corriéndolo con el último Macbook Pro.

Además de esta versión gratuita con unos cuantos puzles hay una versión completa en Steam con más de 100 juegos distintos, así que por problemas de programación que no sea.

Compartir en Flipboard Publicar
PUBLICIDAD