ManifestoJournal

Don't get any funny ideas

martes, 6 de octubre de 2026

Using Claude Code for UI/UX prototyping

sábado, 2 de mayo de 2026

Looking what's the hype with Agentic Engineering

sábado, 25 de abril de 2026

The Mouse Moment

miércoles, 11 de junio de 2025

DHH's saying agents are another Rails moment.

Don't get any funny ideas

martes, 6 de octubre de 2026

Estaba callado, pero el internet se ha vuelto tan frenético los últimos días que me veo obligado a usar toda la energía que estaba gastando nadando en mi depresión estacional para salir de mi cueva, ponerme a pensar profundamente en el papel de mi diario, analizar eventos de los últimos días y ponerme la máscara de ser humano responsable.

… seré breve… - Fidel Castro, New York, September 26th, 1960.

Hablemos de la Opening Keynote del Rails World 2026

Pero primero, vamos a precargar tu ventana de contexto.

Per Audacia Ad Astra. Look, Mom, I can code without my hands!

Per Audacia Ad Astra.

source

Después del Keynote del DevDay 2026 de OpenAI, decidí sacrificar el menú de mi almuerzo durante los próximos 2 meses para ponerme a experimentar con GPT 6 Astra en la nueva versión de Codex CLI y probar la ingeniería agéntica usando mi voz, con una suscripción cuyos límites me permitieran usar los modelos superavanzados que todo el mundo en X dice que nos van a reemplazar a todos en los próximos 6 meses… desde hace 24 meses.

Debo admitir que el primer día tuve mi primera sesión larga e ininterrumpida de agentic engineering con un modelo de frontera de nueva generación, reparando un prototipo roto que había intentado reparar con varios otros modelos y arneses. No voy a mentir, me sentí como Tony Stark en Iron Man rediseñando la armadura Mark I mientras reparaba el proyecto de React Native, construido con modelos de generación anterior.

Para ser un nuevo dios digital, me sorprende que obedezca todas mis órdenes sin rechistar, al punto de que tuve que ordenarle que me contraargumentara para mejorar el plan de ejecución, el diseño arquitectónico de alto nivel y las metas de la aplicación que estábamos reconstruyendo.

Dejen que les cuente un poco de historia. Primero intenté escribir, pero me sentí extremadamente limitado por mi propia velocidad al tener que pensar en caliente y al mismo tiempo traducirlo al inglés, por lo que decidí lanzar el comando /voice y comencé a hablar con Astra. En un principio en inglés, pero posteriormente le comenté que me molestaba mi propia pronunciación y el modelo me respondió en español, supongo que extrayendo información de la zona horaria de mi PC o de la dirección IP de la conexión con los sistemas de OpenAI. Impresionante.

Continuando la conversación en español, comencé con la tarea de limpiar el AGENTS.md del proyecto; como he estado trabajando en él con varios arneses y al menos tres modelos distintos, me puse a hablar con el modelo para tener un setup un poco más limpio y concentrado en el proyecto, que reflejara las decisiones técnicas que he tomado, como las librerías que utilizo, e incluyera enlaces a su documentación para darle al agente un poco más de contexto sobre el tipo de decisiones que me gustan y dónde buscar la información técnica. Sé que esto lo puedo hacer con varios tipos de skills (habilidades), pero personalmente me pareció más conciso utilizar un enfoque ingenuo, de la misma forma en la que cualquier persona que esté experimentando con su suscripción de ChatGPT abordaría su primera experiencia con el modelo después de haber intentado sacar el proyecto adelante en varias ocasiones y con otros modelos de generación anterior.

Después de unos pocos intercambios, me gustó lo que vi y decidí hacer commit y push al repositorio.

Ahora vamos con lo poderoso: comenzar a reparar la aplicación. El primer flujo que reparamos fue el de subida de documentos al almacenamiento en Firebase, desde donde una Firebase Function los toma y los deja en el Google Drive de un amigo. Este flujo nunca había funcionado del todo bien. Estuve discutiendo con Astra durante un par de horas para construir el contexto del proyecto, dirigir su pensamiento, dejar definidas las metas de la aplicación y cómo quería que fuera nuestra interacción; quedé impresionado por cómo, después de haberle pedido una sola vez que me contraargumentara si algo era demasiado vago, comenzó a hacerlo y me llevó a darle notas y diagramas de diseño arquitectónico que había plasmado en un par de sesiones de brainstorming con mi amigo.

The margin - Gus

