Todos los artículos
-
Comprobación del estado del host antes y después de un cambio, ejecutable por un agente en Linux y Windows
Antes y después de cualquier cambio en un servidor en ejecución, un agente puede capturar en ambos sistemas operativos la misma instantánea de cuatro puntos (servicios fallidos o detenidos, puertos en escucha, margen de disco y memoria, y errores recientes en los registros) y compararlas para ver exactamente qué ha alterado el cambio, con independencia de lo que este debía hacer.
-
Unreal World Partition: diseñar el streaming en función del desplazamiento y las dependencias entre actores
Coordina las fuentes de streaming, los límites de las celdas, la representación HLOD lejana y las referencias entre actores para que un mundo grande esté listo antes de que los jugadores lleguen a él.
-
multipart/form-data: cómo se estructura una subida de formulario en la red
El cuerpo multipart/form-data es una secuencia de partes separadas por un boundary declarado en la cabecera Content-Type; cada parte lleva Content-Disposition: form-data; name="..." (y filename en archivos), un Content-Type opcional que por defecto es text/plain, y bytes en bruto. RFC 7578 fija las reglas que siguen los navegadores: varios archivos como partes repetidas con el mismo name, sin Content-Transfer-Encoding, nombres de archivo no ASCII normalmente en UTF-8 sin codificar y un campo _charset_ para la codificación del texto.
-
Render graphs: declarar dependencias y controlar el ciclo de vida de los recursos
Explica las dependencias entre render passes, la asignación transitoria y el aliasing de memoria con un ejemplo práctico de ciclos de vida, y cómo verificar la sincronización y el verdadero equilibrio de rendimiento.
-
Cuándo SQLite es la base de datos adecuada
SQLite es un motor SQL completo contenido en un archivo de biblioteca, ideal para aplicaciones en un solo host, datos embebidos, pruebas y cargas de escritura moderadas con un solo escritor a la vez; conviene una base de datos cliente-servidor si hay muchos escritores concurrentes, acceso en red desde varios hosts o conjuntos de datos muy grandes.
-
Ataques de temporización y comparación en tiempo constante de secretos
Una comparación de igualdad normal se detiene en el primer byte distinto, así que el tiempo de respuesta revela cuánto de un token o MAC adivinado es correcto. Compara los secretos con las funciones de tiempo constante de la plataforma (hmac.compare_digest, crypto.timingSafeEqual, subtle.ConstantTimeCompare), mantén las entradas con la misma longitud y da a los usuarios desconocidos el mismo camino de código que a los conocidos.
-
Recuperar la estructura de un documento con Jev conservando el texto original
Reconstruye los encabezados, párrafos y límites de lista probables a partir de un formato dañado, sin que la reparación estructural se convierta en una reescritura del documento que nadie ha registrado.
-
Input buffering y coyote time: aceptar saltos casi correctos sin acciones duplicadas
Registra por separado las pulsaciones recientes de salto y el último contacto con el suelo, consume ambas oportunidades al saltar y ajusta la tolerancia según las reglas de movimiento previstas.
-
NetScaler ADC y Gateway: distinguir las correcciones de septiembre y octubre antes de la recuperación
Las compilaciones mínimas que corrigen CVE-2026-88771 y CVE-2026-88772 difieren de las que corrigen el fallo de denegación de servicio de SAML CVE-2026-88779. Contrastar cada boletín, investigar posibles compromisos y planificar la terminación de sesiones.
-
Paginación de la Web API de Slack y gestión de sus niveles de límite de frecuencia por método
La Web API de Slack pagina mediante cursores con response_metadata.next_cursor y el parámetro limit (se recomiendan 100-200; el máximo es 1000, sujeto a cambios y variable según el método), y aplica niveles de límite de frecuencia por método y por espacio de trabajo, de 1+ a 100+ solicitudes por minuto. Al superarlos devuelve HTTP 429 con una cabecera Retry-After en segundos.
-
Copia de mutex en Go: mantener la identidad del bloqueo junto con el estado que protege
Revisa los receptores por valor, las asignaciones y las operaciones sobre contenedores que pueden copiar una estructura con un mutex activo.
-
Gestión de servicios OpenRC en Alpine: rc-update, rc-service, runlevels y rc-status
Alpine usa OpenRC, donde habilitar un servicio en el arranque (rc-update add) y controlarlo en el momento (rc-service start/stop/status) son dos comandos distintos, basados en runlevels con nombre y no en un único enable --now al estilo de systemd. rc-status informa de lo que está realmente activo en cada runlevel, y la salida de arranque del propio OpenRC solo se escribe en un log si se activa rc_logger en /etc/rc.conf.
-
Unwinding en FFI de Rust: elegir un límite explícito para panics y excepciones
Antes de elegir la ABI del límite, hay que separar los retornos de error ordinarios, los panics de Rust y las excepciones foráneas.
-
Submódulos, subtrees o vendoring: tres formas de incluir otro repositorio
Un submódulo guarda un puntero (gitlink) a un commit de otro repositorio y exige comandos adicionales a cada usuario; git subtree copia los archivos del otro proyecto, y opcionalmente su historial, en un subdirectorio que se comporta como archivos normales; el vendoring simple copia los archivos y registra a mano la versión original. La elección depende de la frecuencia con que cambie la dependencia y de quién deba poder clonar.
-
Observar la revocación de enlaces compartidos sin asumir consistencia inmediata
Define un oráculo de prueba concreto y una ventana de observación para verificar que un enlace compartido se ha revocado. El método propuesto separa el contrato de revocación previsto de las suposiciones sobre cuándo debe dejar de servir contenido cada vía de acceso.
-
Ejecutores de tareas más allá de make: just, npm scripts e Invoke para los comandos de un proyecto
Un ejecutor de tareas reúne en un solo lugar los comandos de un proyecto, de modo que personas, agentes y CI invocan los mismos nombres. just guarda recetas en un justfile con sintaxis parecida a make y sin lógica de marcas de tiempo; los npm scripts viven en package.json con hooks pre y post; Invoke convierte las funciones @task de un tasks.py en una línea de comandos. Conviene elegir el que no requiera herramientas adicionales, mantener las recetas cortas y dejar que CI las llame.
-
Tipo de inicio de servicios y recuperación ante fallos: Set-Service más sc.exe failure/qfailure
Set-Service cambia el tipo de inicio, pero PowerShell no tiene ningún cmdlet para las acciones de recuperación de un servicio; sc.exe failure y sc.exe qfailure siguen siendo la vía para configurar y consultar el reinicio tras un fallo, y gMSA es la forma documentada de evitar gestionar a mano la contraseña de la cuenta de servicio.
-
Guía de diseño de un sistema de comentarios: hilos, estados de moderación y contenido re-renderizable
Guía de diseño para comentarios en hilo con moderación: el texto fuente es la fuente de verdad y se renderiza en lectura con un sanitizador actualizado, con ruta materializada y límite de profundidad, estados pending/visible/hidden/removed que conservan la forma del hilo, auditoría de reportes y acciones de moderación, y funciones que se dejan deliberadamente para más adelante.
-
Registro de temperatura interior y humedad relativa: protocolo de colocación y lectura
Protocolo propuesto para llevar un registro por habitación: fijar la posición y la altura de cada sensor, anotar temperatura y humedad relativa como par junto con la hora y el estado de ventanas y calefacción, y tratar la humedad relativa como dependiente de la temperatura al comparar habitaciones o días; no se afirma ningún umbral de confort, moho o salud.
-
Seudonimización frente a anonimización como técnicas de ingeniería
La seudonimización sustituye los identificadores directos por tokens y conserva una vía de retorno (una clave o una tabla de correspondencias), de modo que sigue habiendo un registro por persona; la anonimización busca eliminar para cualquiera la asociación entre registros y personas. Para los seudónimos conviene usar HMAC con clave por finalidad, y tratar una tabla seudonimizada como datos personales, ya que conserva cuasi-identificadores.
Legible por máquina: JSON