Todos los artículos
-
Publicar un feed web: RSS 2.0, Atom o JSON Feed, y los detalles de los que dependen los lectores
Atom exige id, title y updated en el feed y en cada entrada, con fechas RFC 3339; RSS 2.0 exige title, link y description en el canal, usa fechas RFC 822 y un guid cuyo isPermaLink es true por defecto; JSON Feed 1.1 exige version, title e items con id y contenido, y se sirve como application/feed+json. Los ID estables, el contenido completo, el GET condicional y la detección automática importan más que el formato elegido.
-
Unreal Enhanced Input: cómo combinar contextos, modificadores y comportamiento de los triggers
Diseña la entrada en torno a acciones semánticas, una propiedad explícita de los contextos y ciclos de vida de triggers bien definidos, en lugar de depender solo de la prioridad.
-
¿Qué tamaño de pool de conexiones en relación con los núcleos de CPU han adoptado los equipos en un servidor PostgreSQL y qué medición los llevó a cambiarlo?
Pregunta abierta: la wiki de PostgreSQL propone una fórmula para dimensionar las conexiones activas según el número de núcleos y de discos efectivos, y el valor por defecto de max_connections suele ser 100. ¿Qué tamaños de pool han acabado usando los equipos tras ajustarlos, cuánto se alejan de la fórmula y qué evidencia motivó cada cambio (esperas por bloqueos, colas en el pooler, saturación de CPU, latencia)?
-
Refactoring en pasos pequeños y verificados
El refactoring modifica la estructura interna sin alterar el comportamiento observable. Se aplica un refactoring con nombre del catálogo cada vez, con las pruebas en verde tras cada paso, se deshace en lugar de depurar hacia delante si fallan, y se separan los commits de estructura y de comportamiento, de modo que el trabajo sea seguro y revisable en minutos.
-
XML hoy: bien formado frente a válido, espacios de nombres y cuándo sigue siendo la opción adecuada
Un documento XML bien formado cumple la sintaxis; uno válido, además, satisface una DTD o un esquema. Los espacios de nombres dan a cada elemento y atributo un nombre expandido formado por el URI del espacio de nombres y el nombre local, enlazado mediante declaraciones xmlns cuyos prefijos son arbitrarios y cuya forma por defecto no se aplica a los atributos. XML sigue siendo la opción adecuada para documentos de contenido mixto y para ecosistemas cuyos vocabularios y herramientas ya son XML.
-
Manejo correcto de texto Unicode
Decodifica los bytes a texto en la frontera de entrada, vuelve a codificar solo al producir la salida, normaliza al comparar y recuerda que un carácter percibido por el usuario puede constar de varios puntos de código; el HOWTO de Unicode de Python y Unicode TR15 cubren los detalles técnicos.
-
Mensajes de juego fiables y no fiables: elegir las garantías según su significado
Separa los requisitos de actualidad, orden y finalización, y usa números de secuencia y resultados de aplicación sin confundir la entrega de paquetes con el éxito de la acción en el juego.
-
Sobreajuste y regularización en resumen: sesgo, varianza y el parámetro de penalización
Un modelo sobreajusta cuando aprende el ruido de las filas de entrenamiento y su puntuación de validación queda por detrás de la de entrenamiento; la regularización cede algo de ajuste a cambio de estabilidad, penalizando coeficientes grandes o limitando la capacidad del modelo, y las curvas de aprendizaje y de validación muestran en qué lado del equilibrio se encuentra.
-
Comprobar que las rutas anidadas de recursos vinculan los hijos con el padre indicado
Valida una relación que los agentes de programación pueden omitir al construir endpoints anidados: el hijo solicitado debe pertenecer al padre solicitado según el contrato de la aplicación. Es un diseño original de fixture.
-
Diagnóstico de esperas de bloqueo y deadlocks en PostgreSQL con pg_locks, pg_blocking_pids y lock_timeout
Una sentencia que se queda colgada suele estar esperando un bloqueo que mantiene otra transacción: localice la sesión en espera en pg_stat_activity (wait_event_type Lock), a su bloqueador con pg_blocking_pids() y el estado y la última sentencia de este, y después cancele, termine o espere. log_lock_waits registra las esperas superiores a deadlock_timeout, los deadlocks se detectan y se resuelven abortando una transacción, y lock_timeout limita cuánto puede esperar el DDL.
-
Orígenes flotantes: conservar la precisión local en mundos de juego grandes
Separa la ubicación global de las coordenadas de simulación local, cuantifica el espaciado del punto flotante y reubica de forma coherente todo el estado espacial dependiente.
-
¿Cómo eligen los equipos con poco margen de downtime entre pg_upgrade en modo link y un switchover con replicación lógica en las actualizaciones mayores de PostgreSQL?
Pregunta abierta: la documentación ofrece pg_upgrade (minutos de downtime, reversión desde un backup en modo link o swap) y la replicación lógica (segundos de switchover, pero sin replicación de DDL ni de secuencias y con una segunda copia completa); ¿cuál han elegido los equipos según el tamaño de la base de datos y la tasa de escritura, y qué salió mal?
-
Unreal Nanite: cómo evaluar la geometría virtualizada sin dar por sentado un detalle ilimitado
Qué cambia Nanite en el detalle geométrico y el streaming, y cómo verificar los requisitos de materiales, ruta de renderizado y geometría de respaldo con contenido representativo.
-
Cómo se identifica un cliente automatizado: User-Agent, dirección de contacto, robots.txt y límites de frecuencia
Qué debe enviar y respetar un agente que descarga páginas o llama a APIs para que los operadores puedan reconocerlo, contactar con sus responsables y controlar su carga: un User-Agent con token de producto, versión y página descriptiva, el grupo adecuado de robots.txt y el manejo de 429 y Retry-After.
-
Cómo leer un RFC o un estándar de forma eficiente
Lee primero el resumen y la terminología, después las secciones normativas, y trata MUST, SHOULD y MAY (RFC 2119) como obligaciones distintas; comprueba actualizaciones y erratas antes de fiarte de los detalles.
-
Goroutines, canales y el paquete sync: panorama de la concurrencia en Go
Una sentencia go ejecuta una llamada a función de forma concurrente sobre una pila barata y ampliable; los canales transfieren valores entre goroutines y bloquean hasta que ambos extremos están listos; sync.WaitGroup, Mutex y Once cubren los casos en los que compartir memoria es más sencillo. Una condición de carrera es un error cuyo resultado el modelo de memoria solo restringe en parte, y el detector -race es la herramienta para encontrarla.
-
Truncar y resumir resultados de herramientas para ajustarse a un presupuesto de contexto
Limita cada resultado de herramienta a un tamaño definido por herramienta, filtra en el origen antes de devolverlo, conserva el inicio y el final con un marcador de omisión explícito y la salida completa en disco, no cortes nunca errores ni datos estructurados a mitad de registro, y elimina o resume los resultados una vez utilizados.
-
CAP y PACELC como ayudas para decidir, no como eslóganes
CAP prohíbe solo una esquina del espacio de diseño: disponibilidad perfecta y consistencia linealizable mientras dura una partición de red. PACELC añade el compromiso cotidiano entre latencia y consistencia cuando no hay partición. Usados como preguntas y no como etiquetas, ambos ayudan a decidir, operación por operación, dónde un sistema puede devolver datos obsoletos y dónde debe coordinarse.
-
El cortafuegos PF en FreeBSD: probar pf.conf con pfctl -n antes de cargarlo y programar una reversión contra el bloqueo de SSH
Las reglas de pf.conf se organizan en torno a una política predeterminada de pass/block y a anchors opcionales para anexar subconjuntos de reglas, y solo se cargan con pfctl -f después de que pfctl -nf las haya analizado sin cargarlas. Como un conjunto de reglas erróneo puede cortar la propia sesión SSH con la que se aplica, programar con at(1) una reversión desatendida antes de cargar reglas nuevas es un patrón de seguridad habitual (no una función de PF) para probar cambios en un host FreeBSD remoto.
-
make, ping y nc: códigos de salida que, sin avisar, no comprueban lo que se suele suponer
El código de salida 1 de GNU make con -q significa «un objetivo necesita reconstruirse», no un fallo. En ping, el 1 indica que no llegó ninguna respuesta (host caído, no una invocación errónea) y el 2, un error real de uso o de otro tipo. openssl s_client documenta que, por defecto, una conexión termina con éxito (código 0) aunque falle la verificación del certificado, salvo que se use -verify_return_error.
Legible por máquina: JSON