Français · English · 日本語 · 中文

Marc-Alexis Manso-Peters — la versión de texto

Todo lo que dice la consola, sin la consola: el mismo texto, en HTML sencillo, para los lectores de pantalla, los buscadores, y cualquiera que prefiera leer.

Volver a la consola (hace falta JavaScript)

Sobre mí

Hola, soy Marc-Alexis. Pues eso, tengo 23 años, eh… esta es mi web personal. Debajo hay iconos con todo eso, y puede hacer clic en los iconos para ver información variada sobre mí.

Los libros que recomiendo

Once libros entre los que más citan mis notas, y el mío. Abra uno: su autor le espera en la primera página.

Né pour briller — Marc-Alexis Manso-Peters

Veintitrés años de luchas, dudas, NixOS y leche de soja: la conmovedora historia de un hombre que corrió 21,1 km sin rendirse nunca (último de su categoría) y configuró su cepillo de dientes desde una terminal. Una autobiografía, aparentemente en serio. En francés.

Lo que me quedo — Un poco cada día. Así se termina, aunque sea el último.

Fluir (Flow) — Mihály Csíkszentmihályi

Un psicólogo describe el «flow», un estado de absorción total en una actividad, y muestra cómo provocarlo en el trabajo, en el ocio y en las relaciones.

Lo que me quedo — Los mejores momentos no son pasivos, sino activos.

Factfulness — Hans Rosling, Ola Rosling, Anna Rosling Rönnlund

Los autores muestran que nos equivocamos sistemáticamente sobre el estado del mundo, y describen diez instintos que distorsionan nuestra lectura de las cifras.

Lo que me quedo — El mundo no está dividido en dos.

How to Live — Derek Sivers

Veintisiete capítulos dan cada uno una respuesta distinta, a menudo contradictoria, a la pregunta de cómo vivir. Una conclusión los une.

Lo que me quedo — Probarlo todo, esperar que nada funcione.

El arte como terapia — Alain de Botton, John Armstrong

Los autores proponen mirar obras de arte conocidas como herramientas para la vida cotidiana, y las relacionan con el amor, el trabajo, la naturaleza, el dinero o la política.

Lo que me quedo — El arte como herramienta de crecimiento personal.

Roba como un artista — Austin Kleon

Un libro breve, sacado de una charla dada a estudiantes, en diez principios sobre la creatividad. La idea central: todo trabajo creativo se apoya en influencias.

Lo que me quedo — La carga de la originalidad absoluta.

Generación dopamina — Anna Lembke

Una psiquiatra explica, a partir de la neurociencia y de casos de pacientes, cómo la búsqueda de placeres fáciles lleva a la adicción, y cómo recuperar el equilibrio.

Lo que me quedo — La balanza dolor-placer.

Lo inevitable — Kevin Kelly

El autor describe doce tendencias tecnológicas que, según él, transformarán la vida cotidiana durante treinta años, entre ellas compartir, filtrar y el acceso en lugar de la posesión.

Lo que me quedo — La tecnología tiene tendencias inevitables.

Una teoría de todo — Ken Wilber

Ken Wilber presenta su teoría «integral», que quiere unir cuerpo, mente, alma y dimensión espiritual, y la aplica a la empresa, la política, la medicina y la educación.

Lo que me quedo — Por qué fracasan los debates entre niveles de conciencia.

Anything You Want — Derek Sivers

Derek Sivers saca cuarenta lecciones de la creación, el crecimiento y la venta de CD Baby, y defiende una empresa centrada en sus clientes más que en el beneficio.

Lo que me quedo — Los negocios no son una cuestión de dinero.

Raza e historia — Claude Lévi-Strauss

Un texto escrito en 1952 para la UNESCO. Lévi-Strauss rechaza en él toda jerarquía entre las culturas, y muestra que el progreso nace de los intercambios entre ellas.

Lo que me quedo — Todas las culturas se mueven, pero no en la misma dirección.

Die With Zero — Bill Perkins

El autor propone gastar el dinero en vida, en experiencias, en lugar de acumularlo hasta la muerte, y da un método para planificar esos gastos según la edad.

Lo que me quedo — El dinero sirve para vivir experiencias.

Por qué aprendo chino

Porque me encanta la robótica, y en robótica, los jefes son China.

Y China va a ser la número uno del mundo en influencia. Así que, igual que hay que aprender inglés, yo tengo que aprender chino.

Chip NFC

Tengo un chip bajo la piel. Un flexNT: una etiqueta NFC flexible de biopolímero, colocada en el dorso de la mano izquierda, debajo del meñique. Pasiva, sin batería: solo se despierta en el campo de un lector. Aquí está, a la izquierda.

Tipo
NFC / RFID
Frecuencia
13,56 MHz
Chip
NTAG216 — 924 B
Tamaño
9 × 22 × 0,4 mm
Carcasa
Biopolímero flexible, USP Class VI
Alimentación
Pasiva, cero baterías

Lo que hago con él

Se acerca un teléfono, y responde. Es lo único que hace, y ya es demasiado.

¿Por qué hacer eso?

Porque podía. Porque convertir una parte de mi cuerpo en un mando a distancia es justo el tipo de cosa inútil y maravillosa que me define.

También es una pequeña declaración: el cuerpo es un terreno de juego, no algo fijo. Entre esto, mi segundo cerebro en Obsidian y algunas escarificaciones elegidas, el combo firma una identidad: excéntrica, tecnológica, primitiva.

