Crimson
Jorge Johnson

Cómo la IA me enseña y me empodera

Cuando ya había empezado a hacer otras cosas, todo el mundo me hablaba de IA, y yo no sabía qué decir. Por eso tuve que experimentar y los resultados son asombrosos. He aquí algunos de ellos.

Jorge Johnson, Medellín, Colombia

31 proyectos

arena Fase {
    PASOS   := 3
    CORTES  := 1    ;; recortar cada lectura
    CRUZAR  := 2    ;; cruzar los dos mates
    CIERRE  := 3
}
predicate corriendo(j :Job) = j.fase >= Fase.CORTES
                          && j.fase <= Fase.CIERRE
;; el denominador se SUMA: agregar una fase
;; no puede dejarlo viejo
pesoTotal -> n :Z {
    n = 0
    for f in 1..Fase.PASOS { n += pesoDe(f) }
}

Punk

Un lenguaje de programación. Casi todo lo demás de esta página está escrito en él.

Se traduce a C y de ahí sale un binario nativo. Inmutable por omisión, con contratos, predicados con nombre y una biblioteca escrita en el mismo lenguaje.

En uso diario · 645 h

topo3d

Un globo del que uno se baja hasta el suelo y se queda flotando entre las montañas.

A nueve kilómetros el terreno deja de ser una foto pegada sobre la esfera y pasa a ser la altura real del ASTER GDEM, con la foto de Sentinel-2 encima. Abajo se puede largar un parapente, o montarse a un avión que está pasando.

Se baja hasta el suelo y se vuela entre las montañas · 7 h

aeronaves

Los aviones que pasan por encima, leídos del aire con una antena y pintados sobre el Valle de Aburrá.

De las muestras crudas del dongle al avión en el mapa, todo el camino está escrito en Punk. Incluye lo que el piloto marcó, lo que el avión le contesta al radar y lo que la aerolínea dijo por la otra radio.

Anda · 27 h

catalejo

Un planetario. El cielo de verdad, desde donde uno esté parado, y el sistema solar en 3D para meterse adentro.

Más de cuatro millones de objetos de los catálogos publicados, con las efemérides del JPL. Se maneja escribiendo comandos, y los comandos se pueden guardar en un guion.

Anda · 300 h

alfonsina

Una calculadora científica con cara de Casio cuyos operandos son los objetos del cielo.

Se teclea como en una Casio, «Jup radio ÷ Tie radio» o «Luna llena − Ahora», y el resultado se rehace solo porque el cielo se mueve. Al abrir dice qué hay para ver esta noche. Planetas, lunas, enanos, satélites, estrellas, el espacio profundo y los eclipses, con las efemérides DE440s del JPL.

Anda en la Mac y en el teléfono · 7 h

bellaco

Ajedrez en tres dimensiones contra un motor propio, con las piezas del Quijote hechas de puntos.

El motor apunta a 2400–2600 ELO. La fuerza se mide jugando, cada versión contra el campeón anterior y el campeón contra motores con rating publicado. El rey es Don Quijote y las torres son molinos.

Juega · 100 h

AirGlobe

La atmósfera de la Tierra sobre un globo que gira, con los rayos que están cayendo ahora mismo.

Muchas capas sobre la misma esfera, de la química del aire a los reactores nucleares, pasando por sismos, el espacio aéreo, la edad del fondo del mar y los satélites. Los GRIB2 y los HDF5 se leen a mano.

Anda · 175 h

vigía

Un puesto de vigía sobre la Tierra: los 25.000 objetos que hay en órbita, y el clic sobre cualquiera para saber quién es y por dónde va a pasar hoy.

Las posiciones se calculan al vuelo con los elementos orbitales de CelesTrak. Se aíslan hasta seis satélites a la vez, cada uno dibuja su recorrido en su propio color, y una agenda dice a qué hora pasan por encima de uno.

Funciona · 9 h

Atonianos

Un asteroide cercano a la Tierra, generado entero de una semilla. Se llega en nave, se amarra uno a una de sus bocas y se sale del casco a flotar por los túneles de adentro.

Se elige nave de la flota de The Expanse y se cae suelto a 4 km de una roca de 690 metros. Hay que llegar a la boca de atraque, igualarle la velocidad y amarrarse. Después se entra flotando, con la mochila del traje.

Se vuela y se atraca · 16 h

punk_band

Un radio de verdad, de 500 kHz a 1750 MHz, con todo el procesamiento de señal escrito a mano.

