Artículos

  • Java 0

    Caché semántica con Spring AI y pgvector para reducir el coste de llamadas a LLM

    Aprende a montar una caché semántica en Java con Spring AI y pgvector. Así reutilizas respuestas de LLMs como OpenAI o Anthropic cuando las preguntas son parecidas y reduces el gasto en tokens.

  • Python 0

    Procesamiento de ficheros EPUB con Python: parsear, modificar y reconstruir

    Aprende a abrir, leer y modificar ficheros EPUB con Python usando ebooklib y BeautifulSoup: extrae texto, cambia metadatos, reemplaza imágenes y reconstruye el libro desde cero.

  • C# 0

    Records y pattern matching en C#: tipos inmutables y código más expresivo

    Los records de C# 9 son tipos inmutables con igualdad por valor que simplifican los modelos de datos. Combinados con el pattern matching moderno, permiten escribir código más claro y seguro sin renunciar a la expresividad.

  • Java 0

    Testing en Java en 2026: JUnit 5, Mockito y la cultura de tests que funciona

    Guía práctica de JUnit 5 y Mockito para escribir tests en Java que realmente detectan errores: estructura de módulos, mocks, tests parametrizados, integración con Spring Boot y cobertura con JaCoCo.

  • Javascript 0

    Spread y rest operators en JavaScript: tres puntos que lo cambian todo

    El operador ... en JavaScript actúa como rest cuando recoge parámetros sobrantes en un array, y como spread cuando expande iterables en argumentos, arrays u objetos. Aprende a clonar, fusionar y evitar el error de la copia superficial con ejemplos prácticos.

  • Generales 0

    match en Rust: pattern matching exhaustivo y potente

    Aprende a usar match en Rust: el compilador obliga a cubrir todos los casos posibles y eso elimina bugs enteros. Patrones con rangos, enums con datos, desestructuración, múltiples patrones con |, guards con if y match como expresión que devuelve valor.

  • Python 0

    Funciones lambda en Python: cuándo usarlas y cuándo no

    Las lambdas en Python son funciones anónimas de una expresión. Aprende cuándo usarlas con sorted(), filter() y closures, cuándo un def es mejor opción y cómo evitar el bug clásico de captura de variables en bucles.

  • PHP 0

    htmlspecialchars y strip_tags en PHP: sanitizar HTML correctamente

    Guía práctica de htmlspecialchars() y strip_tags() en PHP. Cuándo usar ENT_QUOTES para prevenir XSS, cómo funciona htmlspecialchars_decode, por qué strip_tags no basta como barrera de seguridad y el peligro de los event handlers en etiquetas permitidas.

  • Generales 0

    Manejo de errores en V sin excepciones: Option, Result, or y el operador !

    Tercera entrega de la serie sobre V: como el lenguaje resuelve los errores sin try/catch, con los tipos Result y Option integrados en la firma de la funcion, el bloque or obligatorio y la propagacion con el operador !.

  • Javascript 0

    Destructuring en JavaScript: extraer valores de arrays y objetos sin repetición

    Aprende a extraer valores de arrays y objetos en JavaScript con destructuring en una sola línea. Cubre saltar elementos, rest, renombrado, valores por defecto, parámetros de función, destructuring anidado y casos reales con respuestas de API.