La operación

Las preguntas que todo el mundo hace

¿Duele?

Un pinchazo fuerte, dos segundos. Menos que un tatuaje, y bastante más friki.

¿Te pueden rastrear por GPS?

No. Es pasivo, sin batería, con un alcance de pocos centímetros. Nada de GPS, ninguna emisión espontánea. Tranquilícense.

¿Y en una resonancia magnética?

Una etiqueta flexible de biopolímero suele pasar sin problema, pero siempre aviso al técnico. Toda precaución es poca.

¿Se puede quitar?

Sí, basta con una pequeña incisión. Pero, sinceramente, ¿por qué iba a hacerlo?

¿Es el chip 5G de Bill Gates?

Exacto. Me manda un SMS cada mañana para preguntarme qué tal. (No.)

¿Es legal?

Legal en Francia bajo supervisión médica. Los Países Bajos tienen el mejor marco (licencia obligatoria para los estudios), Suecia es líder mundial por habitante, y en Estados Unidos varía según el estado.

Una media maratón bajo LSD

El 23 de abril de 2023 corrí el Semi-Marathon de la Presqu’Île, 21,1 km, bajo 200 microgramos de LSD-25, es decir, el doble de una dosis normal. Terminé. Es más o menos lo único halagador que se puede decir.

Prueba
Semi-Marathon de la Presqu’Île
Fecha
23 de abril de 2023
Distancia
21,1 km
Sustancia
LSD-25, 200 µg (dosis normal: 100)
Tiempo oficial
2 h 51 min 14 s
Tiempo real
2 h 48 min 09 s
Velocidad
7,5 km/h
Clasificación
1823.º de 1840
En mi categoría
21.º de 21
Club declarado
Le Semi Diabolique

Descargo legal

Esta página web contiene un relato completamente ficticio de una media maratón corrida bajo los efectos del LSD. Todo el contenido aquí presentado es una obra de ficción creada únicamente con fines de entretenimiento y de información educativamente educadora.

El autor nunca ha consumido LSD ni participado en la actividad descrita. Cualquier parecido con hechos reales, con personas vivas o fallecidas, o con experiencias vividas es pura coincidencia.

Este sitio no constituye en ningún caso una incitación al consumo de sustancias ilícitas ni a la práctica de actividades deportivas. Como la petanca, el voleibol o el baloncesto.

El autor y los gestores de este delirante sitio web declinan toda responsabilidad en cuanto a:

Dietilamida de ácido lisérgico. Un psicodélico: deforma la percepción, el estado de ánimo y la manera de pensar. Alucinaciones visuales y auditivas, y sobre todo un tiempo y un espacio que ya no se miden igual.

Se toma en un secante, un cuadradito de papel sobre la lengua. Los efectos duran de seis a doce horas y varían muchísimo según la dosis, el lugar y el estado de ánimo de quien lo toma. Yo, en este caso.

Una dosis normal son cien microgramos. Un microgramo es una millonésima de gramo: o sea, nada. Yo me tomé doscientos.

LSD-25, para ser exactos. Existen otros, pero es el único que se ha estudiado en serio. De los demás no se sabe casi nada, lo cual es razón suficiente para no probarlos.

Estas sustancias no son legales y se consiguen por vías poco claras. Por cierto, para comprar LSD, basta con ir a

La medalla de finisher, y el diploma que la acompaña. 1823.º de 1840, pero finisher de todos modos.

Último de mi categoría, de veintiún participantes. El certificado lo dice negro sobre blanco; sería una pena esconderlo.

La foto es la del recorrido, tomada ese mismo día. Mueva la línea.

Lo que hace, exactamente: las superficies respiran. Una pared lisa empieza a ondular muy despacio, como vista a través del agua. Los motivos regulares, la grava, el follaje, el revoque, se reorganizan en dibujos que parecen haber estado siempre ahí. Los colores se saturan, los contornos se doblan con un ribete. Nada de esto se parece a una película: no es una imagen pegada delante de los ojos, es el mundo de siempre que se vuelve inestable por los bordes. Y durante tres horas de carrera, no para nunca.

Lo que me llevo

Preguntas y respuestas

¿Por qué hacer eso?

Tenía diecinueve años, había leído un libro sobre un tío que hizo ochenta kilómetros en ese estado, y el libro era malo pero la idea me persiguió durante meses. No hay mejor razón.

Es legal, ¿no?

No. El LSD está clasificado como estupefaciente en Francia: un año de cárcel y 3 750 € de multa por consumo. No voy a fingir lo contrario.

¿Te hizo correr más rápido?

7,5 km/h y último de mi categoría. Juzgue usted.

¿Corriste con tu madre?

Sí, estaba en el recorrido. Sabía lo que me había tomado, y ella no tomó nada: corrió sobria, como una persona normal. Lo aclaro porque la siguiente pregunta siempre es esa.

Pues sí, soy

Con un pasamontañas negro de justiciero, en un sótano. El texto cubre la imagen, en francés: «non merci, je ne vais pas prendre de côtes de porc, je vous remercie cependant pour votre offre» — no, gracias, no voy a tomar chuletas de cerdo, aunque le agradezco el ofrecimiento.

De noche, de brazos cruzados contra una pared de ladrillo bajo una farola, con capa y antifaz negros. Arriba, en letras verdes: «Super-hero VEGAN».