Por cierto, no podía encontrar las notas entre el caos de mi buzón de correo y mi uso de Excalidraw y Notion para este tipo de conversaciones y diseños de aplicaciones, así que le di a ChatGPT Work acceso a mi correo y a mi Notion, le expliqué vagamente lo que había hablado con mi amigo y le di su nombre. Me regresó los correos con el enlace de Excalidraw que contenía las notas sobre el funcionamiento de la aplicación y el diagrama high-level de la arquitectura de la misma. Este fue el primero de muchos momentos en los que comencé a entender la posición de DHH.

Dr. Evil laughing

¡Puedo ser el ingeniero desquiciado que realmente soy y Astra me lo permite! source

Esto es algo que me ha comenzado a gustar de utilizar los LLM para investigar y debugar problemas en mi software: este sistema de interacción multimodal, donde puedo interactuar con mi PC vía audio, texto, imágenes y documentos, y el modelo capta mis intenciones sin que yo tenga que ser superexplícito en mis instrucciones.

Una cosa que me sorprendió del arnés de Codex y Astra es que me sigue prestando atención mientras está trabajando en segundo plano, imagino que lanzando un nuevo subagente. Se acopló perfectamente a la forma de trabajar de mi cerebro: cuando me vino a la mente algo que me preocupaba o que creía que podía ser relevante más adelante, tomó nota y lo dejó guardado en un archivo Markdown en la carpeta de memoria del proyecto para revisarlo después.

Otra cosa que me encantó fue la siguiente. Como mi experticia no es en desarrollo de aplicaciones móviles, sino en desarrollo web (por eso mi elección de React Native), no estoy familiarizado con el tooling que se podría considerar el estándar para pruebas automatizadas. Pero recordé una experiencia que tuve una única vez utilizando OpenCode, cuando, para solventar un bug y validar unos cambios, el agente se conectó a una consola de interacción con la aplicación y comenzó a controlarla con comandos desde dicha consola.

Así que se lo comenté a Astra. Hizo una búsqueda rápida en la web y me recomendó inmediatamente Maestro. Genial, no tenía ni la primera idea de cómo buscarlo y, como no tenía en la cabeza automatizar pruebas end-to-end, me encantó la recomendación. Le pedí que la incluyera y que, para el proof-of-concept, escribiera un test del flujo de autenticación de la aplicación. Escribió el test, lo corrió y el test pasó. Genial, le pedí que incluyera en el plan escribir tests de los flujos desarrollados. Nuevo punto de control alcanzado: commit y push al repositorio.

Se me ocurrió ser un poco más ambiguo. Le pedí probar este caso: ¿qué pasa si el token de sesión del usuario ha expirado y no se puede refrescar porque el usuario no existe o el token de refresco ya no es válido? Astra simplemente comenzó a trabajar en cómo escribir una prueba y colocar la aplicación en el estado correcto para poder probarlo. 5 minutos después, tenía la prueba funcionando y me enseñó una funcionalidad de Expo: cómo agregar mis propias opciones en el menú de Dev Tools. Nuevo punto de control alcanzado: commit y push al repositorio.

The margin - Gus

Cuando lo noté, le pedí que lo documentara en un archivo Markdown en la memoria del proyecto para poder leerlo después. No hay mejor cura para el insomnio.

Finalmente, le pedí a Astra que para los subagentes de programación y revisión utilizara el nuevo GPT-6.1 Sol y que comenzara. 20 minutos después, los subagentes habían terminado su trabajo. Me puse a revisar el código y me gustó bastante el resultado. Repite después de mí: commit y push al repositorio.

The margin - Gus

And the clanker started calling me Gus!

Nada del otro mundo: comencé a tratarlo como C3PO y «gus» es el nombre de usuario de Unix de mi PC. Igualmente, mantengo una escopeta cargada junto a la PC por si comienza a hacer un ruido extraño.

Aunque la arquitectura del proyecto sufrió un poco, también debo admitir que no la tengo superdefinida. Los otros modelos de generación anterior habían fallado al implementar lo que les pedía y por eso la aplicación estaba rota: había tenido que ponerme a refactorizar varios elementos a mano. Una limitación con la que me he encontrado es que no he dado con una forma de lograr que los modelos sigan una arquitectura de software o no rompan la actual, al menos con los modelos de generación anterior. Por eso he desarrollado este hábito de explicarme de más y recurrir tanto a los planes en un intento de controlar el output de los modelos.

The margin - Gus

Regresando a la Opening Keynote del Rails World 2026, parece que este es un problema con el cual el equipo de 37Signals se cruzó durante la finalización de la nueva versión de Basecamp, cuando les pidieron a sus diseñadores que hicieran “vibe-code” de las features finales de la nueva versión (sus palabras, no las mías). Los PRs se veían razonables, pero en conjunto dejaron la arquitectura del producto como un “queso suizo”. Pusieron a varios programadores a revisar los PRs a mano y dejaron que los programadores trabajaran con los modelos. Aunque DHH cree que, si hubiesen esperado un poco más, probablemente Fable no hubiese tenido esos problemas…

