Artículos

  • Generales 0

    SQLx en Rust: queries SQL async tipadas en compilación, pool y migraciones

    SQLx es un cliente SQL async para Rust que verifica tus queries contra la base de datos en tiempo de compilación. Aprende a usar PgPool, query_as!, transacciones y migraciones con sqlx-cli en PostgreSQL, MySQL y SQLite.

  • Generales 0

    Swift 6: strict concurrency, complete checking y migración desde Swift 5

    Swift 6 convierte en errores los data races que Swift 5 solo avisaba. Aprende a activar complete concurrency checking, adaptar tus clases a Sendable, usar @preconcurrency con APIs antiguas, migrar con SWIFT_STRICT_CONCURRENCY por fases y especificar el tipo de error con typed throws.

  • Python 0

    Metaclases en Python: type, __init_subclass__, __class_getitem__ y registro de clases

    Guía práctica sobre metaclases en Python: crea clases con type, escribe metaclases propias con __new__, usa __init_subclass__ para casos más simples y __class_getitem__ para habilitar MiClase[tipo]. Incluye un sistema real de registro automático de plugins.

  • Otros lenguajes 0

    Tidyverse en R: dplyr para manipular datos y ggplot2 para visualizarlos

    El tidyverse es la colección de paquetes R más usada en análisis de datos. Aprende a manipular tablas con dplyr usando filter, mutate, group_by y summarise, y a crear visualizaciones con la gramática de gráficos de ggplot2.

  • PHP 0

    filter_var() y filter_input() en PHP: validar y sanitizar datos de entrada

    Aprende a usar filter_var() y filter_input() en PHP para validar emails, URLs, enteros con rango e IPs, y a sanitizar datos de formularios. Con ejemplos reales de formularios, el antipatrón de FILTER_SANITIZE_STRING y cuándo estas funciones no bastan.

  • Otros lenguajes 0

    Tipos y multiple dispatch en Julia: el sistema que hace que el código genérico sea rápido

    El multiple dispatch de Julia elige qué función ejecutar según los tipos de todos los argumentos, no solo del primero. Esto permite código genérico con rendimiento de código especializado: cómo funciona y por qué importa.

  • Javascript 0

    Turborepo con TypeScript: monorepo, paquetes compartidos tipados y pipeline de build

    Aprende a estructurar un monorepo TypeScript con Turborepo y pnpm workspaces. Paquetes compartidos tipados (@mi-org/ui, @mi-org/utils), tsconfig base reutilizable, pipeline de builds con dependencias automáticas y remote caching en Vercel.

  • Lua 0

    Tablas en Lua: la única estructura de datos que lo hace todo

    La tabla es la única estructura de datos de Lua y sirve como array, diccionario, objeto y módulo. Este artículo explica cómo funciona internamente, cómo iterar con ipairs y pairs, y los patrones más habituales para modelar datos complejos.

  • Erlang 0

    Tipos y pattern matching en Gleam: el sistema de tipos que evita errores en tiempo de compilación

    Gleam usa inferencia de tipos completa, sin null ni excepciones. Option y Result reemplazan los valores nulos y los try/catch. El pattern matching con case cubre todos los casos y el compilador lo verifica antes de ejecutar.

  • Generales 0

    golang.org/x/sync en Go: errgroup, semaphore y singleflight para concurrencia avanzada

    golang.org/x/sync amplía la librería estándar con tres utilidades concretas: errgroup para goroutines con propagación de errores y cancelación automática, semaphore.Weighted para limitar la concurrencia y singleflight para evitar consultas duplicadas bajo carga. Con ejemplos reales y antipa...