• Chat Control: la UE ha legalizado la vigilancia masiva

    ·

    9 de julio de 2026. Último día de pleno del Parlamento Europeo antes del receso de verano. La próxima sesión no es hasta el 14 de septiembre. Y justo ahí, en la última sesión antes de dos meses de silencio, se coloca la votación sobre una de las leyes más controvertidas de la historia digital europea. No es casualidad. Es estrategia. Qué es Chat Control y por qué debería importarte Si gestionas infraestructura, si tienes servidores, si prestas servicios de comunicación en Europa, o simplemente si usas internet para enviar un mensaje privado, esto te afecta. Chat Control no es… Seguir leyendo →

  • Evolución del método de desarrollo con IA

    ·

    Durante estos últmos 3 años mi relación con la inteligencia artificial para programar ha sido la de un aprendiz con un mentor distante. Le pedía cosas, él me las daba, y yo las insertaba a mano en mis proyectos. Funcionaba, pero no fluía. Lo que ha isod viniendo después no ha sido una revolución de un día para otro, sino una sucesión de pequeños virajes tecnológicos que me han empujado hacia un flujo de trabajo más autónomo, más rápido y, curiosamente, más local. La era del chat (2023-2025) Al principio, todo se reducía a una ventana de chat. Abría ChatGPT,… Seguir leyendo →

  • WordPress no necesita un MCP: usa la REST API

    ·

    Todo el mundo habla de MCP (Model Context Protocol) desde hace un tiempo. Anthropic lo presentó como el estándar universal para que las IA descubran y usen herramientas externas. Y el ecosistema WordPress se ha lanzado con entusiasmo: Automattic publicó wordpress-mcp, luego lo archivó en favor del oficial WordPress/mcp-adapter, WooCommerce tiene su propia integración MCP, y plugins como AI Engine de Meow Apps ya exponen endpoints MCP nativos. La narrativa puede parecer seductora: «Tu WordPress necesita un MCP server para que las IAs puedan interactuar con él». Pero cuando lo piensas un momento… ¿lo necesita? WordPress lleva desde la versión… Seguir leyendo →

  • QUERY como nuevo método HTTP (RFC 10008)

    ·

    Llevo años mintiendo con POST. En realidad todos llevamos haciéndolo desde casi siempre… Cualquiera que haya montado una API medianamente seria ha terminado usando POST para operaciones que, en realidad, solo querían leer. Un informe complejo en un panel de WordPress. Una búsqueda con diez filtros en WooCommerce. Una query de Elasticsearch tan larga que no cabe ni en un screen. La alternativa era un GET con una URL de cuatro mil caracteres. Una cadena de &meta_key[]=… que explota el límite de tu servidor web, ensucia los logs de Angie y acaba siendo rechazada por algún WAF conservador. No es… Seguir leyendo →

  • Detective para los bots de IA

    ·

    Los logs nunca mienten, pero tampoco cuentan toda la verdad a simple vista. Cada línea de acceso es una huella, una pisada en el pasillo de tu servidor. El problema es que ahora, además de los visitantes humanos y los rastreadores clásicos, hay una plaga nueva: los bots de inteligencia artificial. Y no vienen a comprar. Vienen a entrenar. La puerta giratoria Gestiono centenares de sitios web. En los últimos meses, el tráfico «no humano» ha explotado. No es solo Googlebot ni Bingbot. Ahora hay decenas de actores (OpenAI, Anthropic, ByteDance, Perplexity, Amazon, Apple, Meta…) rastreando todo lo que publicamos… Seguir leyendo →

  • Por qué mi código ya no vive en GitHub

    ·

    Durante años, GitHub fue mi herramienta por defecto. Repos, pull requests… lo tenía todo. Y lo sigue teniendo. Pero hace tiempo que mis proyectos se alojaron en mi propio Forgejo, y no pienso volver. El problema no era funcional (que también). Era legal. La letra pequeña que nadie lee GitHub es propiedad de Microsoft. Empresa estadounidense. Sujeta al CLOUD Act, esa ley de 2018 que permite al gobierno de EE.UU. exigir a cualquier empresa estadounidense que entregue datos,dondequiera que estén almacenados, con una simple orden judicial. No importa que tus repos estén en un datacenter de Ámsterdam. Si el proveedor… Seguir leyendo →

  • Baremetal virtualizado vs. VPS

    ·

    Pongámonos en situación. Tienes varios proyectos web o varios clientes, cada uno con su VPS en un proveedor «de confianza». Uno peta en madrugada porque el vecino de tu VPS tuvo un pico de tráfico. Otro va lento los lunes porque el proveedor tiene mantenimiento programado y no te enteraste. Y el tercero… bueno, el tercero va bien, pero cuando necesitas escalar, te cobran como si fuera oro. Esto no es infraestructura. Es ruleta rusa con factura mensual. Pero vayamos más allá de la anécdota. Detrás de ese VPS «barato» hay una realidad que nadie te cuenta en la landing… Seguir leyendo →

  • Por qué uso Angie en vez de Nginx

    ·

    Todo el mundo usa Nginx. Yo uso Angie. No es un acto de rebeldía. No es ignorancia. Es una decisión consciente después de evaluar qué ofrece cada uno. Y después de meses usándola en producción, no tengo intención de volver. Qué es Angie Angie es un servidor web fork de Nginx, mantenido por Angie Software (Web Server, LLC), una empresa fundada por desarrolladores que trabajaron en el proyecto Nginx original con Igor Sysoev. En 2019, F5 Networks, una empresa americana, adquirió Nginx Inc. Algunos de los desarrolladores originales decidieron continuar por su cuenta. Así nació Angie. En esencia, es Nginx.… Seguir leyendo →

  • Por qué no uso Cloudflare (y por qué lo entiendo)

    ·

    Todos me preguntan lo mismo cuando ven mi infraestructura: «¿Pero no usas Cloudflare?» Mi respuesta corta: no. Mi respuesta larga: es complicado. Y este artículo es la respuesta larga. Lo que Cloudflare hace bien Voy a ser justo. Cloudflare es una herramienta impresionante. Su red anycast cubre más de 300 ciudades. Su protección DDoS es genuina, no el «filtramos el tráfico malo» de otros, sino capacidad real para absorber ataques de varios terabits por segundo. Sus Workers son un entorno serverless sorprendentemente cómodo. Su DNS es rápido y fiable. Argo Tunnel te permite exponer servicios sin abrir puertos. R2 es… Seguir leyendo →

  • PHPStan nivel 9

    ·

    Escribir código PHP que funciona no es difícil. Escribir código PHP que no va a fallar en producción con un tipo inesperado, una propiedad no inicializada o un array al que le falta una clave: eso es otra historia. PHP te deja hacer cosas que no debería. Mezclar tipos, acceder a propiedades que quizá no existen, llamar métodos sobre null sin pestañear. Y el día que algo falla en un sitio con tráfico real, el error no aparece en desarrollo, aparece en el debug.log a las 3 de la mañana con un stack trace que no te esperabas. PHPStan es… Seguir leyendo →

  • Buenas prácticas al crear un plugin de WordPress

    ·

    Hay una diferencia enorme entre un plugin que funciona y un plugin que no te va a dar problemas dentro de seis meses. La he aprendido a base de ver plugins ajenos romper sitios en producción y de haber escrito código que yo mismo no quería mantener. Estas son las prácticas que aplico ahora mismo en cada plugin que toco. No son teoría. Son las cosas que te ahorran madrugadas. Arquitectura: menos es más Lo primero: usa clases, no funciones sueltas en un archivo gigante. Un plugin con mi_plugin_init(), mi_plugin_save(), mi_plugin_render() y 42 funciones globales es un mantenimiento infernal. Una… Seguir leyendo →

  • The WordPress Way

    ·

    Hay una frase que me reconforta cada vez que la digo en voz alta: no es un bug, es una feature. El problema es que, en WordPress, muchas veces el bug somos nosotros. Llegamos con nuestras prisas, nuestro acceso root y nuestra confianza de que sabemos cómo funciona una web, y le damos la vuelta a un sistema que, en realidad, ya tenía un camino marcado. Un camino que, si lo respetas, te devuelve la cordura los lunes por la mañana. Hace unos meses un cliente me escribió en pánico. Había cambiado de theme porque le gustaba más el azul… Seguir leyendo →

  • El stack que montamos para los WordPress

    ·

    Cuándo alguien te dice que tiene un WordPress «en un VPS», suele significar una de dos cosas: o le ha instalado un panel de esos que te dan tres botones y una ilusión de control, o ha hecho una especie de apt install wordpress (ya lo sé, no existe, pero molaría) y reza cada noche para que nadie toque nada. Ninguna de las dos me convence. Llevamos años afinando un stack para WordPress que no usa paneles, no usa plugins milagrosos y no requiere que el cliente sepa qué es un daemon. La idea es simple: montar infraestructura transparente, estándar… Seguir leyendo →

  • Tu redirección HTTP → HTTPS cross-domain está mal

    ·

    Ya son varios los SEO (que van de listos) que me han dicho que nuestra configuración de redirects era «ineficiente». Que hacer http://example.com → https://example.com → https://example.net generaba «latencia innecesaria» y «dilución de link juice». Me recomendó hacer un único http://example.com → https://example.net. Le di las gracias y no le hice ni caso (thanks, but no thanks). No porque sea terco, sino porque lo que me pedía es exactamente lo que el RFC 6797 prohíbe. Voy a explicarte por qué. Con referencias. Con código. Con la parte aburrida de los MUST y SHOULD. Porque a veces los RFC tienen razón,… Seguir leyendo →

  • La soberanía digital europea no es un checkbox

    ·

    Me ha pasado más veces de las que admitiría. Alguien me pregunta qué hosting contratar y, tras quince minutos de conversación técnica, suelta la pregunta mágica: «¿Pero mis datos están en Europa?». Y ahí me doy cuenta de que lo que para mí es una cadena de decisiones técnicas, para mucha gente es un simple checkbox. España vs. AWS. Europa vs. Estados Unidos. Todo blanco o negro. La realidad es bastante más gris. Y bastante más interesante. El jamón ibérico de súper Cuando compras jamón ibérico en el supermercado de turno, la etiqueta dice «España». Pero si miras la letra… Seguir leyendo →

  • Elegir hosting es como elegir vivienda

    ·

    Durante años, cada vez que alguien me preguntaba qué hosting necesitaba, le daba la misma respuesta que cuando pregunta qué coche comprar: depende. Y la misma explicación de manual: depende del tráfico, del presupuesto, de lo que quieras hacer, de si tienes conocimientos, de si tienes tiempo… Así que hoy lo voy a intentar de otra manera. Sin tablas absurdas de «CPU vs RAM vs almacenamiento». Con algo que todos entendemos: una vivienda. El piso compartido, el VPS, el cloud y otras formas de vivir en internet Cuando buscas dónde vivir, tienes opciones. Piso compartido. Piso en propiedad. Casa en… Seguir leyendo →

  • Contribución a Free Software / Open Source / Open Data: mayo de 2026

    ·

    Este mes de mayo ha sido uno de esos meses de cerrar asuntos, principalmente WPVulnerability, que comenzó el mes pasado con la API y ha terminado este mes con el plugin oficial. WordPress WPVulnerability Este mes he continuado con el foco puesto en este proyecto. Se han incluido nuevas fuentes de datos para el supply-chain, y se han añadido más vulnerabilidades de infraestructura, además de hacer algunas mejoras en la API. El mayor trabajo ha sido en la documentación, que ahora tiene un sitio propio de forma automatizado mediante ficheros legibles por máquinas, sin tener que usar las páginas de… Seguir leyendo →

  • WordPress lentos, plugins no desinstalados

    ·

    Si alguna vez te has preguntado por qué tu WordPress va lento sin que el servidor tenga la culpa, la respuesta probablemente vive en la base de datos. Concretamente, en una tabla llamada wp_options que, con el tiempo, se convierte en el mayor vertedero digital de tu instalación. No hace falta ser administrador de sistemas para intuir que algo no funciona bien cuando una web que debería cargar en un segundo tarda tres. El problema rara vez está donde el usuario mira. La wp_options es la tabla donde WordPress guarda su configuración esencial: la URL del sitio, el nombre, los… Seguir leyendo →

  • WordPress 7.0: configuración del servidor

    ·

    Ahora que se ha lanzado WordPress 7.0, dejo aquí la configuración de servidor que va a ser la óptima para esta nueva versión mayor de WordPress. Recomendación de ROBOTSTXT Existen distintas fuentes de información cuando hablamos de las configuraciones de WordPress con respecto al servidor. Las principales son las que dan el equipo de Core y el equipo de Hosting de WordPress. Nuestra recomendación, por compatibilidad, para WordPress 7.0 es la siguiente: Es importante tener en cuenta que estas recomendaciones son para instalaciones nuevas de WordPress, aunque, dependiendo de los plugins instalados, se podría actualizar cualquier WordPress existente. Nuestras instalaciones,… Seguir leyendo →

  • AI Translator, plugin para WordPress

    ·

    Llevo días dando vueltas a un problema que, seguro, te suena. Un cliente tiene un sitio multilingüe en WordPress. Nada raro, hasta aquí todo bien. El lío empieza cuando necesita traducir contenidos de forma recurrente: artículos, páginas, productos… Cada vez que publica algo en español, toca replicarlo en catalán, inglés y portugués. Hasta ahora, la solución pasaba por copiar y pegar en DeepL (o donde fuera), revisar que no quedara nada raro, ajustar términos específicos, maquetar de nuevo… Un proceso manual, lento y propenso a errores. Y si hablamos de decenas de entradas al mes, la cosa se vuelve insostenible.… Seguir leyendo →