No sé si Fable es mejor, pero tampoco es como que Astra haya mejorado la arquitectura del código. A lo mejor tengo que buscar una forma de reforzar la arquitectura del código con documentación y comentarios. Pero no es algo sobre lo que haya investigado mucho.

El flujo que me puse a reparar con Astra dejó de fallar y ahora el proyecto tiene tooling para automatizar pruebas. Aun así, no me siento cómodo dejando que el sistema probabilístico del LLM y su arnés agéntico decidan si correr los tests en un turno dado. Será una cosa que tendré que investigar después…

Nuevo interés especial desbloqueado

Lamentablemente, todavía no tengo nada que aportar sobre los hooks en los arneses agénticos, solo que son mi próximo tema de investigación. Quiero explorar cómo usarlos para introducir comportamientos determinísticos en los flujos de trabajo e integrarlos en los repositorios para tener hooks específicos de cada proyecto. También quiero crear e implementar hooks de sistema para automatizar mis propios flujos personales, como los logs de trabajo, y poder escribir devlogs que compartir aquí o en mi canal de YouTube.

DHH made the keynote about his journey of mourning his retirement earlier this year

Mi lectura personal es que la Opening Keynote del Rails World 2026 trató sobre su duelo por su retiro como programador profesional y cómo se redescubrió a sí mismo en este nuevo mundo en el que estamos entrando de la mano de la inteligencia artificial y los sistemas agénticos. Porque esta charla no solo hay que ponerla en el contexto de las capacidades de los modelos de última generación y la evolución de los arneses agénticos que nos permiten trabajar con ellos de forma correcta.

Porque en su primer podcast con Lex Fridman era infinitamente más escéptico frente al vibe-coding/agentic engineering, pero desde entonces su posición ha cambiado completamente, y lo comenta en su segundo podcast con Lex.

Y creo que comenzar dándole la vuelta al concepto de AI psychosis para convertirlo en AI euphoria es una muestra de su maestría con el lenguaje y el poder que este tiene sobre nuestra percepción del mundo. Al mismo tiempo, aborda la angustiante realidad que este cambio de paradigma significa para toda una industria, una realidad que muchos otros entusiastas de la inteligencia artificial, e incluso timadores infiltrados, deciden ignorar o aprovechar para explotar nuestras interacciones y sacar rédito económico en nuestra actual economía de la atención.

Por eso debo hacerle una reverencia a su metáfora, que relaciona la invención de la cámara y cómo cambió el mundo del arte con la llegada de la era agéntica. Porque he escuchado un sinfín de metáforas que no dan en el clavo al tratar de comparar esta nueva era con alguna otra capa en el stack tecnológico de la humanidad y cómo cambió la industria de la computación, en lugar de verla como un cambio de paradigma.

Explica cómo esto llevó a los artistas a generar nuevos estilos de pintura e innovar en su campo; considero que lo hace correctamente, aunque no tengo acceso a su biblioteca. De esa misma forma, todos tenemos que ponernos a experimentar y explorar. Creo que el punto más importante de la presentación es cuando revela la pieza superrealista de Lauritz Tuxen del rey Christian IX y su familia, la cual le llevó unos 3 años completar, justo antes o durante el proceso de la democratización de la fotografía con la Kodak Brownie, para luego mostrar otra pieza con un estilo más impresionista. Finalmente alcanza el clímax de la historia: Lauritz Tuxen es su antepasado, quien aceptó la nueva tecnología capturando su retrato con la misma.

Esto revela el trasfondo de la charla: DHH nos está mostrando que ya pasó por el duelo por el final de su vida como programador profesional y cómo ha entrado en una nueva etapa en la que ha decidido experimentar con lo que es posible hacer con el software. Estuvo buscando en su pasado para poder redescubrirse; por eso la sección de fotografía analógica con fotos de su niñez, continuando la analogía con la evolución de la tecnología de la captura de imágenes.

Termina su metáfora con la fotografía digital, la cual en menos de 2 décadas ha democratizado completamente la captura de imágenes, al punto de que ya no tiene sentido medir cuál es el costo de capturar una imagen nueva: tenemos un dispositivo en nuestros bolsillos que es capaz de emular el trabajo que hacía la mayoría de los fotógrafos con un montón de equipamiento especializado hace 1 década.

The margin - Gus

