Artículos

  • Otros lenguajes 0

    El ecosistema de paquetes de Julia: Pkg.jl y las librerías esenciales en 2026

    Pkg.jl gestiona paquetes con reproducibilidad total via Project.toml y Manifest.toml. Repaso a las librerías esenciales en 2026: DataFrames, Flux, DifferentialEquations, Turing, Symbolics y más de 10.000 paquetes registrados.

  • Lua 0

    Lua en Neovim: configurar y extender el editor con Lua en lugar de Vimscript

    Neovim adoptó Lua como lenguaje oficial de configuración desde la versión 0.5. Aprende a migrar de init.vim a init.lua, usar vim.opt y vim.keymap.set, instalar plugins con lazy.nvim y escribir tus propios plugins en Lua.

  • Erlang 0

    Ecosistema de paquetes en Gleam: Hex, gleam.toml y las librerías más útiles en 2026

    Gleam usa Hex, el gestor de paquetes compartido con Elixir y Erlang. El fichero gleam.toml gestiona las dependencias. Repaso de las librerías más usadas en 2026: gleam_stdlib, wisp, gleam_json, gleam_otp, birl, gleam_pgo y lustre.

  • Javascript 0

    Diagnóstico en Node.js: AsyncLocalStorage, diagnostics_channel, --prof y GC tracking

    Guía práctica de las herramientas de diagnóstico de Node.js: AsyncLocalStorage para propagar contexto por la cadena async sin pasar parámetros, diagnostics_channel para observabilidad desacoplada, --prof y --cpu-prof para profiling de CPU con V8, y GC tracking con PerformanceObserver, --expos...

  • Generales 0

    Profiling en Rust: cargo-flamegraph, perf y benchmarks con Criterion

    Guía práctica de profiling en Rust: benchmarks estadísticos con Criterion.rs y BenchmarkId, flamegraphs de CPU con cargo-flamegraph, profiling de memoria heap con DHAT y verificación del assembly generado con cargo-asm. Con 4 ejemplos reales y antipatrones habituales.

  • Generales 0

    Combine avanzado en Swift: publishers propios, Scheduler, share(), multicast y error handling

    Aprende a crear publishers propios conformando el protocolo Publisher, a controlar el hilo de ejecución con Scheduler, a compartir suscripciones con share() y multicast(), y a manejar errores con mapError(), catch() y retry(). Con ejemplos reales de Swift.

  • Python 0

    El módulo ast en Python: analizar, recorrer y modificar código Python como árbol de sintaxis

    Aprende a usar el módulo ast de Python para analizar y transformar código fuente como árbol de sintaxis abstracta. Ejemplos con NodeVisitor, NodeTransformer, linter personalizado y ast.literal_eval para evaluar expresiones de forma segura.

  • Javascript 0

    Node.js avanzado: child_process, worker_threads, Cluster y estrategias de escalado

    Aprende a escalar Node.js más allá del proceso único. Guía con ejemplos reales de child_process (spawn, exec, fork), worker_threads con SharedArrayBuffer para cálculos CPU-intensivos, módulo Cluster para compartir puerto entre instancias y PM2 para gestionar workers en producción.

  • Generales 0

    Configuración en Rust con config y figment: múltiples fuentes, entornos y validación

    Gestiona la configuración de tus aplicaciones Rust con los crates config y figment. Aprende a cargar valores desde ficheros TOML y variables de entorno, deserializar con serde a structs tipadas, organizar por entornos y validar con el crate validator.

  • Otros lenguajes 0

    Por qué medio ecosistema de software se está pasando a Rust (y quién se resiste)

    De Linux al APT de Debian pasando por Android, Microsoft y las herramientas de Python, Rust se ha colado en la base de medio ecosistema de software. Repasamos los datos reales detrás del cambio, lo que ha costado a quien lo ha intentado y cómo aguantan el envite Go, Zig, C++, Swift y Kotlin.