Con un traje de superhéroe azul y rojo, capa roja, antifaz negro y puños en las caderas, en medio de un garaje. Abajo, en grandes letras amarillas: «VEGAN».

Las preguntas

No, mi mayor felicidad no es ni mi familia ni mi novia, sino estos dos bricks. Soja vainilla™ y Soja chocolate™.

¿Y de dónde sacas las proteínas?

Lentejas, garbanzos, tofu, seitán, cereales. No pienso en ellas más a menudo de lo que usted piensa en las suyas. La Academia Estadounidense de Nutrición y Dietética dice que las dietas veganas son adecuadas para todas las etapas de la vida, incluidos los deportistas de alto nivel. Pero gracias por preocuparse por mí.

¿Tienes carencias?

No. Una pastilla de B12 a la semana. La B12 la fabrican bacterias, no animales. Un filete tiene B12 porque a la vaca le dieron suplementos o porque comió bacterias.

Las plantas también sufren, ¿no?

No, idiota, mira que eres tonto. Las plantas no tienen nociceptores ni sistema nervioso. Es Biología de 1.º de la ESO. (gilipollas)

El león bien que come carne.

¿Eres un león, gilipollas? ¿Tu León™ tiene un iPhone 17 Pro Max de gilipollas?

Ya, pero es la naturaleza.

El león mata a las crías de sus rivales, pero qué curioso que solo para la carne se le puede poner de ejemplo porque cuando yo mato a los hijos de un competidor os ponéis a lloriquear porque he matado a vuestro crío. Hay que aclararse en algún momento, joder ya.

Yo no podría, me gusta demasiado el queso / la carne / insertar algo que no como pero que a usted le encanta.

vale. no recuerdo haber preguntado eso sí, tened cuidado.

¿Cuál es tu salario anual?

¡Bueno, esto ya no tiene absolutamente nada que ver con el veganismo! Pero lo entiendo, la pregunta es legítima pero el contexto no se presta.

El ser humano es omnívoro por evolución.

La evolución humana es descriptiva (lo que pasó), no prescriptiva (lo que debería ser). La evolución también nos dio la agricultura, la cocción y los supermercados. Si seguimos la lógica evolucionista, deberíamos comer carne cruda.

¿Eres ejemplar?

¿Como individuo? Sí, absolutamente, soy un ejemplo para todo el mundo. Sin embargo, en cuanto a veganismo, no: es verdad, y lo confieso, a veces compro Kinder Country llenos de leche. Pero es que están buenísimos, me cago en todo, no puedo resistirme a los cantos de sirena del capitalismo a estas alturas. Y a veces mato vacas con un cuchillo, también por placer.

Mis prácticas en Kyber

El puesto

Desarrollador de sistemas embebidos, en prácticas. No un único tema durante seis meses: demos, varios frentes en paralelo, y hay que adaptarse.

Mis fotos de las prácticas: yo en la oficina, con el cono de VLC de sombrero; luego mi puesto, un portátil entre las dos mitades de mi teclado partido.

Puesto
desarrollador de embebidos, en prácticas
Desde
septiembre de 2026, hasta principios de febrero
Estudios
M1 de sistemas embebidos, EFREI Paris
Lenguajes
Rust, C y C++
Sistemas
ESP-IDF, Linux embebido construido con Yocto
Robótica
ROS 2, MAVLink
En el banco
KiCad, soldador, multímetro, fuente de laboratorio
Lo que hago allí

Varios proyectos a la vez, nunca un solo tema durante seis meses: un banco que mide la latencia de una pantalla, un perro robot que camina pilotado a distancia, y placas electrónicas que diseñar y revisar. Una página para cada uno, justo después.

Qué es Kyber

Kyber pasa el vídeo, el sonido, los mandos y la telemetría por un solo enlace, con el mismo reloj, con 8 a 10 ms de extremo a extremo. El SDK es de código abierto (AGPL v3), y detrás está el equipo que hizo VLC. Sí, el cono naranja.

Por qué 8 ms

Según Kyber, la coordinación ojo-mano va de 30 a 50 ms. Por debajo, el robot ya no reacciona después del gesto, sino durante. Su frase: a 200 ms miras, a 8 ms pilotas.

Medir la latencia

Mi proyecto principal es un banco que mide el tiempo entre pulsar una tecla y el momento en que cambia la imagen. ¿Cómo? ███████ ██ █████████ ███, y ████ █████████ ██████. Proyecto interno, expediente censurado.

La tableta
██████ ████, con ████████
El firmware
en Rust, sobre ██████
El sensor
[DATOS ELIMINADOS]
Los modos
███ ████ ██████, ██ ████ ███████
El resultado
[DATOS ELIMINADOS]
La regla de partida

Al principio pusimos una regla: nada complicado que pueda romperse, aunque cueste █ ms de precisión. Así que descartamos ███ ████████████ ██████, y ████████ ██ █████ en un teclado de verdad.

La interferencia

Una interferencia de ██ Hz desplazaba todas las mediciones. La causa: ████ ██████████ pegada a los ████ del ████████. [DATOS ELIMINADOS]

La soldadura

Perdí hora y media con el montaje, y al final era una soldadura. Desde entonces reviso cable por cable desde el principio, y mido antes de culpar a un componente.

La prueba A/B