En todo momento la metáfora describe el avance tecnológico para que sea más sencillo para el público de la keynote llevarlo a su día a día, porque no es la primera vez que este tipo de saltos se han dado en la industria.

Desde las tarjetas perforadas, el assembly, los compiladores y los lenguajes interpretados. Una nueva capa de abstracción sobre la máquina y una mayor masificación del software para solucionar los problemas del mundo.

Pero esa metáfora y el camino que nos presenta hacia el futuro serían palabras vacías de otro timador que busca generar beneficios en la economía de la atención de nuestra distopía cyberpunk si no aportara evidencias. No solo de algo que hemos perseguido en nuestro arte, el 10x programmer, sino también de los resultados de su experimentación en su compañía, de la misma forma en que Rails se volvió uno de los grandes frameworks independientes para crear aplicaciones web.

The margin - Gus

Hey, Rails funciona, este es el producto que tenemos nosotros y no necesitas venderle tu alma a los demonios corporativos para poder crear lo que tú quieras.

Personalmente, creo que a eso se debe la inclusión de DeepSeek 4.1 Flash en las diapositivas, con el comentario de que la nueva generación de modelos no es un dominio exclusivo de las grandes compañías tecnológicas estadounidenses.

Non-programmers have reached the Basecamp

Claramente, los agentes de código son lo suficientemente buenos para permitir a los diseñadores aterrizar en una nueva versión de Basecamp todas las nuevas features que tienen en mente sin requerir de programadores en todo momento, aunque se cruzaron con problemas en la arquitectura que requirieron la intervención de programadores antes del pase a producción.

The margin - Gus

Y que personalmente creo que puede ser bastante poderoso para equipos no técnicos, permitiéndoles crear prototipos que les permitan demostrar la factibilidad técnica de sus ideas sin consumir tiempo de los desarrolladores antes de que sea necesario.

Si el equipo ha dedicado tiempo a crear mecanismos para desplegar rápidamente entornos de prueba similares a producción, incluyendo datos, los equipos de producto pueden alcanzar velocidad orbital mucho más rápido con una carga mucho mayor.

Esto demuestra que Rails es compatible con el concepto de software factory que está en boca de muchas personas en la industria.

Hey! Welcome to the Next Generation

Esto es algo que a la gente le ha costado digerir, porque es mostrar, en medio de una conferencia de Ruby on Rails, que los creadores del framework lo abandonan para la próxima generación de uno de sus productos estrella. Personalmente no entiendo por qué la narrativa colectiva de internet ha decidido agarrarse a esta decisión de 37Signals; tiene todo el sentido del mundo su decisión con las realidades que ellos manejan, en especial si además esperan o quieren hacer crecer el servicio, disminuyendo la carga en sus servidores o dándole espacio al servicio para una hipotética explosión de tráfico, producto de agentes usando el servicio.

The margin - Gus

Por cierto, qué curioso que ahora todas las compañías que están persiguiendo el mercado de consumidores de inteligencia artificial están copiando la tarea de Microsoft, Mico. O también puede ser Microsoft practicando mi pasatiempo favorito…

Volarme los pies con una escopeta

La gente espera un cliente nativo para interactuar con su correo y, además, tiene sentido escribir el servidor de correo en un lenguaje como Rust para lograr la máxima velocidad y el mínimo consumo de recursos, porque el grueso de la complejidad y las features está en el cliente, no en el servidor.

Linux is not the future of desktop computing, it’s its present!

Toda la tecnología de agentes ha sido desarrollada bajo Linux; incluso NVIDIA mantiene su propia distro hoy en día. ¡Omarchy Quattro es increíble! Aunque solo recientemente he comenzado a usar LLM en él, es mi sistema operativo personal. Y después de mi experimento con GPT 6 Astra, no puedo esperar para darle una idea que tengo para una aplicación cuya UX me encantó en Windows y no está disponible en Linux; pero eso es un tema para otro día.

Pero lo relevante es que gracias a los regalos del software open source, la libertad de Linux y el poder de los agentes puedes crear tus propias aplicaciones o adaptar aplicaciones existentes a tu gusto y necesidades para que tu computadora personal sea realmente personal.

No todo el mundo quiere hacer esto con su computadora personal, pero para los artífices entusiastas del software nuestra computadora se puede volver nuestro taller creativo, con mínima fricción, donde experimentar y probar nuestras ideas, libres de la carga y el legado del pasado del software. Y probablemente crear el futuro del software hoy.

The pursuit of excellence does not need justification - Mitchell Hashimoto.

Y gracias a la nueva obsesión de DHH con Linux y Omarchy, varios proyectos impresionantes que casi no tenían apoyo financiero ahora sí cuentan con él. Esto les permite a varios desarrolladores, que donan su tiempo para que tengamos mejor software en nuestras computadoras personales, compartir su generosidad y conocimiento con el mundo sin tener que hacer grandes sacrificios en su vida.

