Software espacial: desafíos y soluciones para la misión

El software para misiones espaciales enfrenta desafíos únicos que exigen una arquitectura radicalmente diferente a la utilizada en entornos terrestres. A diferencia de los servidores en un centro de datos, donde el rendimiento lento se puede solucionar agregando más recursos, los sistemas espaciales

Logs: Pensar en los usuarios, no solo en programadores

En el desarrollo de software, es común que los programadores se enfoquen en crear mensajes de registro (logs) pensando en su propia conveniencia para depurar y comprender el estado del programa. Sin embargo, un punto crucial, a menudo pasado por alto, es que la mayoría de los mensajes de registro de

Go: Contextos cancelados, ahora con más detalles

En Go, los errores de contexto cancelado o vencido son comunes, pero a menudo carecen de información crucial sobre la causa subyacente. Esto dificulta la depuración y la respuesta a incidentes en producción. El artículo aborda este problema, introduciendo las funciones `WithCancelCause` (Go 1.20) y

Errores en software: clasificados y mejor gestionados

En el desarrollo de software, la gestión de errores es crucial para la experiencia del usuario y la fiabilidad del sistema. Evan Hahn, en su artículo, propone una clasificación fundamental de los errores en dos categorías: **errores esperados** y **errores inesperados**. Esta distinción, aunque apar

Go: Debate sobre 'try' para Simplificar el Manejo de Errores

La comunidad de desarrolladores de Go debate la inclusión de una característica 'try' para el manejo de errores, similar a la que existe en lenguajes como Zig y Rust. Actualmente, Go requiere una estructura verbosa `if err != nil` para verificar errores, lo que ha generado frustración entre algunos

Rust: Diseña con Tipos, Evita Validaciones

Este artículo, originalmente escrito en Haskell y ahora adaptado a Rust, introduce un patrón de diseño llamado "Parse, don't Validate" y el diseño impulsado por tipos (Type-Driven Design). La idea central es evitar funciones de validación explícitas y, en su lugar, codificar las restricciones y gara

Kernel Oops: Guía para depurar errores en Linux

En el mundo del desarrollo de software, especialmente en sistemas operativos como Linux, los errores son inevitables. Un 'Kernel Oops' es un tipo de error que, a diferencia de un 'Kernel Panic' (que provoca un fallo del sistema), permite que el kernel se recupere. Este artículo explica cómo depurar

Zig: Manejo de errores con 'Error Payloads'

Este artículo del blog de srcreigh.ca introduce una técnica innovadora para el manejo de errores en el lenguaje de programación Zig, llamada "Error Payloads". En esencia, Zig permite definir tipos de datos personalizados para representar errores, que incluyen información adicional (el "payload") jun