Ideas & Insights

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

Tus dependencias pueden leer cualquier archivo en disco. cap-std las obliga a pedir permiso.

La biblioteca estándar de Rust otorga autoridad de sistema de archivos ambiental a cada dependencia. cap-std la reemplaza con APIs basadas en capabilities que obligan al código a demostrar que tiene derecho a acceder a una ruta antes de abrirla.

Cualquier crate en tu árbol de dependencias puede abrir , escribir en tu directorio , o enumerar cada archivo en tu proyecto. La biblioteca estándar de Rust no…

Tu Servicio Es un Cómplice Inconsciente: Cómo Funcionan los Ataques de Confused Deputy

Un ataque de confused deputy engaña a un servicio privilegiado para que use su autoridad contra sí mismo. Así es como los atacantes explotan la confianza implícita, y por qué la seguridad basada en capabilities es la solución.

Tu servicio tiene una API key para tu almacenamiento en la nube. Un usuario envía una petición. Tu servicio escribe un archivo obedientemente. El archivo…

¿Y si cada función tuviera que recibir permiso en lugar de asumirlo?

La mayoría del código se ejecuta con autoridad ambiental: cada función puede tocar todo. La seguridad basada en capacidades invierte ese modelo al obligar a las funciones a recibir permisos explícitos y delimitados.

Tu función tiene acceso a la base de datos, la pasarela de pagos y el registry de auditoría porque resulta que vive en el mismo proceso. Si un atacante…

Deja de Lanzar Errores que tu Type Checker No Puede Ver

Las excepciones lanzadas ocultan los caminos de fallo de tu sistema de tipos. Aquí te explicamos por qué los retornos de error explícitos hacen tu código más honesto, y cómo adoptarlos sin odiar tu vida.

La firma de tu función dice que devuelve un . No es así. Devuelve un o explota. El sistema de tipos simplemente no sabe nada de la segunda branch. Esta es la…

El compilador debería detectar los casos de estado faltantes, no tu equipo de QA

Agregar un nuevo estado a tu máquina es fácil. Recordar actualizar cada switch no lo es. Así es como hacer que TypeScript se niegue a compilar cuando olvidas un caso.

Las state machines empiezan limpias. Tres valores, tres branches de . Después la lógica de reintento agrega un cuarto estado. El fallo parcial agrega un…

Sí, Pero Tu Sistema de Tipos Necesita Saber Qué Es un Dólar

TypeScript ve todos los números como idénticos. Así es como puedes enseñarle la diferencia entre USD y EUR para que el compilador detecte errores de conversión de divisas antes de que lleguen a producción.

En 2022, una importante plataforma fintech procesó una transferencia masiva de 32,700,000.00. El monto se almacenó como un simple. Un servicio downstream…

Un número no es solo un número: cómo hacer que el compilador detecte errores de unidades

Pasar milisegundos donde se esperaban segundos es un bug que pasa todas las pruebas. Así es cómo codificar unidades directamente en el sistema de tipos de TypeScript para que las confusiones fallen en tiempo de compilación con coste de ejecución cero.

Una función pide un timeout en milisegundos. Pasas . Más tarde, otra función pide un timeout en segundos. Pasas . En algún punto intermedio, llamas a y no pasa…