Antes de culpar a una nueva versión del firmware, hago una prueba A/B: el mismo montaje, las dos versiones, con cinco minutos de diferencia. Esa vez, la nueva versión no tenía nada que ver.

Los robots

Un perro robot que hacer andar, pilotado con un mando a través de Kyber. Y la robótica del equipo, vista desde un poco más lejos.

El Mini Pupper en mi mano, y mi cara en la pantalla de detrás; un cronómetro filmado por la cámara del rover y devuelto a la pantalla; un reloj al milisegundo, junto a la pinza del rover.

El robot
Mini Pupper 2, un cuadrúpedo de código abierto de Mangdang
Dentro
una Raspberry Pi CM4, y un ESP32-S3 para los servos
El sistema
una imagen Linux construida con Yocto
El control
un mando, a través de Kyber
Protocolos
MAVLink, UDP
La migración

El software del perro está hecho para Ubuntu. Mi tarea: llevarlo a una imagen Yocto, con la cámara, la pantalla, la placa de los servos, la marcha y el mando.

Leer lo que se ejecuta

La placa de los servos no respondía: el software oficial abría un puerto serie con su nombre antiguo, y el sistema que venía con el perro funcionaba con una versión corregida. Lección: leer lo que se ejecuta, no solo el repositorio.

Desde más lejos

Un bus NMEA 2000 en un barco, una cámara GMSL2 en una pequeña placa Linux: investigaciones para proyectos que llevan otros.

Las placas

Placas electrónicas: dibujarlas, revisarlas, arrancarlas.

Una placa que se enciende por primera vez, con su LED verde. Luego la fuente de laboratorio, a 5,16 V.

Software
KiCad: esquema, rutado, ERC y DRC
Formato
HAT de Raspberry Pi
Microcontroladores
SAMD21, RP2354A, ███████
Firmware
PlatformIO, y algo de Rust
En el banco
fuente de laboratorio, multímetro
El stock

El mejor regulador sobre el papel no tenía stock en el ensamblador. Lección: la disponibilidad decide tanto como la hoja de datos.

Revisar

Revisar las placas de los demás, desde cero. Un error que no repetir: comprobar las pistas y las zonas de cobre antes de afirmar un ancho.

Arrancar

Una placa nueva con SAMD21 no hace nada sola: un firmware de prueba, ensayos desde el PC, y el procedimiento para flashearla.

Kyber

Kyber hace la infraestructura que controla máquinas a distancia, en tiempo real: robots, drones, vehículos, escritorios remotos. Estoy allí de prácticas de ingeniería desde septiembre de 2026.

Qué es
una infraestructura de control de máquinas en tiempo real
En un solo enlace
vídeo, audio, mandos y telemetría, sobre un mismo reloj
Latencia
de 8 a 10 ms de extremo a extremo, según anuncian
Transporte
QUIC y HTTP/3, cifrado de extremo a extremo
El código
un SDK de código abierto, con licencia AGPL v3
Plataformas
Windows, Linux, macOS, Android, iOS, cascos XR
El equipo
el que hizo VLC
Por qué 8 ms

Según Kyber, la coordinación ojo-mano funciona entre 30 y 50 ms. Por debajo, el robot no responde después del gesto, sino durante. A 200 ms, miras; a 8 ms, pilotas.

No es WebRTC

WebRTC se hizo para las videollamadas entre humanos, donde basta con 100 a 200 ms de latencia. Para pilotar una máquina, es demasiado: Kyber tiene su propio protocolo, y lo dice.

VLC

El equipo fundador hizo VLC, instalado en miles de millones de dispositivos, y contribuyó a FFmpeg, que codifica la mayor parte del vídeo de internet. Veinte años de vídeo, ahora al servicio de las máquinas.

Mi setup Linux

NixOS

Mis dos máquinas están descritas en un solo repositorio git, del núcleo al color del cursor. Nada entra ahí porque «ya estaba antes».

Distribución
NixOS, y home-manager para todo lo demás
Método
una flake, dos máquinas
La torre
dieu — i5-6400, Radeon RX 580
El portátil
ThinkPad P14s — Ryzen AI 7 PRO 350
No libre
aceptado paquete a paquete, nunca en bloque
La documentación

Cada página de documentación enumera los archivos que describe. Un commit que cambia la configuración sin actualizar su página se rechaza, y la web de la documentación se vuelve a publicar sola después de cada commit.

El escritorio

Hyprland ordena las ventanas, una barra escrita a mano dice lo que va mal, y todo es naranja sobre negro.

Compositor
Hyprland, configurado en Lua
Una config
para dos máquinas: lee su nombre
Barra
Quickshell, en QML
Tema
«braise» (brasa) — #ff6b1a sobre #0e0e0f
Formas
squircles, no esquinas redondeadas
Fuentes
Figtree, e Iosevka compilada en casa
La barra

Sustituyó a tres programas de golpe: la barra, el lanzador y las notificaciones. Su regla: si hay un problema, mostrarlo; si no, nada.

El fondo de pantalla

Una matriz de puntos luminosos, animada con un shader. Antes de ella: un túnel de neones, una foto, un cielo de cintas y un horizonte marino. Todos rechazados.

Cero atajos

Una config guardada a medias se cargó tal cual. Hyprland funcionó con cero atajos de teclado, sin un solo mensaje de error.

El terminal

Una ventana de kitty, una sesión de tmux. Es Hyprland quien divide en mosaico, no el terminal.

