Artículos

  • Javascript 0

    El event loop en JavaScript: call stack, microtasks y macrotasks

    JavaScript es single-threaded, pero gestiona timers, eventos y promesas sin bloquearse gracias al event loop. Aprende qué es el call stack, la diferencia entre microtasks y macrotasks, y por qué las promesas tienen prioridad sobre setTimeout. Con 4 ejemplos con el orden de ejecución explicado ...

  • Generales 0

    Lifetimes en Rust: decirle al compilador cuánto viven las referencias

    Los lifetimes en Rust le dicen al compilador cuánto debe vivir cada referencia, algo que no siempre puede inferir solo. Aprende la sintaxis 'a, las reglas de elision y cómo anotar funciones y structs con cuatro ejemplos prácticos y errores reales del compilador.

  • Python 0

    Encadenamiento de excepciones en Python: raise from y preservar el contexto

    Aprende a encadenar excepciones en Python con raise X from Y y raise X from None. Diferencias entre __cause__ y __context__, cuándo suprimir el contexto y cuatro ejemplos prácticos: parseo de fechas, cliente de base de datos y cliente HTTP con jerarquía de errores propia.

  • PHP 0

    in_array, array_search y array_key_exists en PHP: buscar en arrays sin errores

    Guia sobre in_array(), array_search() y array_key_exists() en PHP: la trampa de comparacion debil sin strict, la diferencia entre isset y array_key_exists con valores null, y como usar array_flip para busquedas O(1) en arrays grandes. Con 4 ejemplos reales.

  • Javascript 0

    async/await en JavaScript: código asíncrono que parece síncrono

    async/await es azúcar sintáctico sobre Promises que hace el código asíncrono de JavaScript mucho más legible. Aprende cómo funciona async function, cómo manejar errores con try/catch, el peligro de await en bucles y cómo ejecutar promesas en paralelo con Promise.all.

  • Generales 0

    Trait bounds en Rust: restringir qué tipos acepta una función genérica

    Los trait bounds en Rust permiten restringir qué tipos acepta una función genérica. Aprende la sintaxis T: Trait, múltiples bounds con +, la cláusula where, impl Trait frente a T: Trait, blanket implementations y retorno de impl Trait, con ejemplos prácticos.

  • Generales 0

    OTP y GenServer en Elixir: la base de la concurrencia que no puedes ignorar

    OTP es el conjunto de abstracciones que hace de Elixir algo más que un lenguaje funcional bonito. GenServer, Supervisor y los árboles de supervisión son la base de todo sistema serio en la BEAM.

  • Python 0

    Excepciones propias en Python: jerarquías de errores con clases personalizadas

    Aprende a crear excepciones personalizadas en Python heredando de Exception, añadiendo atributos al __init__ y construyendo jerarquías de errores reutilizables. Con ejemplos reales de una librería de validación de datos y el patrón raise ... from para encadenarlas.

  • Generales 0

    Gestión de memoria en Zig: allocators, arenas y control total sin GC ni unsafe

    En Zig no hay GC ni heap implícito: cada función que necesita memoria recibe un allocator como parámetro. Aprende a usar GeneralPurposeAllocator, ArenaAllocator, FixedBufferAllocator y cómo combinarlos.

  • PHP 0

    array_walk y array_walk_recursive en PHP: modificar arrays en profundidad

    Aprende a usar array_walk y array_walk_recursive en PHP para modificar arrays in-place con un callback que recibe clave y valor. Incluye ejemplos con formularios, precios y catálogos anidados, y diferencias clave con array_map.