Escuchar música en FM, la torre del aeropuerto y los radioaficionados en onda corta, y leer lo que las señales traen escrito adentro: el nombre de la emisora, los mensajes de los aviones, el FT8 y el Morse. El discriminador, los filtros, el PLL y el CRC no vienen de ninguna biblioteca.

Anda · 27 h

torre

Escuchar la banda aérea sin saberse las frecuencias.

Abre varios canales a la vez y el que habla se abre solo. Y si uno no sabe las frecuencias de su aeropuerto, barre los 19 MHz de la banda y las averigua.

Anda · 27 h

N331TK  AA0915  KMIA→SKBO
35001 ft  M.793  APM
19,8 dB  ACARS

vdl_mode_2

Lo que los aviones le dicen a su aerolínea por VDL Mode 2 en 136,975 MHz, leído byte por byte y puesto en una tabla en la consola.

Una estación de consola que sigue el registro del día y decodifica cada trama en Punk. Una fila por avión con su vuelo, su ruta, sus motores y su plan, y el historial de lo que fue mandando.

Anda, con dumpvdl2 de receptor · 21 h

INMARSAT 4-F3   az 255  el 63
INMARSAT 3-F5   az 105  el 65
1537,70 MHz  BPSK  1200 bd

inmarsat

Los satélites Inmarsat sobre el globo, con el azimut y la elevación a los que hay que girar la antena para oírlos.

Un receptor de la banda L, de 1525 a 1559 MHz, con un dongle, un amplificador y una antena de parche. Dice dónde está cada satélite visto desde el techo, muestra el espectro de lo que baja, y trae el demodulador de Inmarsat-C escrito en Punk.

Ve la banda; Inmarsat-C decodifica en el banco de pruebas · 4.8 h

cosómetro

Los sensores del celular puestos a medir. Cada instrumento en su tarjeta, con los números en siete segmentos.

Un panel de tarjetas que se corre con el dedo y se ordena a gusto. Cada una abre un instrumento a pantalla completa, del sonómetro al variómetro de parapente, del campo magnético de la Tierra al pulso.

Anda en el teléfono · 10.8 h

Zopencos

Boggle en 3D para el celular, en castellano, con dados especiales y partidas entre varios teléfonos por Bluetooth.

Se arrastra el dedo sobre dados vecinos para armar palabras. Un código de cinco caracteres trae el tablero entero, y el que lo canta en voz alta pone a toda la mesa a jugar la misma tirada.

Anda en el teléfono y en el escritorio · 24 h

ronquera

Una consola de estudio en la pantalla para grabar podcast. Cada micrófono conectado abre su tira, con su cadena de procesamiento y su VU de aguja.

Graba cada voz dos veces, en crudo y procesada, y una toma cruda se vuelve a pasar por la consola con otros ajustes. Arranca en una vista básica para aprender y crece hasta la consola entera.

Graba voces en el Mac · 10.6 h

Chispa

Un protoboard de verdad, donde las conexiones no se cablean sino que salen de dónde quedó pinchada cada pata.

Del 74xx al ESP32, con sensores, pantallas, radios y un micrófono. Los circuitos se arman en la ventana o se escriben como texto, y la conectividad la deduce el simulador de la geometría.

Simula · 110 h

$ ./run.sh chip
ESP32, firmware en 0x1000
$ ./run.sh micropython
  verificado: md5 9e1d0c…
$ ./run.sh subir
  micropython/main.py → /main.py

brasa

Un cargador de ESP32 por línea de comandos. Le graba el firmware al chip, y cuando ya corre MicroPython le lleva y le trae archivos.

Habla directo con el cargador que el chip trae en su ROM, y con MicroPython por su REPL. Todo lo que graba lo verifica por MD5 contra la flash.

Probada con un ESP32 clásico · 4.6 h

Encajonadas

Un armador de crucigramas en castellano, de la medida que uno quiera, con las pistas copiadas del diccionario tal como vienen impresas.

La rejilla se arma a la vista, palabra por palabra, y después se resuelve en la pantalla o se manda a PDF. Las palabras salen del DLE, del Wikcionario o de los corpus temáticos que se prenden en la barra.

Anda en el teléfono y en el escritorio · 16.3 h

Sulocos

Un armador de sudokus de solución única, de 4 × 4 a 16 × 16, calificados por las técnicas que hacen falta para resolverlos pensando.

