Artículos

  • Python 0

    typing en Python: type hints, generics con TypeVar, Protocol y tipos avanzados

    Guía práctica del módulo typing de Python: type hints con list[int] y dict[str, Any], Optional y Union con la sintaxis moderna (|), TypeVar para funciones genéricas, Generic[T] para clases, Protocol para duck typing estructural sin herencia, Callable, Literal, Final y TYPE_CHECKING.

  • C 0

    Gestión de memoria en C: malloc, free, realloc y cómo encontrar fugas con Valgrind

    Domina malloc, calloc, realloc y free en C. Aprende a detectar fugas de memoria y errores de acceso con Valgrind --tool=memcheck con ejemplos prácticos.

  • PHP 0

    Regex avanzada en PHP: grupos con nombre, lookahead y lookbehind

    Aprende a usar regex avanzadas en PHP: grupos con nombre con sintaxis (?P), non-capturing groups, lookahead y lookbehind positivos y negativos, el modificador x para regex comentadas y los possessive quantifiers. Con ejemplos reales de validación de contraseñas, parseo de URLs y filtrado de logs.

  • 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.