Emulador
kitty
Multiplexor
tmux
Shell
zsh en modo vi, starship
Editor
Neovim, descrito en Nix con nixvim
Herramientas
fzf, zoxide, eza, bat, fd, ripgrep
Y además
yazi, lazygit, btop
13,5

El tamaño de la fuente del terminal no es cuestión de gusto: está calculado para caer en píxeles enteros con la escala 4/3 de la pantalla.

Neovim

Toda su configuración está escrita en Nix, unas 1 400 líneas, con la tecla Espacio para empezar los atajos.

Willy Wonka

Mi teclado está partido en dos, es inalámbrico, y lleva el nombre de un chocolatero.

Modelo
Corne Choc Pro, de Keebart
Conexión
Bluetooth, una mitad por mano
Pantallas
una nice!view en cada mitad
Firmware
ZMK, compilado en casa
Distribución
QWERTY, modificadores bajo los dedos
Capas
seis
Las pantallas

Cada capa tiene su animación: auténticos accesorios de Charlie y la fábrica de chocolate (2005) girando en 3D. El Billete Dorado, la piruleta, la Wonka Bar, la pasta de dientes Smilex.

El nombre

Se llamaba Cyril Hanouna hasta el 4 de octubre de 2026.

El dictado

Una capa tiene dos teclas: una graba mi voz, la otra pega el texto transcrito.

Mis herramientas

Dos herramientas que escribí para mí, y que viven en el terminal: mis tareas y mi agenda.

Stylite
las tareas — servidor y CLI en Go, TUI en Rust, web en Svelte
Comput
la agenda — CLI en Python, TUI en Rust (ratatui)
Dónde
en mi servidor; mis dos máquinas le hablan directamente
El calendario
autoalojado, en CalDAV: el iPhone también lo lee
Stylite

El gestor de tareas casero. Una bandeja de entrada, hoy, próximamente, el registro de lo hecho; proyectos, secciones, plazos. Todas las tareas de esta web viven ahí.

Comput

La agenda: vistas de mes, semana, día y agenda, las citas en su sitio y con su duración, una al lado de otra si se solapan, y la línea de la hora actual. Sustituyó a khal y vdirsyncer.

La TUI

Una interfaz de texto, en el terminal, solo con teclado: j y k para moverse, ? para todas las teclas, una coma para abrir todas las órdenes. Nada espera: la primera pantalla sale de la caché, la sincronización sigue en segundo plano.

Los ajustes

Tema, distribución y teclas están descritos en mi config de NixOS y se comprueban en la instalación: una tecla asignada dos veces hace fallar la instalación, no el arranque. Las dos llevan el tema brasa.

La red de seguridad

Cada orden de Comput responde también en JSON, y cada escritura se puede deshacer: u anula la última, exactamente igual. Una cita cambiada mientras tanto en el teléfono no se sobrescribe, se rechaza.

Las manías

Lo que no sirve para nada, o casi.

Anticruasán

Aproveche mi ordenador desbloqueado para anunciar que invito a cruasanes a todo el mundo (en Francia, es la venganza clásica): el mensaje se sustituye, la webcam le saca una foto, y la pantalla se bloquea con «NADA DE CRUASANES PARA USTED». También reconoce «crwassan» y «tnassiorc».

La tapa

El punto rojo del logo de ThinkPad deletrea «marc-alexis» en morse, en bucle. El de aquí también, mírelo. No sirve para nada, y es a propósito.

juice

Una herramienta casera para la energía y la suspensión. Cambia de ajustes según dónde estoy, y corta el turbo del procesador para que el ventilador se calle.

Proyectos

Configuro mi cepillo de dientes desde un terminal. El resto va en la misma línea.

nothing-toolbox

nothing headtrack en un terminal, animado: unos cascos low-poly blancos, sobre un suelo cuadriculado, que siguen los movimientos de la cabeza: asienten, giran, se inclinan.

Una sola herramienta de línea de comandos para controlar mis cascos, los Nothing Headphone (1), desde Linux: cancelación de ruido, ecualizador, códec, batería, y su sensor de orientación. Sin teléfono, sin app, sin cuenta.

Lenguaje
Rust, con licencia MIT
Conexión
Bluetooth clásico, RFCOMM canal 15
Tramas
cabecera 0x55, CRC-16/MODBUS
Probado con
Nothing Headphone (1), modelo B170
Desde
octubre de 2026
Un solo canal

Los cascos solo aceptan una conexión a la vez: una segunda se rechaza. Así que un demonio se queda con el canal y sirve las demás órdenes por un socket local. Cambiar la cancelación de ruido tarda unos 0,3 s por sí solo, 50 ms a través del demonio.

Asentir con la cabeza

Los cascos envían su orientación en cuaterniones, unas diez veces por segundo. nothing headtrack --viz dibuja con ella unos cascos 3D low-poly en el terminal, estilo PS2; nothing gestures convierte un asentimiento en reproducir/pausa, y una sacudida en la pista siguiente.

El ecualizador

nothing eq edit dibuja la curva en el terminal y la envía a los cascos mientras se ajustan las bandas. La ganancia total se calcula exactamente como la calcula la app.

El protocolo

Está descrito en el repositorio, y cada dato lleva su estado: visto en los cascos, leído en la app, o deducido. Pasar de AAC a LDAC reinicia los cascos, que vuelven al cabo de unos 7 s.