It’s always darkest just before dawn

Estamos siendo bombardeados por noticias de despidos masivos, industrias siendo destruidas y futuros donde todos seremos reemplazados por dioses máquina que nos quieren destruir, creados por unos pocos titanes de la industria que se van a asegurar de que todos los que no estemos construyendo el Basilisco de Roko nos quedemos en una eterna underclass de la que nunca podremos salir.

DHH, con sus proyectos, está demostrando que el futuro que se está construyendo aumenta la demanda de artífices del software. Omarchy Quattro fue construido con agentes, pero con su explosión en popularidad han tenido que traer más colaboradores al proyecto, no menos.

p(bloom) > p(doom) - DHH

Amateur Philosophy from an Engineer

A photo of Gustavo's actual journal

… es momento de una confesión, yo también he pasado por momentos de ira similares e incluso me he metido en aprietos en el trabajo por esto mismo, por cuestiones relacionadas con la mal llamada inteligencia artificial, las prácticas de las compañías que producen los modelos de frontera, las narrativas que usan para forzar regulatory capture y/o generar entusiasmo entre los inversores.

Sin tomar en cuenta las reacciones emocionales por picar en el ragebait que dejan los engagement farmers en todas las redes sociales. Ahora su eval favorito en redes es compartir juegos supuestamente generados con un solo prompt a uno de los modelos más poderosos del mercado, junto con sus alegaciones de que la ingeniería de software y la programación como carreras están muertas.

Estos son comportamientos que Eiichiro Oda ha parodiado o usado como tácticas de sus antagonistas en One Piece…

…DHH, en su forma de expresarse en la keynote del Rails World 2026, usó el lenguaje de los timadores de internet para forzar discusiones y generar publicidad para el evento de Rails World. Además de generar nuevas narrativas en el mundo de la programación. Porque en 37Signals son unos genios del marketing y unos software engineers superpragmáticos. Y hoy en día DHH es más que consciente de su posición como una de las grandes voces en el mundo de las startups y la tecnología. Él dice algo y sabe perfectamente que nuestras cámaras de eco se convierten en un megáfono con el cual él puede experimentar.

Así como somos analíticos con los problemas a los que nos enfrentamos cada día, tenemos que ser analíticos con las narrativas que se forman a nuestro alrededor, sobre las cuales construimos nuestra identidad, y con la forma en que muchas personas e intereses las usan para generar o capturar dinero explotando nuestra atención.

Porque todas las personas que vivimos terminalmente en línea tenemos que comprender que vivimos en los campos de batalla subsidiarios de muchas guerras: corporativas, ideológicas, culturales y reales. Algo que Hideo Kojima nos estuvo advirtiendo desde hace al menos 2 décadas.

Sé que soy un hipócrita hablando de los males de la economía de la atención y compartiendo sus productos, pero abrirse espacio entre el ruido y encontrar información relevante es una habilidad indispensable de cualquier general. Y nosotros mismos somos los generales de nuestras vidas…

Diario de Gustavo #1, p. 180 - p. 181

Personalmente sigo creyendo que la era agéntica está más relacionada con la era de la GUI y el ratón desde el punto de vista tecnológico, porque ahora se ha desbloqueado toda una nueva cantidad de formas distintas de interactuar con las computadoras, el software y nuestra información que hemos estado persiguiendo desde hace décadas. Porque ahora gran parte del poder que existe en los sistemas operativos de nuestras computadoras, organizaciones, bases de conocimientos y documentos ha sido democratizado por una nueva forma de input mucho más accesible.

La belleza de este nuevo paradigma no es algo que podamos entender en este momento, ya que estamos viviendo un cambio similar en impacto al del paradigma de interacción que masificaron el Macintosh y el IBM PC de la mano de Windows en los años ochenta. Porque aunque el internet y el teléfono inteligente cambiaron nuestro mundo, la computación se ha mantenido en el mismo paradigma de interacción desde esa época.

Porque ¿qué es la generación de código con modelos y agentes de inteligencia artificial sino una nueva evolución de IntelliSense, templates de boilerplate y documentación inline que nos permite expresar nuestras intenciones para obtener una aproximación a la solución del problema que estamos explorando?

Cortana: Your architecture isn’t much different from the Autumn’s…

Master Chief: Don’t get any funny ideas.


Revisión lingüística y de estilo con ayuda de GPT 6 Astra.

Who is Gustavo?

© 2026 Gustavo A. Rodriguez Rivero

Built with