Artículos

  • C 0

    Compiladores de C en 2026: GCC 15, Clang 20 y TCC — diferencias y cuándo usar cada uno

    Comparativa de compiladores C en 2026: GCC 15 con C23 por defecto, Clang 20 con mejores diagnósticos y sanitizers, y TCC para compilación instantánea. Cuándo usar cada uno.

  • Scala 0

    Testing en Scala: ScalaTest, MUnit y ZIO Test en proyectos modernos

    ScalaTest, MUnit y ZIO Test son las tres opciones principales para testing en Scala. Comparativa práctica, property-based testing con ScalaCheck, integración con Cats Effect y ZIO, y guía para elegir según el proyecto.

  • BBDD 0

    pgvector en PostgreSQL: búsqueda vectorial para aplicaciones de IA sin salir de SQL

    pgvector añade el tipo vector(N) a PostgreSQL y operadores de distancia L2, coseno y producto escalar. Los índices HNSW (desde 0.5.0) e IVFFlat permiten búsqueda aproximada de vecinos más cercanos. Ideal para RAG sin montar otra base de datos.

  • C++ 0

    C++ para sistemas embebidos: bare metal, no-std y qué del lenguaje funciona en microcontroladores

    C++ funciona en microcontroladores sin sistema operativo, pero hay que saber qué deshabilitar: excepciones, RTTI, heap dinámico. Guia de flags, placement new, constexpr y herramientas para bare metal.

  • C 0

    C y Python: extender Python con módulos C usando la C API y ctypes

    Aprende a acelerar Python con C: ctypes para llamar a bibliotecas .so sin recompilar, la Python C API para módulos nativos, y cffi como alternativa moderna. Ejemplos reales.

  • Scala 0

    Scala.js y Scala Native: Scala fuera de la JVM en 2026

    Scala.js compila a JavaScript para el navegador o Node.js. Scala Native usa LLVM para ejecutables sin JVM. Facades tipadas, módulos multiplataforma, mejoras de Scala Native 0.5 y casos de uso reales.

  • BBDD 0

    Particionamiento de tablas en PostgreSQL: cuándo y cómo hacerlo correctamente

    PostgreSQL soporta particionamiento por RANGE, LIST y HASH desde la versión 10. Partition pruning elimina automáticamente las particiones irrelevantes. Permite eliminar datos históricos con DROP PARTITION en lugar de DELETE masivos lentos.

  • C++ 0

    Sanitizers en C++: AddressSanitizer, UBSan y ThreadSanitizer para cazar bugs

    AddressSanitizer detecta accesos inválidos a memoria, UBSan atrapa comportamiento indefinido y ThreadSanitizer encuentra data races. Guía práctica con flags, ejemplos de output y uso con CMake.

  • C 0

    Debugging en C: gdb, AddressSanitizer y técnicas para encontrar bugs difíciles

    Guía práctica de debugging en C: comandos esenciales de gdb, core dumps, watchpoints, AddressSanitizer para memoria y UBSan para comportamiento indefinido con ejemplos reales.

  • Scala 0

    Enums y pattern matching en Scala 3: ADTs, sealed traits y exhaustividad en la práctica

    Scala 3 introduce enums propios del lenguaje y mejora el pattern matching con verificación de exhaustividad. ADTs con sealed trait, guards, @-binding, match expressions y modelado de errores como valores.