laifen-toolbox

laifen tui en un terminal, animado: un cepillo de dientes low-poly de acero pulido gira sobre un suelo cuadriculado durante el cepillado, y el panel de los modos y la batería cuenta los segundos.

El mismo principio, para mi cepillo de dientes, un Laifen Wave: sus cuatro modos y sus ajustes, la duración del cepillado, el aviso de los 30 segundos, la batería, y una vista 3D del cepillo en el terminal. Sin teléfono, sin app, sin cuenta.

Lenguaje
Rust, con licencia MIT
Conexión
Bluetooth LE, a través de BlueZ
D-Bus
hablado a mano, sin biblioteca
Tramas
cabecera 0xAA, suma XOR
Probado con
Laifen Wave, modelo LFTB01-P
Se duerme

El cepillo se vuelve a dormir después de cada orden, y suele tardar unos veinte segundos en reaparecer; una vez, dos minutos. Por eso laifen shell encadena varias órdenes en una sola conexión.

Prudencia

El protocolo sabe resetear el cepillo o reescribir su firmware. laifen solo deja salir órdenes probadas en un cepillo de verdad, revisadas, y después deshechas; las demás no están escritas.

La vista 3D

laifen tui dibuja un cepillo low-poly de acero pulido, estilo PS2, sobre un suelo de espejo. Durante el cepillado, su cabezal oscila con la amplitud y la velocidad del modo, ralentizado para que se vea.

kishot

Una lámina de kishot: una placa electrónica en seis vistas 3D, desde arriba, desde abajo, de tres cuartos y de perfil, bajo una cabecera que la describe.

Convierte una placa KiCad en láminas que se pueden enviar: seis vistas 3D, el cobre capa a capa, cada una bajo una cabecera que dice qué placa es. Una orden, sin interfaz, la misma imagen cada vez.

Lenguaje
Python 3.9+, un solo archivo, sin dependencias
Controla
kicad-cli e ImageMagick
KiCad
versiones 9 y 10
Licencia
MIT
Lo que ha cambiado

kishot --diff compara la placa con una revisión git anterior: el cobre quitado en rojo, el añadido en verde, cada cambio rodeado con un círculo para que se vea una pista corta, y un GIF con fundido de una a otra.

Antes de pedir

Bajo demanda: una lista de materiales visual, los Gerbers redibujados por otra herramienta que no es KiCad, la serigrafía tal como la imprime el fabricante, y PDF a escala 1 para colocar los componentes de verdad sobre el papel.

Las pull requests

Una GitHub Action comenta una pull request con las láminas de las diferencias, y actualiza su comentario con cada push. Unos dos minutos y medio por pasada, sobre todo para descargar KiCad.

La vuelta

kishot -s spin hace girar la placa sobre sí misma a 20 imágenes por segundo, en un GIF pixelado como un juego de PS2.

Bouillon

La página de búsqueda de Bouillon, con la palabra «blue»: una cuadrícula de miniaturas, reducidas aquí a manchas de color.

Un archivo de imágenes, la mayoría venidas de Are.na. Cada una recibe sus etiquetas de Claude Haiku y un vector para la búsqueda semántica: se encuentra por una palabra, o por una idea cercana.

Servidor
FastAPI, SQLite y sqlite-vec
Búsqueda
por palabras clave, por el sentido, o ambas
Terminal
un cliente en Rust
Mac
una app nativa en Swift
Bajo demanda

El servidor solo funciona cuando se usa: una puerta lo arranca con la primera petición y lo detiene tras quince minutos sin visitas. El proceso de 2 GB solo funciona si sirve para algo.

En el terminal

El cliente en Rust muestra las imágenes en el terminal: imágenes de verdad en kitty, medios bloques en otros sitios. Un modo hace desfilar Are.na imagen a imagen; o te la quedas, o pasas.

En el Mac

Para la app nativa, el modelo CLIP convertido a Core ML: un coseno de 0,9997 con el original, en las imágenes. En un M4, 5 880 miniaturas pasan en 177 segundos.

juice

El panel de juice en un terminal: la energía del cargador hacia el sistema y la batería, la curva de las dos últimas horas, y el estado de la batería.

Una herramienta casera para la energía y la suspensión del portátil. Un binario, tres funciones: un panel en el terminal, un demonio que hace el trabajo, y las órdenes de la barra y del escritorio.

Lenguaje
Rust: ratatui, wayland-client
Contexto
la red, la corriente o la batería
Inactividad
el protocolo Wayland ext-idle-notify-v1
Desde
octubre de 2026
Los presets

Una lista de presets, cada uno con sus condiciones; se aplica el primero que se cumple. El archivo se vuelve a leer cuando cambia, sin reinstalar nada. Para que un wifi que se cae un segundo no cambie nada, solo se baja en la lista a la segunda lectura seguida.

El ventilador

Pasar al perfil equilibrado bajó el ventilador de 5 290 a 4 460 revoluciones por minuto, y el procesador de 80 a 67 °C. Cortar el boost lo limita a 2 GHz en lugar de 5,09: lo pesado va bastante más despacio, es el precio.

En caliente

Los temporizadores de inactividad pasan por un protocolo Wayland: los plazos se cambian sin reiniciar nada.

Monolithe

