Artículos

  • Javascript 0

    Proxy y Reflect en JavaScript: traps, metaprogramación y patrones prácticos

    Aprende a usar Proxy y Reflect en JavaScript para interceptar operaciones sobre objetos y funciones. Con ejemplos reales: validación de propiedades, objetos observables tipo Vue, conversión automática de snake_case a camelCase y memoización transparente.

  • Javascript 0

    Generators e iterators en JavaScript: function*, Symbol.iterator y async generators

    Aprende a crear generadores en JavaScript con function* y yield, implementar el protocolo iterable con Symbol.iterator y construir secuencias infinitas sin ocupar memoria. Incluye async generators con for await...of para paginación lazy y pipelines de transformación de datos.

  • Javascript 0

    Async/await avanzado en JavaScript: patrones paralelo/secuencial, error handling y cancelación

    Domina async/await más allá del caso básico: peticiones en paralelo con Promise.all, manejo de errores con try/catch o un helper seguro, iteración de flujos con for await...of y cancelación de operaciones con AbortController. Con ejemplos reales y antipatrones comunes.

  • Ruby 0

    Hanami 2 y Roda: alternativas a Rails para APIs y proyectos más ligeros en Ruby

    Hanami 2 apuesta por inyección de dependencias explícita y arquitectura limpia. Roda es un micro-framework de routing en árbol, minimalista y muy rápido. Te explicamos cuándo tienen sentido frente a Rails y cuáles son sus diferencias reales.

  • Javascript 0

    Promises avanzadas en JavaScript: Promise.all, allSettled, race, any y patrones de composición

    Aprende a coordinar múltiples operaciones asíncronas con Promise.all, allSettled, race y any en JavaScript. Cuándo usar cada método, cómo implementar un timeout con Promise.race y cómo limitar la concurrencia para no saturar tu servidor.

  • Javascript 0

    Debounce y throttle en JavaScript: controlar la frecuencia de eventos

    Debounce y throttle son las dos técnicas para controlar la frecuencia de eventos en JavaScript. Debounce espera a que el usuario deje de actuar; throttle limita las ejecuciones a una cada N ms. Implementación desde cero con closures, requestAnimationFrame y el error más habitual al usarlos.

  • Ruby 0

    Kamal 2 en 2026: despliegue de Rails con Docker sin Heroku ni PaaS

    Kamal 2 es la herramienta de 37signals para desplegar Rails con Docker en servidores propios. Gestiona zero downtime, accessories como Redis y MySQL, y variables de entorno. Rails 8 lo incluye por defecto.

  • Javascript 0

    Scope en JavaScript: global, función, bloque y la temporal dead zone

    Aprende cómo funciona el scope en JavaScript: global, función y bloque. Entiende la scope chain, la temporal dead zone de let y const, cómo se usan los closures y el patrón IIFE, con ejemplos de código reales y el bug más clásico explicado paso a paso.

  • Javascript 0

    localStorage y sessionStorage en JavaScript: persistencia en el navegador

    localStorage guarda datos en el navegador de forma permanente entre sesiones; sessionStorage solo dura mientras la pestaña está abierta. Aprende setItem, getItem, cómo serializar objetos con JSON.stringify, cuándo preferir cookies y cómo evitar los errores típicos en SSR y modo incógnito.

  • Ruby 0

    Autenticación en Rails 8: el generator nativo que llega sin Devise

    Rails 8 incluye un generator de autenticación nativo que crea modelos User y Session, controladores y vistas sin Devise. Te explicamos qué genera, cómo funciona y cuándo sigue teniendo sentido usar Devise o Rodauth.