# Baumannzone > Web personal y blog de Jorge Baumann (@baumannzone), con contenido en español sobre programación y desarrollo web. Jorge Baumann es Senior Full Stack Developer. Ingeniero de software y divulgador de contenido. Speaker. Apasionado del desarrollo web y del fitness. El blog incluye artículos, tutoriales y demos sobre JavaScript, HTML, CSS, testing y otras herramientas de desarrollo. La web también reúne charlas, lecturas y el equipo que utiliza su autor. ## Secciones principales - [Inicio](https://www.baumannzone.dev/): Presentación del autor y artículos recientes. - [Sobre mí](https://www.baumannzone.dev/about/): Perfil y trayectoria de Jorge Baumann. - [Blog](https://www.baumannzone.dev/blog/): Artículos y tutoriales de programación y desarrollo web. - [Temas](https://www.baumannzone.dev/tags/): Contenido agrupado por etiquetas. - [Charlas](https://www.baumannzone.dev/talks/): Participaciones en eventos y materiales de las charlas. - [Libros](https://www.baumannzone.dev/books/): Lecturas sobre programación, desarrollo personal y novelas, incluidas lecturas pendientes. - [Setup](https://www.baumannzone.dev/uses/): Equipo, herramientas y accesorios que utiliza el autor. ## Perfiles públicos - [GitHub](https://github.com/baumannzone): Repositorios y proyectos. - [LinkedIn](https://www.linkedin.com/in/baumannzone/): Perfil profesional. - [X](https://twitter.com/baumannzone): Perfil de @baumannzone. - [YouTube](https://youtube.com/RambitoJS): Canal RambitoJS. ## Artículos - [text-box en CSS: recorta el espacio sobrante del texto](https://www.baumannzone.dev/blog/text-box-en-css-recorta-el-espacio-sobrante-del-texto/): No conocía text-box ni de lejos. Una línea de CSS que elimina el espacio invisible sobre y bajo el texto para que tus botones queden centrados de verdad. - [DirtyBlanket: un gusano de Linux escondido en falsos paquetes de Express](https://www.baumannzone.dev/blog/dirtyblanket-un-gusano-de-linux-escondido-en-falsos-paquetes-de-express/): Nueve paquetes de npm que imitan a Express y React instalan una puerta trasera en Linux y se propagan solos por SSH, AUR y npm. Qué ha pasado, cómo funciona y cómo comprobar si te afecta. - [Un nombre de Gmail puede estar ocupado aunque el correo rebote](https://www.baumannzone.dev/blog/un-nombre-de-gmail-puede-estar-ocupado-aunque-el-correo-rebote/): Por qué Gmail puede rechazar un nombre de usuario aunque los mensajes enviados a esa dirección no lleguen. - [main vs mainChannel en MUI: mismo color, distinto formato](https://www.baumannzone.dev/blog/mui-mainchannel-para-opacidad-en-css/): Al revisar código generado por IA en un proyecto React con MUI, descubrí por qué main y mainChannel usan formatos distintos. - [La IA y el empleo de los ingenieros de software: qué dicen los datos](https://www.baumannzone.dev/blog/la-ia-y-el-empleo-de-los-ingenieros-de-software-que-dicen-los-datos/): ¿La IA nos va a quitar el trabajo? Despidos que no siempre eran por IA, un 180 % más de commits y solo un 30 % más de releases. Mi lectura de los datos. - [git history: el nuevo comando experimental de Git para reescribir commits](https://www.baumannzone.dev/blog/git-history-el-nuevo-comando-experimental-para-reescribir-commits-de-git/): Corrige, renombra, divide o elimina un commit concreto sin abrir un rebase interactivo. Así funciona git history, el nuevo comando experimental de Git. - [Cómo dar mejor contexto a un agente de IA para programar](https://www.baumannzone.dev/blog/como-dar-mejor-contexto-a-un-agente-de-ia-para-programar/): Una guía práctica para dar mejor contexto a un agente de IA al programar, reducir errores y conseguir respuestas más útiles desde el primer intento. - [Beneficios de dar charlas como developer](https://www.baumannzone.dev/blog/beneficios-de-dar-charlas-como-developer/): Descubre cómo dar charlas técnicas puede transformar tu carrera como desarrollador, mejorando tus habilidades de comunicación, ampliando tu red profesional y posicionándote como líder de opinión en la comunidad tech. - [RSL: el nuevo estándar que quiere que la IA pague por tu contenido](https://www.baumannzone.dev/blog/rsl-el-nuevo-estandar-que-quiere-que-la-ia-pague-por-tu-contenido/): Reddit, Yahoo y Medium se suman a RSL (Really Simple Licensing), el nuevo estándar que busca que las empresas de IA paguen por entrenar con el contenido de creadores y medios. - [Enlaces de afiliados bien etiquetados con 'sponsored'](https://www.baumannzone.dev/blog/enlaces-de-afiliados-bien-etiquetados-con-sponsored/): Mejora tu SEO marcando enlaces de afiliados como patrocinados. Google te lo agradecerá. - [Haz accesible el contenido de los pseudo-elementos ::marker en CSS](https://www.baumannzone.dev/blog/haz-accesible-el-contenido-de-los-pseudo-elementos-marker-en-css/): Cómo personalizar ::marker en sin romper la accesibilidad. Descubre cómo usar content con texto alternativo o incluso ocultarlo a los lectores de pantalla. - [Acordeones nativos en HTML sin una línea de JavaScript](https://www.baumannzone.dev/blog/acordeones-nativos-en-html-sin-una-linea-de-javascript/): Aprende a crear acordeones accesibles y funcionales utilizando solo HTML, sin necesidad de JavaScript - [Personaliza ::marker en CSS sin romper la accesibilidad](https://www.baumannzone.dev/blog/personaliza-marker-en-css-sin-romper-la-accesibilidad/): Aprende a personalizar ::marker en CSS sin romper la accesibilidad, separando el contenido visual de lo que leen los lectores de pantalla. - [La sintaxis secreta de `of S` en `:nth-child()` que probablemente estás ignorando](https://www.baumannzone.dev/blog/la-sintaxis-secreta-de-of-s-en-nth-child-que-probablemente-estas-ignorando/): Descubre cómo usar `:nth-child(of S)` para seleccionar elementos con una precisión quirúrgica digna de CSS moderno y evita errores comunes que ni sabías que estabas cometiendo. - [Si solo escribes código, no estás haciendo suficiente (según esta métrica)](https://www.baumannzone.dev/blog/si-solo-escribes-codigo-no-estas-haciendo-suficiente-segun-esta-metrica/): ¿Estás aportando o solo 'pasando la bola'? Una reflexión práctica sobre cómo pequeñas acciones proactivas pueden marcar la diferencia en la calidad del código y en la eficiencia de tu equipo. - [Doble igual (==) vs triple igual (===) en JavaScript](https://www.baumannzone.dev/blog/doble-igual-vs-triple-igual-en-javascript/): ¿Usas == y === como si fueran lo mismo? ¡Alto ahí, developer! ⚠️ Aprende la diferencia entre el operador de igualdad y el operador de identidad en JavaScript. - [RIP styled-components: 2016–2025 💅](https://www.baumannzone.dev/blog/rip-styled-components-2016-2025/): Una despedida breve para una herramienta que nunca terminó de convencerme. No habrá más features y tampoco lágrimas. - [Personaliza cómo se ven los objetos en las DevTools](https://www.baumannzone.dev/blog/personaliza-como-se-ven-los-objetos-en-las-devtools/): Aprende a usar Custom Object Formatters para hacer que tus objetos en la consola de DevTools se vean más bonitos, útiles y fáciles de entender. - [Una década con JavaScript y no sabía esto sobre los bucles](https://www.baumannzone.dev/blog/una-decada-con-javascript-y-no-sabia-esto-sobre-los-bucles/): Aprende a usar break y continue de manera más efectiva con Vegeta 😏. Descubre cómo las etiquetas (labels) te permiten mejorar el flujo de tus bucles en JavaScript. - [Las 20 mejores fuentes para videojuegos en 2025](https://www.baumannzone.dev/blog/20-mejores-fuentes-para-videojuegos-en-2025/): Descubre las 20 fuentes más épicas para videojuegos en 2025. Desde estilos retro pixelados hasta tipografías futuristas, estas fuentes llevarán tu diseño al siguiente nivel. - [Cómo obtener la URL actual con JavaScript (y sacarle provecho)](https://www.baumannzone.dev/blog/como-obtener-la-url-actual-con-javascript-y-sacarle-provecho/): Aprende a usar window.location para leer, descomponer y manipular URLs en el navegador sin dependencias externas. - [Qué es la función round() en CSS: redondeo dinámico](https://www.baumannzone.dev/blog/que-es-la-funcion-round-en-css-redondeo-dinamico-en-css/): Descubre qué es y cómo utilizar la función round() en CSS para manejar valores de manera dinámica. Aprende a redondear hacia arriba, hacia abajo (o hacia cero). ¡Potencia tu CSS con esta nueva función matemática! - [Creando un clon de Hacker News con Alpine.js y Tailwind CSS](https://www.baumannzone.dev/blog/creando-un-clon-de-hacker-news-con-alpinejs-y-tailwind-css/): Aprende a construir un clon minimalista de Hacker News utilizando Alpine.js y Tailwind CSS. Descubre cómo combinar estas herramientas para crear aplicaciones web modernas y sencillas. - [Git Tower: el GUI de Git más potente para macOS y Windows](https://www.baumannzone.dev/blog/git-tower-el-gui-de-git-mas-potente-para-macos-y-windows/): Conoce Git Tower, un cliente Git para macOS y Windows que te ayuda a trabajar con repositorios Git de forma sencilla y que te hará ser mejor programador. - [Fragmentos de texto en URLs: navegación exacta sin anclas](https://www.baumannzone.dev/blog/fragmentos-de-texto-en-urls-navegacion-exacta-sin-anclas/): Los Fragmentos de Texto llevan la precisión de los enlaces web al siguiente nivel. Ya no necesitas IDs ni anclas (anchor) para dirigir a tus usuarios al contenido exacto de una página: resalta el texto clave y mejora la experiencia de navegación. Descubre cómo implementar esta técnica para crear enlaces más útiles y directos. - [Controla lo que los motores de búsqueda rastrean en tu web: guía práctica de robots.txt](https://www.baumannzone.dev/blog/controla-lo-que-los-motores-de-busqueda-rastrean-en-tu-web-guia-practica-de-robots-txt/): Descubre cómo utilizar el archivo robots.txt para gestionar qué partes de tu sitio web son rastreadas por los motores de búsqueda, optimizando la indexación y protegiendo páginas sensibles. - [Evita que la pantalla se duerma con JavaScript: domina la Screen Wake Lock API](https://www.baumannzone.dev/blog/evita-que-la-pantalla-se-duerma-con-javascript-domina-la-screen-wake-lock-api/): JavaScript te permite mantener la pantalla despierta con la Screen Wake Lock API. Descubre cómo funciona y cómo puedes usarla en tus aplicaciones web. Mejora la UX con este sencillo truco. - [El bloque finally en JavaScript no es lo que parece](https://www.baumannzone.dev/blog/el-bloque-finally-en-javascript-no-es-lo-que-parece/): ¿Realmente sabes qué hace el bloque finally en un try catch? Descubre cómo funciona el bloque finally en JavaScript y por qué puede ser que lo estés usando mal. - [Qué son y cómo crear identificadores únicos (UUIDs) con JavaScript plano](https://www.baumannzone.dev/blog/que-son-y-como-crear-identificadores-unicos-uuids-con-javascript-plano/): Aprende a crear identificadores únicos y seguros en tus aplicaciones web con una simple línea de código y sin librerías externas. - [Entendiendo package.json: una guía para dummies](https://www.baumannzone.dev/blog/entendiendo-package-json-una-guia-para-dummies/): Este artículo te guía a través de los conceptos fundamentales del package.json, revisando sus propiedades esenciales y qué gestores de paquetes puedes usar. - [La gran mentira de letter-spacing en CSS que no sabías](https://www.baumannzone.dev/blog/la-gran-mentira-de-letter-spacing-en-css-que-no-sabias/): Te han mentido sobre letter-spacing en CSS. No funciona como crees. ¿Llevas años usando mal el espaciado de letras? Spoiler: sí. Este error silencioso está arruinando tu tipografía, y ni siquiera te diste cuenta. - [Cómo detectar el elemento con el foco en tiempo real](https://www.baumannzone.dev/blog/como-detectar-el-elemento-con-el-foco-en-tiempo-real/): Aprende a usar las "live expressions" de la consola de tu navegador para detectar qué elemento HTML tiene el focus en tiempo real. - [NaN en JavaScript: guía rápida para desarrolladores](https://www.baumannzone.dev/blog/nan-en-javascript-guia-rapida/): ¿Qué es NaN en JavaScript? En esta cheatsheet te explico todo lo que necesitas saber sobre NaN en JavaScript y cómo se generan los valores NaN en JavaScript. - [No uses Google Analytics nunca más](https://www.baumannzone.dev/blog/no-uses-google-analytics-nunca-mas/): Google Analytics es una herramienta muy popular para medir el tráfico de un sitio web, pero también es una herramienta que viola la privacidad de los usuarios, no deberías usarla. Además te explico cómo puedes proteger la privacidad de tus usuarios y mejorar el rendimiento de tu web. - [Ejercicio para retrospectivas ágiles](https://www.baumannzone.dev/blog/ejercicio-para-retrospectivas-agile/): Descubre cómo una simple pregunta puede transformar la dinámica del equipo. Un ejercicio para tus retrospectivas ágiles que te dará una visión más clara de lo que está sucediendo en tu equipo. - [Top sitios web 2024](https://www.baumannzone.dev/blog/top-sitios-web-2024/): Mi selección personal de sitios web asombrosos. Aquí encontrarás una lista cuidadosamente curada de páginas que destacan por su diseño, funcionalidad o creatividad. - [Entendiendo Flow Layout en CSS](https://www.baumannzone.dev/blog/entendiendo-flow-layout-en-css/): CSS tiene un flujo de diseño por defecto que organiza los elementos en un orden específico. Aprende más sobre la base de la estructura visual de una página web. Conoce flow layout. - [La falacia del 100% Code Coverage](https://www.baumannzone.dev/blog/la-falacia-del-100-code-coverage/): ¿Qué relación tiene el queso Emmental con la generación Z, los unicornios y el testing con JavaScript? Te lo cuento. - [Dibujar con CSS](https://www.baumannzone.dev/blog/dibujar-con-css/): ¿Dibujar con CSS? Eso me preguntan a menudo. ¿En serio? ¿Por qué? ¿Quién lo necesita? ¿Quién lo quiere? ¿Quién lo pidió? No lo sé, pero aquí tienes mi opinión desde mi perspectiva personal y profesional. - [Pure CSS Arcade Machine 🕹️](https://www.baumannzone.dev/blog/pure-css-arcade-machine/): Dibujando una máquina arcade con CSS puro y duro. Sin imágenes ni SVGs. Solo CSS. ¿Te ves capaz de hacerlo? Incluye pacman animado. 👾 - [El arte del testing: una oda a las pruebas automáticas](https://www.baumannzone.dev/blog/el-arte-del-testing-una-oda-a-las-pruebas-automaticas/): Quieres saber qué es el testing y qué tipos de pruebas existen? En este artículo te lo explicamos. - [¿Qué son las IIFE en JavaScript y cómo funcionan?](https://www.baumannzone.dev/blog/que-son-las-iife-en-javascript-y-como-funcionan/): Las IIFE (Immediately Invoked Function Expression) son expresiones de funciones que se ejecutan inmediatamente después de ser creadas. En este artículo veremos cómo funcionan y cómo podemos usarlas. - [4 cursos de Machine Learning gratis](https://www.baumannzone.dev/blog/cursos-de-machine-learning-gratis/): 4 cursos de Machine Learning, totalmente gratuitos, que deberías empezar a hacer ahora mismo. - [Cómo programar publicaciones en Mastodon](https://www.baumannzone.dev/blog/como-programar-publicaciones-en-mastodon/): Guía completa para saber cómo programar publicaciones en Mastodon que se publiquen automáticamente. Configúralo en 3 minutos. - [Añadiendo comentarios al blog](https://www.baumannzone.dev/blog/a%C3%B1adiendo-comentarios-al-blog/): Añade comentarios a tu blog de forma sencilla y segura con una herramienta basada en la API de las issues de GitHub. - [Bordes con degradado en CSS](https://www.baumannzone.dev/blog/bordes-con-degradado-css/): Guía completa para saber cómo crear bordes con degradados y con imágenes en CSS - [Pure CSS Cake 🎂](https://www.baumannzone.dev/blog/pure-css-cake/): Dibujando una tarta de cumpleaños solo con HTML y CSS. ¡Incluye animaciones mágicas en la velita! ¿Has visto cómo se mueve? - [Mejora la UX: cursores en CSS](https://www.baumannzone.dev/blog/cursores-en-css/): Mejora la UX en tu sitio web. Conoce todos los cursores en CSS. Aprende a cambiar los cursores y mejora la experiencia de usuario de tu sitio web. ¿Los conoces todos? - [El juego del unicornio 🦄 - Solo CSS](https://www.baumannzone.dev/blog/el-juego-del-unicornio/): Crea un juego con CSS desde cero. El juego del unicornio es un mini juego creado completamente con CSS y HTML. ¿Es posible crear un juego con CSS? ¿Cuáles son los límites del lenguaje? - [Operador de doble signo de interrogación en JavaScript](https://www.baumannzone.dev/blog/doble-signo-de-interrogacion-en-javascript/): Una guía de cómo funciona el operador de doble interrogación (??) en JavaScript, también conocido como operador de Nullish Coalescing. - [Testing con Javascript](https://www.baumannzone.dev/blog/testing-con-javascript/): Introducción al testing con Javascript a través de ejemplos progresivos: de 0 a framework. Empieza con JavaScript. Finaliza usando Jest, un framework de testing para JavaScript - [About Testing](https://www.baumannzone.dev/blog/about-testing/): ¿Haces pruebas en tus aplicaciones web? ¿Deberías probar tu código de manera automática? Testing es un tema que no deberías pasar por alto. - [¿Sabías que tu navegador puede hablar?](https://www.baumannzone.dev/blog/sabias-que-tu-navegador-puede-hablar/): La API de voz del navegador te permite incorporar síntesis de voz en tus aplicaciones web. ¡Haz que tu navegador hable! - [👾 Pure CSS Game Boy](https://www.baumannzone.dev/blog/pure-css-gameboy/): Dibujando una Game Boy con HTML y CSS. Animación y sonido con JavaScript. ## Charlas, entrevistas y cursos - [Crea tu propio Mercadona con JavaScript](https://www.baumannzone.dev/talks/madrid-js-mercadona-javascript/): meetup en Madrid JS (2026-05-28). - [Crea tu propio Mercadona con JavaScript](https://www.baumannzone.dev/talks/codemotion-2026/): conferencia en Codemotion Madrid 2026 - La Nave (2026-04-20). - [Presentador en la Gala de Sirviendo Código](https://www.baumannzone.dev/talks/gala-sirviendo-codigo/): social en Gala Sirviendo Código 2025 (2025-11-01). - [Lo que no sabías que no sabías de tu navegador](https://www.baumannzone.dev/talks/lo-que-no-sabias-que-no-sabias-de-tu-navegador/): conferencia en Codemotion Madrid 2025 (2025-05-20). - [JavaScript, make tiktok great again](https://www.baumannzone.dev/talks/javascript-make-tiktok-great-again-t3chfest/): conferencia en T3chFest (2025-03-13). - [Entrevista con Jorge Baumann](https://www.baumannzone.dev/talks/entrevista-joppy/): artículo en Joppy (2024-11-29). - [Insights on Web Development, Tech Trends, and Careers Growth](https://www.baumannzone.dev/talks/talent-r-interview/): artículo en Talent-R Tech Talks (2024-10-30). - [JavaScript 🤝 TikTok](https://www.baumannzone.dev/talks/javascript-tiktok-morcilla/): conferencia en MorcillaConf (2024-10-05). - [JavaScript 🤝 TikTok](https://www.baumannzone.dev/talks/javascript-tiktok-devopsdays/): conferencia en DevOpsDays Cáceres (2024-10-03). - [Dominando el Frontend con Vue.js](https://www.baumannzone.dev/talks/freecodecamp-interview/): podcast en FreeCodeCamp (2024-06-19). - [No necesitas una APP para hacer eso](https://www.baumannzone.dev/talks/no-necesitas-una-app/): conferencia en Codemotion Madrid (2024-05-22). - [Cómo adentrarse en el mundo del desarrollo](https://www.baumannzone.dev/talks/samsung-dev-spain/): artículo en Samsung Dev Spain (2024-04-09). - [Ctrl + Your Career: Mejora tu empleabilidad](https://www.baumannzone.dev/talks/keepcoding-empleabilidad/): meetup en KeepCoding (2023-11-28). - [Dev Combat 2023](https://www.baumannzone.dev/talks/malt-dev-combat/): social en Malt España (2023-09-17). - [El arte del testing: una oda a las pruebas automáticas](https://www.baumannzone.dev/talks/samsung-testing/): artículo en Samsung Dev Spain (2023-05-15). - [Entrevista Jorge Baumann](https://www.baumannzone.dev/talks/jump2digital-interview/): podcast en Jump2Digital (2023-05-08). - [Construyendo un clon de Hacker News con Alpine.js y Tailwind CSS](https://www.baumannzone.dev/talks/alpine-hacker-news/): meetup en Campsite Academy (2023-03-09). - [Photoshop? Yo dibujo con CSS](https://www.baumannzone.dev/talks/medellin-css-drawing/): meetup en Medellin CSS (2021-06-19). - [CSS Battle](https://www.baumannzone.dev/talks/css-battle-dorian/): social en Dorian Designs (2021-04-01). - [WR 184: Dibujando con CSS](https://www.baumannzone.dev/talks/web-reactiva-css/): podcast en Web Reactiva (2021-03-23). - [Platicando de CSS con Jorge Baumann](https://www.baumannzone.dev/talks/capa-ocho-css/): podcast en Capa Ocho (2021-03-01). - [Lazy Load Routes in Vue with Webpack Dynamic Comments](https://www.baumannzone.dev/talks/lazy-load-routes-in-vue-css-tricks/): artículo en CSS Tricks (2021-02-04). - [Lo que no sabías que no sabías de tu navegador](https://www.baumannzone.dev/talks/codehouse-browser-features/): meetup en Codehouse Academy (2021-01-26). - [No sabía que podía hacer esto con el navegador](https://www.baumannzone.dev/talks/almeria-js-browser/): meetup en Almeria.js (2020-05-21). - [Vue.js avanzado](https://www.baumannzone.dev/talks/platzi-vue-course/): curso en Platzi (2020-03-28). - [¿Sabías que tu navegador puede hablar?](https://www.baumannzone.dev/talks/techparty-browser-speech/): conferencia en TechParty por HackMadrid (2019-09-14). - [¿A qué no sabías que tu navegador puede hablar?](https://www.baumannzone.dev/talks/google-io-browser-speech/): conferencia en Google I/O Extended (2019-05-07). - [Hugo Workshop](https://www.baumannzone.dev/talks/osw-hugo-workshop/): meetup en OSWeekends (2017-10-01). ## Optional - [Contenido completo](https://www.baumannzone.dev/llms-full.txt): Versión extendida de este índice con perfil, charlas, artículos y setup. - [RSS](https://www.baumannzone.dev/rss.xml): Feed de artículos publicados. - [Mapa del sitio](https://www.baumannzone.dev/sitemap-index.xml): Índice de las páginas del sitio. - [Patrocinio](https://www.baumannzone.dev/patrocinio/): Información sobre colaboraciones y apoyo al contenido.