Cuatro pantallas de Monolithe en blanco y negro, una al lado de otra: el arranque, una losa negra dentro de un anillo de marcas; la cuadrícula de apps; Respirar, una columna que sube bajo la palabra «INHALE»; una página de The Time Machine.

Un firmware propio para un lector de tinta electrónica, el Xteink X4 Pro: el lector CrossPoint, más mis herramientas — las tareas y la agenda del día, una entrada de texto con teclado, un temporizador, un ejercicio de respiración. El nombre viene de 2001: una losa negra que se sostiene en la mano.

Lenguaje
C++, con PlatformIO
Chip
ESP32-S3, 8 MB de PSRAM, 16 MB de flash
Pantalla
tinta electrónica, 4,3 pulgadas, 800 × 480, blanco y negro
Base
un fork de CrossPoint Reader, con licencia MIT
Desde
octubre de 2026
Por qué un fork

CrossPoint ya maneja el hardware, la lectura, el Wi-Fi y el HTTPS. Pero el proyecto rechaza las apps interactivas y la conexión activa: las mías nunca subirán, así que el fork se queda personal. Partir solo del SDK era reescribirlo todo para perder el lector.

Nada se mueve

La tinta no sabe animar: blanco y negro, gris por tramado, un refresco rápido que deja fantasmas, o uno lento que tarda 1,7 s. El único movimiento fluido del aparato es su luz: Respirar la hace respirar, 5 s para inspirar, 5 s para espirar.

El espacio

El firmware ocupa el 90,9 % de su partición de flash, y una imagen a pantalla completa pesa 48 KB. Las fuentes están rehechas para 1 bit: un píxel es negro si está cubierto a la mitad, y ningún texto baja de 12 px.

El culpable

El heap fallaba en una de cada dos pasadas. La culpa no era del firmware, sino del emulador: su Wi-Fi falso escribía en memoria ya devuelta. Sorteado solo para el emulador; después, siete pasadas completas de siete sin un fallo.

Aún sin flashear

El lector todavía no había llegado: todo se escribió y se probó en un emulador que ejecuta el binario real. Las imágenes de esta página salen de ahí.

Stylite

La TUI de Stylite en un terminal, con tareas de demostración: a la izquierda las vistas y las áreas, a la derecha la vista Hoy, con sus tareas agrupadas por área y por proyecto.

Mi gestor de tareas, siguiendo el modelo de Things 3, pero en mi propio servidor: un servidor y cuatro maneras de escribirle — una TUI, una app web en el teléfono, una app para Mac y una línea de comandos para agentes de IA.

Servidor
Go y SQLite: una API REST, un WebSocket
Terminal
Rust, con ratatui
Web
SvelteKit, instalable, sin conexión
En git
desde mayo de 2026
Sin conexión

La app web guarda todos los datos en el teléfono. Una escritura se ve al instante, luego espera en una cola que se envía petición a petición cuando vuelve la red. Una tarea creada sin conexión lleva un número provisional, cambiado por el real al enviarse.

Dos cálculos, un resultado

Las vistas — hoy, próximas, el registro — las calcula el servidor, y la app web las rehace para funcionar sin conexión. Una prueba consulta 22 vistas en los dos lados y exige las mismas respuestas.

Para agentes

stylite-cli cubre toda la API y se describe a sí misma: el catálogo de sus comandos en JSON, el esquema de cada campo, códigos de salida estrictos. Una escritura por lotes se deshace entera si falla uno solo de sus pasos.

Deshacer

Cada escritura queda registrada. Deshacer el borrado de un proyecto devuelve todo lo que contenía.

spotify-terminal

spt en un terminal, en la página de un artista: sus canciones más escuchadas, sus álbumes y la barra del reproductor abajo. Las portadas se reducen aquí a unos pocos bloques de color.

spt, un reproductor de Spotify en el terminal: la biblioteca, la búsqueda, los artistas, los álbumes y el sonido en el ordenador, sin la app de Spotify. No oficial, necesita una cuenta Premium. Empezó como un fork de spotify-tui, de Fusor.

Lenguaje
Rust, con licencia MIT
Reproducción
librespot, en el mismo proceso
Interfaz
HTML y CSS, compilados en vistas de terminal
Desde
octubre de 2026
De dónde parte

spotify-tui ya sabía reproducir, buscar y recorrer la biblioteca. Encima, en 82 commits: las portadas, las páginas de artista, los me gusta, la cola, la letra sincronizada, la radio, los podcasts, las teclas de vim y un archivo de ajustes. Desde la versión 0.2.0 ya no es un fork.

HTML en un terminal

Las vistas son plantillas HTML y su CSS, compiladas en interfaz de terminal al construir y ligadas a un estado en Rust. El tema se pone sobre la hoja de estilos al arrancar: cambiarlo no exige recompilar.

Las portadas

Pasan por el protocolo gráfico de kitty, con caracteres Unicode que les guardan el sitio: también funcionan dentro de tmux. Cada imagen tiene su identificador, para que dos reproductores abiertos no se pisen.

El soplido

Un soplido en los auriculares: PipeWire ofrecía primero un formato de 8 bits; spt ahora conserva el de la tarjeta de sonido. La salida de audio se reabre sola cuando su flujo muere, y la música se apaga con un fundido al pausar.

Esta web

El inicio de esta web: el personaje en medio de un haz de torres de cristal cian, y el menú a la derecha.

