Artículos

  • Scala 0

    Sistema de tipos en Scala 3: union types, intersection types, opaque types y match types

    Scala 3 amplía el sistema de tipos con union types (A | B), intersection types (A & B), opaque types para abstracción sin coste y match types para metaprogramación. Ejemplos prácticos de cada uno.

  • BBDD 0

    Funciones de ventana en SQL: ROW_NUMBER, RANK, LAG y LEAD en la práctica

    Las funciones de ventana calculan sobre conjuntos de filas relacionadas sin colapsar el resultado. ROW_NUMBER, RANK, DENSE_RANK, LAG y LEAD resuelven patrones habituales de análisis que con GROUP BY serían mucho más complejos.

  • C++ 0

    std::ranges en C++20/23: pipelines de datos sin bucles manuales

    std::ranges y las vistas de C++20/23 permiten construir pipelines de transformación de datos con el operador |. Aprende filter, transform, take, zip y las novedades de C++23.

  • Javascript 0

    WeakRef y FinalizationRegistry en JavaScript: referencias débiles y gestión de memoria

    WeakRef y FinalizationRegistry, introducidos en ES2021, permiten trabajar con referencias débiles en JavaScript. WeakRef.deref() devuelve el objeto o undefined si el GC ya lo recogió. FinalizationRegistry ejecuta un callback al liberar el objeto. Útiles en cachés que no deben retener memoria,...

  • Generales 0

    RefCell y Cell en Rust: mutabilidad interior y el borrow checker en runtime

    Cell y RefCell en Rust permiten modificar datos a través de referencias inmutables. Cell trabaja con tipos Copy sin overhead; RefCell aplica las reglas del borrow checker en runtime y entra en pánico si las viola. Incluye el patrón Rc con RefCell para múltiples propietarios.

  • Python 0

    asyncio avanzado: gather, TaskGroup, Queue y sincronización en Python async

    Aprende a usar asyncio.gather(), TaskGroup, asyncio.Queue y Semaphore en Python para lanzar múltiples coroutines en paralelo, limitar la concurrencia y comunicar tareas entre sí sin bloquear el loop de eventos. Con ejemplos reales y el antipatrón más común.

  • PHP 0

    preg_split() en PHP: dividir cadenas con patrones complejos

    Aprende a usar preg_split() en PHP para dividir cadenas con un patrón regex como delimitador. Flags PREG_SPLIT_NO_EMPTY y PREG_SPLIT_DELIM_CAPTURE explicados con ejemplos reales. Cuándo usar preg_split y cuándo seguir con explode o str_split.

  • Javascript 0

    Proxy y Reflect en JavaScript: traps, metaprogramación y patrones prácticos

    Aprende a usar Proxy y Reflect en JavaScript para interceptar operaciones sobre objetos y funciones. Con ejemplos reales: validación de propiedades, objetos observables tipo Vue, conversión automática de snake_case a camelCase y memoización transparente.

  • Generales 0

    Rc y Arc en Rust: múltiple ownership con conteo de referencias

    Aprende a usar Rc y Arc en Rust para compartir ownership entre varios propietarios. Ejemplos de Rc::clone, Arc::Mutex para concurrencia, Weak para romper ciclos de referencia y el error de compilación que verás si mezclas Rc con hilos.

  • Python 0

    asyncio en Python: async/await, coroutines y el event loop explicados

    Aprende a usar asyncio en Python para escribir código asíncrono que no bloquea el hilo. Qué son las coroutines, cómo funcionan async/await, asyncio.gather() y create_task(), y cuándo tiene sentido asyncio (I/O-bound) frente a threads o multiprocessing (CPU-bound).