Todos los artículos
-
Vincular una observación de navegador con el código y los datos que la produjeron
Garantizar que una captura de pantalla o una inspección de navegador usada para validar un cambio de código refleje realmente la compilación, la ruta, el estado de la cuenta y el fixture de datos previstos.
-
Un método de notas al estilo Zettelkasten: números fijos, ramificación y un registro de palabras clave
El fichero de notas de Luhmann funciona porque cada nota conserva un número fijo de por vida: las notas nuevas se ramifican en cualquier punto (57/12a tras 57/12), los enlaces son baratos porque los destinos nunca se mueven, y un registro de palabras clave hace que las notas vuelvan a encontrarse; las mismas tres reglas se trasladan a notas en texto plano con identificadores estables.
-
¿Qué jerarquía de evidencia conviene a las afirmaciones sobre prácticas de ingeniería de software?
Pregunta abierta: la medicina clasifica la evidencia con jerarquías explícitas y factores de degradación; las afirmaciones sobre prácticas de ingeniería se apoyan sobre todo en estudios de caso, encuestas e informes de proveedores. ¿Se ha propuesto un esquema de clasificación para tales afirmaciones que realmente se aplique, y cómo trata los efectos dependientes del contexto?
-
Señales de juego accesibles en color: comunicar el estado con algo más que el tono
Combina el color con símbolos estables, patrones y etiquetas, y prueba la señal completa a la escala real del juego en lugar de confiar solo en una paleta predefinida.
-
Predicción en el cliente y reconciliación con un servidor autoritativo
Predice la entrada local de inmediato, reconcilia con el comando autoritativo correspondiente y vuelve a reproducir la entrada sin confirmar, manteniendo separada la corrección visual.
-
Registrar una observación HTTP acotada
Un método conciso para registrar una observación HTTP de modo que otra persona colaboradora pueda repetirla sin exponer credenciales ni datos privados.
-
Gestores de contexto en Python: garantizar la limpieza
La sentencia with ejecuta __enter__ y __exit__ alrededor de un bloque para que los archivos, los bloqueos y las conexiones se liberen incluso cuando ocurre una excepción; contextlib.contextmanager convierte un generador en uno de ellos.
-
Carga de fuentes web: font-display, preload, subconjuntos con unicode-range y alternativas ajustadas por métricas
Mostrar texto en el primer renderizado y cargar la fuente de marca sin saltos de maquetación: crear subconjuntos de las tipografías con unicode-range para descargar solo los sistemas de escritura usados, elegir font-display según el papel (optional para el cuerpo de texto, swap para los títulos), precargar con crossorigin los archivos del primer renderizado y declarar una fuente alternativa con size-adjust y las anulaciones de ascent/descent para que las líneas se ajusten igual antes y después del intercambio.
-
Validar JSON con JSON Schema
JSON Schema describe la forma permitida de un documento (tipos, claves obligatorias, enumeraciones, formatos, límites) y permite validar entradas en cualquier lenguaje antes de procesarlas; conviene mantener additionalProperties explícito.
-
Inspeccionar y cambiar la configuración de red de macOS desde Terminal: networksetup, scutil y la caché de DNS
networksetup y scutil leen y cambian el servicio de red activo, los servidores DNS, los proxies y el nombre del equipo; dscacheutil y mDNSResponder vacían una caché de resolución obsoleta tras un cambio de DNS para que una nueva prueba no vea la respuesta anterior.
-
Usar fetch con tiempos de espera y AbortController
Una promesa de fetch se rechaza solo ante un fallo de red, no ante un estado de error HTTP, y no tiene tiempo de espera por sí misma. Pasar una AbortSignal combinada a partir de AbortSignal.timeout y un controller de quien llama, comprobar response.ok, y distinguir en el catch entre TimeoutError, AbortError, errores de red y errores HTTP.
-
Convertir un bloqueo de acceso en una solicitud diagnóstica mínima
Pedir exactamente la evidencia o el acceso faltante necesario para continuar una tarea técnica tras una lectura denegada, en lugar de solicitar privilegios amplios por defecto.
-
Códigos de salida de docker/podman run: 125, 126, 127 y los códigos de señal que se transmiten a través de ellos
docker run reserva 125, 126 y 127 para fallos del propio Docker, un comando que no se puede invocar y un comando no encontrado, respectivamente; cualquier otro código se transmite sin cambios desde el proceso del contenedor, incluidos los códigos 128+señal (137 para SIGKILL, a menudo por OOM; 139 para SIGSEGV; 143 para SIGTERM). Para confirmar una terminación por falta de memoria, la forma documentada es el indicador OOMKilled del contenedor, no el 137 por sí solo, aunque en algunos hosts con cgroup v2 devuelve false incluso tras una terminación por OOM del kernel.
-
Aislar en un sandbox las acciones de un agente: límites de sistema de archivos, red y credenciales
Un agente que ejecuta comandos o código debería hacerlo dentro de un límite que restrinja qué archivos puede tocar, qué hosts puede alcanzar y qué secretos puede leer; los contenedores con capacidades reducidas y un perfil seccomp, los núcleos en espacio de usuario como gVisor, una red denegada por defecto y credenciales de corta vida y alcance limitado son los componentes básicos.
-
Comprobar los modos de vista previa y ejecución en seco con un libro de efectos secundarios
Verificar la promesa de un producto de que una vista previa no confirma cambios protegidos. Esta regresión de seguridad propuesta hace observables los efectos permitidos y los prohibidos en lugar de confiar en la mera presencia de un indicador de ejecución en seco.
-
Dimensiones de cambio lento: sobrescribir, añadir una fila o añadir una columna
Cuando cambia un atributo de dimensión (un cliente se muda, un producto se reclasifica), el tipo 1 sobrescribe y pierde el historial, el tipo 2 añade una fila nueva con fechas de vigencia y expiración y un indicador de fila actual bajo una nueva clave subrogada, y el tipo 3 conserva el valor anterior en una columna adicional. Las herramientas de snapshot implementan el tipo 2 comparando una marca de tiempo de actualización o un conjunto de columnas en cada ejecución.
-
Campos de flujo: compartir un destino sin compartir una ruta rígida
Construye campos reutilizables de coste restante y de dirección para multitudes, conserva la semántica de las aristas ponderadas e invalida los campos en cache cuando cambian sus supuestos de movimiento.
-
Un registro de salud de batería de dispositivo: lo que reportan los teléfonos, los portátiles Windows y la interfaz power-supply de Linux
Un registro mensual de las cifras de batería que un dispositivo reporta sobre sí mismo: la capacidad máxima relativa a nueva de la pantalla Estado de la batería del iPhone, el informe HTML de powercfg /batteryreport en Windows, y los atributos charge_full y charge_full_design de la clase power-supply de Linux; registrados en bruto con fecha, versión de software y eventos, la serie muestra la tendencia y sus saltos sin ningún consejo de carga.
-
Diseñar un pipeline de integración continua
Un pipeline de CI debería ser rápido, autocomprobable e idéntico para cada cambio: compilar desde un checkout limpio, ejecutar linters y pruebas por etapas, fallar con claridad, y mantener el tiempo total lo bastante corto para que se espere a que termine.
-
Archivos de respuesta de Windows (unattend.xml): fases de configuración y dónde los busca Setup
Un archivo de respuesta unattend.xml aporta ajustes a fases de configuración concretas de Windows Setup; windowsPE, generalize, specialize y oobeSystem son las que más intervienen en el aprovisionamiento. Setup lo localiza mediante un orden de búsqueda implícito fijo y lo guarda en caché en %WINDIR%\Panther, y Windows System Image Manager crea estos archivos y puede ocultar, pero no cifrar, las contraseñas de cuentas locales.
Legible por máquina: JSON