Abre armando un 9 × 9 y en un momento se está jugando. El título abre un menú que imprime el tablero o un cuadernillo entero en PDF, con una foto astronómica en la portada y las soluciones al final.

Anda en el teléfono y en el escritorio · 2.1 h

metaltoy

Un lenguaje que no compila a un archivo. Genera ARM64 en memoria y salta a ejecutarlo.

Sin C, sin ensamblador, sin enlazador y sin nada que quede en el disco. Su propio compilador está escrito en metaltoy y se compila a sí mismo hasta dar los mismos bytes.

Compila y se compila a sí mismo · 190 h

punkmetal-vs-others

El mismo programa escrito once veces, en once lenguajes, para medir cuál tarda menos.

Punk y metaltoy contra C, C++, Rust, Go, Zig, Swift, Python, Julia y R. Varias categorías de problema, y la serie histórica versionada.

Anda · 42 h

qwen3-coder:30b  ███████████░  18 GB
qwen3.5:27b      ██████████░░  17 GB
gemma3:12b       █████░░░░░░░   8 GB

punk-lora

Enseñarle Punk a un modelo que corre en el portátil, y medir cuánto aprendió.

Un adaptador LoRA entrenado sobre los ejemplos y la documentación del lenguaje, y un banco que mide a los modelos locales resolviendo los mismos problemas en once lenguajes.

Anda · 2.6 h

MyLocalFiles

Un mapa de todo lo que hay en los discos, coloreado por lo que uno quiera mirar.

Escanea un volumen y lo dibuja como un treemap. El color va de rojo a azul según la lente que se elija, sea tamaño, edad o qué tan recuperable es lo que hay ahí.

Escanea y dibuja · 4.3 h

MyLocalCPU

Los núcleos del procesador con su carga y, al lado, la velocidad real a la que está corriendo cada uno.

El monitor del sistema dice cuánto se usa un núcleo, no a qué velocidad. Un núcleo al 80% puede estar rindiendo o estar frenado por temperatura, y ahí se ven iguales.

Anda · 2.6 h

MyLocalDisks

Todos los volúmenes montados, su capacidad y cuánto rinden de verdad al leer y al escribir.

La medición arranca sola al abrir y recorre las monturas una por una. Cada barra compara ese volumen contra el más rápido de la lista.

Anda · 3.3 h

MyLocalBLE

Los dispositivos Bluetooth que están emitiendo alrededor, y en qué estado emiten.

El Mac lista los emparejados, que son la minoría. Aquí sale todo lo que se anuncia en el aire, con el byte que dice cuáles están pidiendo que los localicen.

Anda · 2.5 h

┌──────────┐
│  ██████  │  build.sh
│  ██████  │  → app en el teléfono
└──────────┘

hidrogen

Hacer apps de teléfono en Punk, compiladas y puestas en el aparato desde la terminal.

Sin Android Studio. El código se compila a WebAssembly, se sirve en la red local y el teléfono lo instala desde el navegador como una app de verdad.

La cadena completa funciona · 3.4 h

╭───────╮
│ ▚▚▚▚▚ │
│ ▚▚▚▚▚ │
╰───────╯

a_mini_globe

Un globo de la Tierra para el teléfono, con las imágenes y los mapas adentro de la app.

Se instala desde el navegador y funciona sin señal. Las capas de mapa se prenden desde un panel, y los nombres aparecen cuando el rasgo es grande.

Anda en el teléfono · 9.5 h

human_gut   ▂▅▇▃▁▆▂▇▅▃
extremoph   ▇▃▁▅▂▇▆▃▅▁
saureus     ▁▂▇▅▃▆▁▇▂▅

GenView3D

Un navegador de genomas que apila varios organismos en carriles para compararlos de un vistazo.

Carga varios experimentos a la vez y deja cruzarlos, como poner un mesófilo del intestino humano contra un termófilo de un ambiente extremo. Al acercarse hasta el codón, el aminoácido aparece armado en 3D.

Anda · 56 h

1_3_5_harmonic
1_5_9_ramanujan
2_1_2_mandelbrot

punk-sedgewick-exercises

Los ejercicios del libro de Sedgewick, resueltos en Punk.

Del taxi de Ramanujan al conjunto de Mandelbrot. Compilan de verdad, y su salida se compara contra el valor calculado a mano.

Del capítulo 1 al 2 · 1.9 h

Las horas salen del historial de git. Los commits se agrupan en sesiones y el reparto entre proyectos se reescala contra los días con actividad, a diez horas cada uno.