La web que está leyendo: mi portfolio, recreado en el dashboard de una PlayStation 2. Fondo negro, torres de cristal cian, etiquetas amarillas, tarjetas de memoria.

Interfaz
Vue 3, Vite y Pinia
3D
Three.js: el campo, los objetos, la cabeza
Estilo
CSS escrito a mano, sin framework
El sonido
las muestras de una PS2 de verdad
El acuario
un servicio de escritura en Rust
Desde
julio de 2026
Las torres

La consola de verdad dibuja una torre de cristal por juego, con su altura según el tiempo jugado. Aquí, una torre por cada puerta del inicio, con su altura según lo que hay para leer detrás.

Los objetos

Los objetos en 3D de esta página y de las fichas están escritos en código, y comparten una sola escena, prestada de una página a otra: un navegador solo aguanta una quincena de contextos WebGL.

En texto

Toda la web existe también en solo texto, en francés, inglés, japonés, español y chino, para los lectores de pantalla.

Los secretos

Dieciséis easter eggs, que se encuentran. El contador de la barra dice cuántos quedan, nunca dónde buscar.

Contacto

Lo más sencillo es un correo. Sin formulario, sin robot en medio: llega a mi buzón, y soy yo quien lo abre.

Sistema

Acceso concedido, pero no hay ningún teclado conectado. Conéctelo: se detectará solo.

Las torres

El dashboard de una PlayStation 2 dibuja una torre de cristal por cada partida guardada en la tarjeta de memoria. Aquí, una torre por entrada del menú: la que brilla es la que tiene debajo del cursor.

Los bloques

Los cubos violetas que van a la deriva son los bloques libres de la tarjeta. Todavía quedan, así que esta web no está terminada. No lo estará nunca.

La web antigua

Antes de esta, marc-alexis.com era otra web, en tres idiomas, con un sistema operativo completo y figuritas coleccionables. Está guardada en una tarjeta de memoria, en algún rincón del servidor.

Los modelos 3D

El cofre, el pecio, la barca, el ajolote y el martillo vienen de Sketchfab, con licencia Creative Commons: «Minecraft Chest» de Blender3D, «Fishing boat» de Pabooklas, «Minecraft boat» de vovash, «Minecraft Axolotl» de Marina Vildanova, «Toy Hammer» de Pedro Perim. Se redujeron de 41 MB a 344 KB para caber aquí. El cangrejo es Ferris: personaje de Karen Rustad Tölva, modelo 3D de RayMarch, de dominio público. Los dos sonidos del cofre vienen de Minecraft.

La cabeza

La cabeza de «Sobre mí» parte de FLAME 2023 Open, un modelo de cabeza del Max Planck Institute for Intelligent Systems (T. Li, T. Bolkart, M. J. Black, H. Li y J. Romero, SIGGRAPH Asia 2017), con licencia CC-BY-4.0. Se ajustó a cuatro fotos de Marc-Alexis, y luego se redujo a 1 342 triángulos.

Los logos

En la ficha de Linux, el copo de NixOS está redibujado en volumen a partir del logo de Tim Cuthbertson para el proyecto NixOS (CC BY 4.0), y el logo de Neovim a partir del de Jason Long (CC BY 3.0).

Las portadas

Las portadas de «Los libros que recomiendo» pertenecen a sus editoriales y a sus ilustradores. Se muestran en pequeño, para recomendar los libros, nada más.

Los retratos

Las fotos de los autores, en la página de cada libro abierto, vienen de Wikimedia Commons, recortadas y reducidas: Mihály Csíkszentmihályi por Ehirsh (dominio público), Hans Rosling por la Gapminder Foundation (CC BY 3.0), Derek Sivers por él mismo (CC BY-SA 4.0), Alain de Botton por Fronteiras do Pensamento (CC BY-SA 2.0), Austin Kleon por Larry D. Moore (CC BY 4.0), Anna Lembke por EthicsinSociety (CC BY 3.0), Kevin Kelly por Cmichel67 (CC BY-SA 4.0), Ken Wilber por el Kanzeon Zen Center (CC BY 2.0), Claude Lévi-Strauss por Bert Verhoeff para el Nationaal Archief (CC0), Bill Perkins por el World Poker Tour (CC BY 3.0). Las versiones recortadas de las fotos CC BY-SA siguen bajo la misma licencia.

Los logos de los proyectos

En la pantalla Proyectos, los logos de las tecnologías vienen de Simple Icons (CC0). Cada uno sigue siendo la marca de su propietario, citado para nombrar la herramienta; el de Rust está bajo CC BY-SA 4.0 (Rust Foundation), el de KiCad bajo GPL 3.0 o posterior, el de Wayland bajo licencia MIT. La placa de las láminas de kishot es la RoyalBlue54L Feather de Lord’s Boards, con licencia CERN-OHL-P v2.

Los caracteres chinos

En la página de chino, los caracteres punteados vienen de Make Me a Hanzi, de Shaunak Kishore, sacados de las fuentes Arphic PL KaitiM GB y UKai de Arphic Technology, bajo la Arphic Public License.

El perro robot

El Mini Pupper 2 de la ficha de Kyber es el modelo 3D oficial de MangDang (repositorio mini_pupper_ros, paquete mini_pupper_description), bajo licencia Apache 2.0. Sus piezas se aligeraron, se recolorearon al estilo del sitio y se le añadieron los ojos; sus articulaciones son las suyas.