Todos los artículos
-
Gestión idempotente de webhooks: IDs de entrega, calendarios de reintento de cada proveedor y respuesta rápida
Todos los grandes proveedores de webhooks pueden entregar el mismo evento más de una vez y esperan que el receptor deduplique con un identificador propio de cada uno: X-GitHub-Delivery, el id de evento de Stripe, el event_id de Slack junto con X-Slack-Retry-Num, o el webhook-id de Standard Webhooks. Los calendarios de reintento difieren mucho: GitHub no reintenta automáticamente (la reentrega manual o por API conserva el ID de entrega), Stripe reintenta hasta tres días en modo live y Slack reintenta tres veces en unos seis minutos.
-
¿En qué invierten realmente su tiempo los mantenedores de proyectos pequeños y qué hizo que el reparto se alejara de la escritura de código?
Pregunta abierta: las Open Source Guides señalan que los mantenedores de proyectos muy usados acaban programando menos y respondiendo más a issues, y recomiendan como remedios documentar, saber decir que no, repartir la carga y automatizar; faltan mediciones del tiempo por actividad en proyectos pequeños y pruebas de cuál de esos remedios modificó el reparto.
-
Priorizar la atención en la revisión de código con Jev sin diluir los bloqueos en un promedio
Usa dimensiones de revisión independientes para priorizar la atención humana y conserva las comprobaciones obligatorias, que una puntuación ponderada nunca debe anular.
-
Dar de baja un servidor de forma segura: eliminarlo de todos los sistemas que aún confían en él
Dar de baja un servidor no es solo apagarlo: el DNS, la monitorización, los trabajos de copia de seguridad, el registro de inventario y cualquier objeto de equipo del directorio siguen confiando en él o esperándolo mientras nadie lo elimine explícitamente, y el almacenamiento requiere un método de sanitización adecuado al tipo de medio antes de reutilizarlo o desecharlo.
-
El comando ip como herramienta de diagnóstico: consultar primero antes de tocar la configuración de red
ip addr, ip route e ip neigh muestran directamente el estado actual de la red del kernel, más rápido que cualquier archivo de configuración. El mismo comando también puede modificar ese estado en tiempo de ejecución, pero un cambio hecho con ip en tiempo de ejecución no se guarda en ningún sitio y desaparece al reiniciar el sistema o la interfaz.
-
PAN-OS CVE-2026-0322: verificación de correcciones por línea de mantenimiento y recuperación del plano de administración
Una vulnerabilidad de la interfaz de administración que requiere autenticación afecta a los firewalls PAN-OS y a Panorama. Comprobar la versión de mantenimiento completa, restringir el acceso de administración y seguir el procedimiento de recuperación del proveedor para dispositivos físicos o virtuales si se sospecha una intrusión.
-
Mallas de navegación, corredores de ruta y evitación local
Mantén separados la planificación de rutas, el margen libre, el steering local y el movimiento físico para que los agentes naveguen por pasajes estrechos y reaccionen de forma coherente a obstáculos cambiantes.
-
Monitorización de un modelo desplegado para detectar deriva: entradas, salidas y etiquetas tardías
La puntuación offline de un modelo deja de ser válida cuando cambia la distribución de las entradas, la de las etiquetas o la relación entre ambas. Para detectarlo, compara las distribuciones de características y predicciones con una referencia de entrenamiento, registra las características servidas para detectar el sesgo entre entrenamiento y servicio, y une las etiquetas tardías para calcular la métrica real con retraso.
-
Trampas de los números en JSON: enteros mayores que 2^53, NaN e Infinity, y decimales exactos
RFC 8259 deja la precisión numérica en manos de las implementaciones y prohíbe NaN e Infinity; I-JSON (RFC 7493) recomienda ceñirse a IEEE 754 binary64 y codificar como cadenas todo lo que lo exceda, como los enteros de 64 bits. El módulo json de Python emite NaN por defecto y JSON.stringify de JavaScript lo convierte en null, por lo que el JSON interoperable necesita contratos numéricos explícitos por campo.
-
Trampas de los SMS: codificación GSM-7 frente a UCS-2 y segmentos de mensaje
Un SMS transporta 140 bytes: 160 caracteres en GSM-7 o 70 en UCS-2. Un solo carácter fuera de GSM-7 (unas comillas tipográficas, un emoji) hace que todo el mensaje pase a UCS-2; los textos más largos se dividen en segmentos de 153 o 67 caracteres que los proveedores suelen facturar por separado. Cuente los segmentos antes de enviar y normalice la puntuación.
-
Mantener los cálculos de iluminación en espacio lineal al usar texturas sRGB
Sigue los valores de color desde el almacenamiento de la textura, pasando por el sombreado, hasta la codificación para pantalla, y distingue los mapas de color de los datos numéricos.
-
Medir una habitación y dibujar su plano a escala: primero el croquis con las medidas en bruto, después el dibujo
Protocolo propuesto que separa la medición del dibujo: un croquis aproximado recoge todas las lecturas en bruto (paredes a una altura indicada, diagonales, huecos con su distancia a la esquina más cercana), se anotan el instrumento y su resolución, se registran las diferencias de cierre entre paredes opuestas y solo entonces se dibuja el plano a una escala indicada en papel cuadriculado o con una herramienta de dibujo; ninguna cota se da por exacta más allá del cierre registrado.
-
Operar un bastión SSH: ProxyJump en el cliente y restricción de lo que el jump host puede reenviar
Un bastión debe retransmitir las conexiones ProxyJump hacia los hosts internos sin convertirse en un relay TCP genérico. Esta metodología configura ProxyJump en el cliente, restringe AllowTcpForwarding y PermitOpen en el bastión y limita las excepciones con un bloque Match en lugar de una autorización global.
-
Ocultar secretos antes de escribir en los logs
Escriba en el log un registro de diagnóstico basado en una lista de campos permitidos en lugar de las solicitudes de herramientas sin procesar, y verifique que los secretos se ocultan en cada destino de salida.
-
NAT: cómo funciona la traducción de direcciones y por qué fallan las conexiones entrantes
Un NAT reescribe la dirección y el puerto de origen de los paquetes salientes y conserva una asignación para poder encaminar las respuestas de vuelta; nada encamina un paquete entrante no solicitado hacia un host privado. Las asignaciones caducan por inactividad, el hole punching solo funciona con ciertos comportamientos de NAT y el NAT de nivel de operador añade una segunda capa que el abonado no puede configurar.
-
prefers-reduced-motion: qué animaciones reducir y cómo hacerlo
La característica de medios prefers-reduced-motion indica si el usuario ha pedido al sistema operativo menos movimiento; sus valores son no-preference y reduce. Respétala sustituyendo el movimiento amplio (parallax, zooms, desplazamientos, movimiento con reproducción automática) por fundidos o cambios instantáneos, conservando las transiciones de estado pequeñas que aportan significado, y aplica la misma regla a las animaciones controladas por script.
-
Cómo dar de baja un endpoint de API con las cabeceras Deprecation y Sunset
Anuncia el fin de vida del endpoint dentro de la propia respuesta: la cabecera Deprecation (RFC 9745) marca el recurso como obsoleto, Sunset (RFC 8594) indica cuándo dejará de funcionar y un Link a la documentación explica la alternativa; complétalo registrando qué clientes siguen llamando.
-
¿Reducen los mensajes genéricos de inicio de sesión y restablecimiento los robos de cuentas de forma medible, si los volcados de brechas ya revelan qué direcciones existen?
Pregunta abierta: las guías piden respuestas indistinguibles para cuentas existentes y no existentes, con un coste real en usabilidad. ¿Algún servicio ha medido si bajaron el credential stuffing o el phishing dirigido tras cerrar la enumeración, cuando los atacantes ya tienen listas de correos de brechas de otros sitios?
-
Logs, métricas y trazas: qué pregunta responde cada señal
Las métricas indican que algo falla desde las 14:02, las trazas muestran en qué llamada de qué solicitud se pierde el tiempo y los logs aportan el mensaje de error de un caso concreto. OpenTelemetry define las tres señales, con el identificador de traza incluido en el registro de log para poder correlacionarlas; quien elige primero la pregunta recopila menos y encuentra más.
-
Sondeos de compilación cruzada en CMake: distinguir entre compilar, enlazar y ejecutar
Diagnostica las comprobaciones de la toolchain identificando qué máquina debe compilar, enlazar o ejecutar cada sondeo.
Legible por máquina: JSON