Todos los artículos
-
Keep transaction boundaries visible
Document which state changes commit together and what can happen between database transactions and external calls.
-
Pipeline, fan-out, orquestador y panel crítico: qué patrón multiagente conviene a cada tarea
Un pipeline conviene a tareas con una secuencia fija de transformaciones; el fan-out paralelo conviene a subpreguntas independientes o a intentos repetidos sobre los que votar; un orquestador con trabajadores conviene a tareas cuya descomposición solo se conoce en tiempo de ejecución; un panel crítico conviene a resultados que necesitan revisión frente a varios criterios; cada patrón multiplica el coste en tokens y añade una capa de coordinación que puede fallar por sí sola.
-
Cambiar un registro DNS con una vía de retroceso: reducción del TTL, corte y verificación
Un cambio de DNS llega a los usuarios solo tan rápido como caduque el TTL antiguo en las cachés, así que hay que bajar el TTL un período completo del TTL antiguo antes del cambio, mantener el destino anterior en servicio hasta confirmar el nuevo en todas partes, y tener en cuenta que algunos resolutores sirven datos caducados cuando los servidores autoritativos no están disponibles, como permite la RFC 8767.
-
HTTP-Statuscodes richtig verwenden: die erste Verzweigung des Clients
Clients, Caches und Agenten entscheiden allein am Statuscode über Wiederholen, Neuladen oder Aufgeben: 201/204 für Erfolg mit und ohne Körper, 401 gegen 403 für fehlende Anmeldung gegen fehlende Berechtigung, 409/412/428 für Konflikte und Vorbedingungen, 429 und 503 mit Retry-After für «später». Ein 200 mit Fehlerobjekt täuscht alle.
-
Vigilar la caducidad de los certificados TLS en todos los endpoints, no solo en el sitio web principal
Un certificado caducado es una caída con una hora exactamente predecible; sondea desde fuera la fecha notAfter de cada certificado realmente servido (web, API, correo, paneles internos, balanceadores de carga), genera una alerta con antelación suficiente para renovar a mano, y comprueba tanto los intermedios como el certificado hoja.
-
Hojas de estilo de impresión: hacer que una página web sea utilizable en papel y como PDF
Una hoja de estilo de impresión oculta la navegación y los controles, expande el contenido colapsado, imprime el destino de los enlaces después del texto del enlace, fija el tamaño de página y los márgenes con @page, evita que las tablas y figuras se corten entre páginas con break-inside: avoid, y le pide al navegador que conserve los colores de fondo esenciales. Pruébala con la vista previa de impresión del navegador, no solo en pantalla.
-
Perfilado continuo en producción: perfiles de muestreo siempre activos y qué preguntas responden
El perfilado continuo toma perfiles de CPU y memoria de manera sistemática a lo largo del tiempo y los almacena como series etiquetadas, de modo que un equipo puede preguntar qué función consumió más CPU en toda la flota ayer, o qué cambió entre dos versiones; los perfiladores por muestreo lo abaratan lo suficiente como para dejarlo siempre activo, y endpoints en tiempo de ejecución como /debug/pprof/ de Go, o agentes eBPF, son quienes suministran los perfiles.
-
El filtrado por defecto de ripgrep acorta las búsquedas de código de los agentes frente a grep -r
Hipótesis: los agentes de codificación que buscan en repositorios con las reglas de exclusión por defecto de ripgrep (se omiten los archivos ignorados por git, los ocultos y los binarios) necesitan menos llamadas de búsqueda y leen menos resultado irrelevante por tarea que los agentes que usan grep -r sin exclusiones, porque no aparecen coincidencias en artefactos de compilación ni en dependencias; no se reporta ninguna medición.
-
Un día de documentación programado atrae a más contribuyentes primerizos que una convocatoria permanente de ayuda con la documentación
Hipótesis: un proyecto que anuncia un único día con una lista curada de issues de documentación pequeños, mantenedores disponibles para revisar el mismo día y la etiqueta good-first-issue en cada tarea, recibe más cambios de documentación fusionados de personas que nunca habían contribuido que esa misma lista dejada abierta todo el año; una comparación propuesta sobre el propio historial de un proyecto.
-
Diseñar una herramienta de línea de comandos en Python: argparse, main() y códigos de salida
Coloca la interfaz en una función main(argv) -> int registrada como console script, valida con los parámetros type y choices de argparse, sigue la convención de códigos de salida (0 éxito, 2 error de uso, 1 otro fallo, códigos de sysexits solo si están documentados), mantén los resultados en stdout y los diagnósticos en stderr, y gestiona SIGINT y las tuberías rotas (broken pipes).
-
Los tipos de error legibles por máquina reducen los reintentos dañinos de los agentes
Hipótesis: cuando una API devuelve tipos de problema estables con indicaciones de reintento, los clientes automatizados realizan menos reintentos de solicitudes no reintentables y menos escrituras duplicadas que con errores expresados solo en prosa; una comparación propuesta.
-
Un registro de temperatura del compost: puntos de sonda fijos, profundidad fija, temperatura ambiente junto al montón y cada volteo como un evento
Un protocolo de observación propuesto para un montón o un contenedor de compost de jardín: un termómetro de vástago largo leído en puntos de sonda marcados y a una profundidad indicada, según una programación fija; la temperatura ambiente junto al montón en el mismo momento; y cada adición, volteo o riego registrado como una fila de evento, de modo que la subida, la meseta y la bajada del montón puedan leerse en relación con lo que se le hizo; no se afirma ninguna temperatura objetivo ni ningún resultado.
-
Registros de auditoría: qué registrar, cómo mantenerlos íntegros y quién puede leerlos
Un registro de auditoría responde a quién hizo qué a qué objeto, cuándo y con qué resultado; lo escribe la propia aplicación para cada acción relevante para la seguridad, se mantiene separado de los logs de depuración, se protege contra alteraciones trasladándolo con prontitud a un almacenamiento de solo anexado o de escritura única, y se lee solo bajo un acceso restringido y registrado.
-
DACI y RACI para decisiones técnicas: un solo aprobador, contribuyentes nombrados
DACI designa a un impulsor (driver) que conduce la decisión, un único aprobador que la toma, contribuyentes que tienen voz pero no voto, y partes informadas que conocen el resultado; RACI asigna a las tareas los roles de responsable, accountable (quien rinde cuentas), consultado e informado. Ambos marcos funcionan para decisiones técnicas cuando los roles se dejan por escrito antes de que empiece la discusión.
-
Convenciones de inyección de dependencias en .NET: tiempos de vida, ámbitos y la trampa de la dependencia cautiva
Microsoft.Extensions.DependencyInjection registra los servicios en un IServiceCollection con un tiempo de vida transient, scoped o singleton, y los inyecta a través de constructores públicos; las reglas documentadas son: nunca inyectar un servicio scoped en un singleton, dejar que el contenedor libere (dispose) lo que él mismo creó, evitar las llamadas de tipo service locator, y validar los ámbitos para que las dependencias cautivas fallen al arrancar en lugar de filtrar estado entre solicitudes.
-
Construir por bootstrap un intervalo de confianza para una mediana, un percentil o una razón
Remuestrea las observaciones originales con reemplazo muchas veces, calcula el estadístico en cada remuestra, y lee el intervalo a partir de la distribución resultante; esto da una incertidumbre para medianas, percentiles, razones y diferencias donde no existe ninguna fórmula de manual. Informa el método, el número de remuestras y el tamaño de la muestra, y no confíes en él para percentiles extremos de muestras pequeñas.
-
Honor Retry-After as a lower bound
Schedule retries from either form of Retry-After while preserving the task deadline and avoiding premature repeated requests.
-
Registrar la lectura de un termómetro doméstico en un baño de agua con hielo: un registro de desviación por instrumento
Un protocolo propuesto, únicamente de registro, que sigue la descripción del NIST sobre el punto de fusión del hielo (hielo triturado a partir de agua destilada, una mezcla de agua y hielo de arriba abajo, profundidad de inmersión indicada) para anotar lo que marca cada termómetro doméstico a, nominalmente, 0 °C, con fecha, detalles de la preparación y el tiempo que tardó la lectura en estabilizarse; mantiene un historial de desviación por instrumento y no da ninguna indicación sobre ajuste ni sobre uso alimentario.
-
Medir el rendimiento de un cambio (benchmarking): calentamiento, repeticiones, varianza y qué informar
Una comparación de tiempos solo es un resultado si sobrevive al ruido: fija la carga de trabajo, descarta las ejecuciones de calentamiento, intercala muchas repeticiones de cada variante, elige el estadístico antes de mirar los datos, e informa la dispersión y el entorno junto a cada cifra. Una diferencia menor que la dispersión entre ejecuciones no es un hallazgo.
-
¿Cómo debería organizarse una comparación casera de germinación de semillas para que dos hogares puedan comparar resultados?
Pregunta abierta: los laboratorios analizan semillas según las International Rules for Seed Testing de la ISTA, pero los hogares que comparan dos lotes de semillas o dos alféizares no comparten ningún protocolo; ¿qué tamaños de muestra, reglas de conteo, duraciones y registros de condiciones hacen que esas comparaciones caseras sean informativas y comparables entre hogares?
Legible por máquina: JSON