Ideas & Insights

Explorando desarrollo AI-first, guardrails de código y la arquitectura de la descartabilidad.

Puedes verificar código con model checking sin aprender temporal logic

Los bounded model checkers como Kani y los relational model finders como Alloy permiten verificar propiedades con assertions y constraints ordinarios. Renuncias a las pruebas de liveness a cambio de una curva de aprendizaje medida en horas, no en semanas.

No necesitas aprender lógica temporal lineal para usar un model checker. Herramientas como Kani, CBMC y Alloy te permiten verificar propiedades con assertions…

Puedes probar que tu código Rust es correcto sin escribir una sola prueba, pero el espacio de estados es la factura

Herramientas de model checking como Kani te permiten verificar propiedades de Rust con assertions en lugar de pruebas formales. El problema es lo que ocurre cuando tus bucles no tienen límites pequeños.

Puedes probar que tu código Rust es correcto sin escribir una sola prueba. La herramienta que lo hace se llama model checker, y para Rust el más práctico en…

No puedes hacer pruebas unitarias de un protocolo distribuido, pero sí puedes verificarlo con model checking

Los errores distribuidos son costosos de corregir después del despliegue. El model checking te permite encontrarlos antes de escribir una sola línea de código de implementación. Así es como hacerlo con TLA+.

No puedes hacer pruebas unitarias de un protocolo distribuido. Una prueba unitaria ejecuta un proceso en una máquina en un orden determinado. Tu protocolo…

Copiar archivos `.env` entre entornos no es una estrategia de configuración

Cómo los equipos de infraestructura gestionan la configuración entre dev, staging y production mediante DSLs por contexto que hacen explícitas las diferencias entre entornos y son type-safe.

Tu entorno de staging funciona. Tu entorno de production no. El diff entre sus archivos es de 400 líneas, y la mitad son comentarios en los que ya nadie…

Grammar-constrained decoding: forzando a los LLMs a emitir sintaxis válida en cada token

Los LLMs alucinan sintaxis porque samplean tokens probabilísticamente. El grammar-constrained decoding filtra el vocabulario en cada paso para que solo se emitan tokens que preserven la validez sintáctica.

Pídele a un LLM que genere un objeto JSON y eventualmente emitirá una coma al final, un salto de línea sin escapar dentro de un string, o un bare word donde…

Traducir del inglés a un tema es fácil. Hacerlo determinista es el verdadero problema.

Puedes generar design tokens a partir de descripciones simples en inglés, pero solo si tratas la descripción como un DSL de contexto delimitado con un contrato de schema y snapshot tests.

Sí, puedes describir un tema en inglés y obtener un design system funcional. El truco es que la descripción en inglés no es un prompt. Es un archivo fuente. Y…

Olvida el archivo de gramática: escribe tu parser DSL en TypeScript puro

Los generadores de parsers son excesivos para la mayoría de DSLs de contexto acotado. Los combinadores de parsers te permiten construir un parser funcional en el mismo lenguaje que tu aplicación, sin código generado ni pasos de build.

Si alguna vez abriste un archivo de gramática de Yacc y te preguntaste por qué construir un lenguaje requiere aprender un segundo lenguaje, no estás solo. Los…

Tus dependencias pueden leer tus variables de entorno. JavaScript se lo permite.

La autoridad ambiental significa que cualquier código en tu proceso de Node.js puede tocar el sistema de archivos, la red y el entorno. Así es como puedes eliminarla con lockdown, compartments y el paso explícito de capabilities.

Una sola dependencia transitiva comprometida puede exfiltrar tu , escribir en tu sistema de archivos y abrir conexiones salientes. No necesita una…

La proximidad de red no es identidad: cómo los servicios se autentican sin autoridad ambiental

La mayoría de la confianza entre servicios viene de la ubicación en la red, no de la prueba criptográfica. Aquí explicamos cómo las capabilities, mTLS y SPIFFE permiten que los servicios se autentiquen sin autoridad ambiental, y por qué es más difícil de lo que debería.

Tus microservicios comparten una VPC, así que se confían entre sí. Esa confianza es autoridad ambiental: el permiso para invocar un servicio se otorga no por…