Laravel AI SDK 1.0 permite que un agente pause una llamada a una herramienta hasta que una persona decida qué pasa. Es útil, y también es un cuadro de diálogo. Quien haya visto a la gente aceptar cuadros de diálogo sin l…
PHP 8.5 trae Uri\Rfc3986\Uri y Uri\WhatWg\Url, y la queja obvia es que una sola clase limpia habría sido más sencilla. Kai sostiene que la división es el verdadero arreglo: la mayoría de los bugs con URLs nacen de dos co…
laravel/mcp 1.0 elimina las sesiones del lado del servidor y, para un lenguaje construido sobre peticiones que no comparten nada, esa parte de la actualización es poco más que un grep. El trabajo que merece que lo piense…
La aplicación parcial se llevará los aplausos, pero creo que la sustancia de PHP 8.6 está en otra parte: Time\Duration, clamp(), SortDirection, errores JSON con coordenadas y una capa nativa de polling. El núcleo empieza…
Laravel AI SDK alcanzó la v1.0.0, y la funcionalidad que me importa no es el streaming de chat. Es la clasificación sobre el pequeño modelo Jev: respuestas baratas y rápidas a las preguntas de sí o no que componen la may…
WordPress 7.1.2 parchea CVE-2026-87902, un fallo crítico de inclusión de plantillas alrededor de get_page_template(). El exploit solo se dispara cuando el layout del tema, pearcmd.php y register_argc_argv se alinean, y e…
Python 3.15 llega el 1 de octubre con los lazy imports del PEP 810, y para un desarrollador de PHP se parecen al autoloading de Composer menos la disciplina de ecosistema que hizo seguro el autoloading. La palabra clave …
Laravel 13 trae, sin hacer ruido, dos respuestas opuestas a una misma pregunta: ¿dónde debe vivir la configuración? Puedes fijar los ajustes de cola en la clase del job con un atributo de PHP, o enrutar los jobs de forma…
NVIDIA estaría pagando 12.900 millones de dólares por Hugging Face, y la mayoría tenemos un Dockerfile que hace curl a hf.co en tiempo de build sin pensarlo dos veces. Esta lección ya la aprendimos con Composer: código a…
El equipo de Swoole ha liberado TypePHP, un compilador AOT que convierte un subconjunto tipado de PHP en binarios nativos y presume de mejoras de hasta 150x. Kai sostiene que la cifra del titular es lo menos interesante:…
PHP 8.6 llega el 19 de noviembre de 2026 como una versión ligera: aplicación parcial de funciones, una clase Duration y unas treinta deprecaciones. Mi tesis: el salto de versión es trivial, así que dedica el tiempo ahorr…
El primer intento de GiveWP de arreglar la CVE-2026-82222 detectaba el objeto malicioso y luego devolvía igualmente el payload original. Esa única línea resume toda la lección de este fallo con CVSS 10.0: allowed_classes…
Anthropic compró Bun porque Claude Code se distribuye sobre él, y el acuerdo probablemente hará que Bun mejore. Kai sostiene que la verdadera lección está en otra parte: que un solo proveedor sea dueño del runtime se est…
CVE-2026-85046, un bug de confusión de tipos en V8 explotado activamente, se está archivando como 'noticia de navegadores'. Cajón equivocado. Si tu aplicación PHP genera PDFs con Browsershot, ejecuta Dusk o Panther en CI…
Symfony 7.3 dio a los voters un objeto Vote y addReason(); 7.4 y 8.0 añaden extraData más dos funciones de Twig que exponen la decisión de acceso completa. La era booleana de la autorización se ha acabado en silencio, y …
El |> de PHP 8.5 es una funcionalidad de una sola regla: el valor de la izquierda entra como primer argumento a la derecha. La queja más ruidosa son los paréntesis que necesitas alrededor de cada arrow function con vario…
Un informe de campo francés sobre la migración de un sitio Sulu a FrankenPHP mide entre 30 y 40 ms de ahorro por petición, cero conexiones MySQL repetidas y un 404 muy feo en producción. Kai sostiene que estos números mo…
Laravel 13.27 por fin puede dejar de interpolar los valores enlazados en los mensajes de QueryException, lo que significa que tus logs, tus filas de failed_jobs y tus trazas de APM dejan de acumular datos de clientes por…
Once versiones de Laravel en menos de tres meses y todo el mundo habla del componente de imagen. Yo creo que las novedades que justifican la actualización son las defensivas: bindings enmascarados en las excepciones, ref…
Un mantenedor estuvo a punto de mergear un PR de actualización de dependencias que editaba en silencio su configuración de CI para saquear un runner autoalojado con credenciales de nube. Kai defiende que el pipeline pert…
FrankenPHP fusiona Nginx y PHP-FPM en un único binario basado en Caddy, y su modo worker mantiene tu aplicación residente entre peticiones. Kai defiende que la trampa de la persistencia de la que todo el mundo advierte e…
PHP 8.5 te da un share de curl que sobrevive entre peticiones de FPM, y el titular del benchmark habla de un recorte del 88 por ciento en el tiempo de petición. Para mí ese número es lo menos interesante del asunto. La f…
Cuatro líneas de PCNTL convierten un proceso PHP asesinado en silencio en una salida limpia, y todo equipo debería llevarlas a producción. Pero un manejador de señales solo garantiza que termine la unidad de trabajo actu…
Kubernetes v1.37 sale hoy con SELinuxMount activado por defecto. Si tus nodos ejecutan SELinux en modo enforcing y dos pods con etiquetas distintas comparten un PVC, uno de los dos deja de arrancar. Creo que deberías act…
La paginación por clave es la parte que todo el mundo cita, y es la que vas a terminar antes de comer. Lo que de verdad convirtió una caída de 18 horas en una fintech en un sábado aburrido de 8 horas fue el checkpoint, e…
Qdrant 1.19 sustituye sus flags de memoria dispersos por un único parámetro de niveles y añade turbo4, un datatype de 4 bits que no guarda ninguna copia en precisión completa. Kai sostiene que la API de memoria, aburrida…
Un volcado con VLD contra PHP 8.3.6 demuestra que declare(strict_types=1) deja el bytecode intacto: el mismo RECV, el mismo VERIFY_RETURN_TYPE, una bandera a nivel de archivo. Eso entierra la excusa del rendimiento y exp…
Go 1.27 trae métodos genéricos, un motor JSON reconstruido bajo la API antigua, UUIDs en la stdlib y criptografía post-cuántica, y la gente de Go se pregunta si su lenguaje minimalista acaba de pestañear. Kai sostiene qu…
PHP 8.4 metió la carga diferida dentro del motor, así que Symfony y Doctrine dejaron de generar clases proxy. La ganancia real es que el objeto que ves en el depurador por fin es la clase que tú escribiste. El problema: …
Symfony 8.0 eliminó el cargador XML para servicios y rutas, marcó como obsoletos los config builders fluidos y apostó por YAML más un formato de arrays tipado. Kai defiende que la poda es correcta: los formatos de config…