jueves, 29 de agosto de 2013

"La combinacion de colores se ha cambiado/se cambió a básico"

Este mensaje de advertencia/error -que sucede en los sistemas Windows Vista y posteriores- viene acompañado de una desactivación del sistema de ventanas Aero; por lo que, además del mensaje, el aspecto de las ventanas será sensiblemente distinto. La desactivación no es permanente y viene provocada en la mayoría de los casos por la ejecución de un programa que activa un modo de representación de vídeo que entra en conflicto con la nueva gestión de temas visuales. Al cerrar el programa responsable todo volverá a la normalidad.

Pero hay una manera de evitar este apuro. Y esa es cambiando el modo de representación/renderizado de vídeo a otro que no sea "Overlay Mixer" en las preferencias o ajustes del programa. En su lugar elija "EVR (Enhanced Video Renderer)", "VMR-9 (renderless)" o "Direct3D". Una vez aplicado el ajuste, cierre y vuelva a abrir el programa o aplicación para que no vuelva a producirse el inconveniente.

Alternativamente, esta situación también puede darse porque el sistema se quede sin memoria debido a una saturación de uno o varios programas que consuman toda la disponible, por lo que Windows decidirá desactivar Aero con el fin de liberar memoria y poder ejecutarlos. Como solución inmediata puede cerrar algunos programas y rehabilitar después Aero. Como medida intermedia, habilite más memoria virtual o concluya por adquirir más memoria RAM.

viernes, 26 de abril de 2013

Gestión avanzada de filtros para mensajes en el cliente de correo Mozilla Thunderbird

Para este afamado -pero tristemente pelado- programa existen algunas extensiones capaces de aumentar sus posibilidades a la hora de mantener a raya el volumen y la gestión de mensajes según condiciones; como, por ejemplo, la popular FiltaQuilla.

Pero entre sus cualidades innatas está el propio gestor de filtros integrado y el empleo de campos personalizados que, si bien no sustituyen ni de lejos a las expresiones regulares, pueden dar un amplio abanico de opciones sin mayores requisitos, caso de ser correctamente aprovechados.
Mostrar la ventana de filtros no tiene misterio alguno. Abierto Thunderbird se pulsa en: Menú de aplicaciones > Filtros de mensajes. Desde allí se pueden gestionar nuevos filtros o los ya existentes.


Ejemplos prácticos


Vuelta a la ventana principal de Thunderbird podemos mostrar varios ejemplos prácticos para el mencionado gestor de filtros de una forma avanzada.

Si, por ejemplo, se quiere filtrar la dirección web de un feed RSS ya suscrito primero ha de buscarse el campo que se quiere tener bajo control. Es posible averiguar esto viendo cualquier entrada de dicho feed y pulsando CTRL+U, que mostrará el código origen de esa entrada. Al principio están los campos que interesan. Tras un ligero vistazo queda claro que la entrada precisa es Message-Id. Suele aparecer otra también, denominada Content-Base pero esta no me ha demostrado la suficiente consistencia en todos los feeds vistos como para usarla de referencia.

De vuelta a los filtros. Se crea uno nuevo y, en las condiciones, hay que elegir el campo "Personalizar..." y, como nueva cabecera de mensaje, se escribe la mencionada Message-Id. Tras aceptar, ya estará creada la nueva condición que habrá que comparar al texto que convenga según se desee.

Añadiré más ejemplos de esta posibilidad a medida que vaya encontrando opciones interesantes.

viernes, 28 de septiembre de 2012

Asincronía A/V y similares en sistemas Windows sobre equipos con overclock

Este problema fue descubierto en 2010 por dos foreros de NotebookReview.com: Dufus y Unclewebb, éste, el desarrollador de la utilidad de overclock ThrottleStop -especializada en equipos portátiles- también participa en la comunidad de TechPowerUp!. Al parecer, el incordio existe desde la época de Windows XP, sistema para el que ofrece la solución en su mensaje: añadir al fichero BOOT.ini el parámetro /USEPMTIMER.  Microsoft lo documenta en su KB (Knowledge Base).

En cualquier caso, menos de un año después ya había dado con la solución para Windows 7 -y, de suponer, Windows Vista-. Unclewebb explica en el foro de  NotebookReview el contexto y los pasos necesarios para solventar este problema. Un pequeño programa diagnosticador y un comando fueron la solución efectiva para este pequeño-gran incordio.


¿Cuál es el origen?


El cambio de la frecuencia del bus frontal (FSB) -ojo, no el multiplicador; éste no afecta a los contadores internos del sistema- de un procesador no parece sentarle muy bien a Windows 7 puesto que una de sus funciones para utilizar en temporizadores de máxima precisión -inferior a un microsegundo- es dependiente de la frecuencia de la CPU.
En concreto, Windows basa los resultados de su función QueryPerformanceFrequency básicamente en el Time Stamp Counter (TSC), en lugar de un contador fijado a una frecuencia como el ACPI Power Management Timer (en versiones de Windows anteriores) o el HPET (High Precision Event Timer). La solución es activar el HPET tanto en BIOS/EFI de la placa principal como en el sistema operativo. (Más al respecto en este artículo técnico de Mark B. Friedman.)

El perjuicio principal de este problema ocurre en programas de audio/vídeo, y especialmente en videojuegos; Entre otros, pueden surgir saltos y pérdida de imágenes (frames), pérdida de la sincronización vertical, asincronía con la imagen en dispositivos de entrada como ratones, asincronía entre audio y vídeo, etc.
(Dejando aparte, claro está, que el problema esté siendo ocasionado por un dispositivo que introduzca -por defectos en su controlador- excesivas latencias; lo cual puede ser comprobado mediante descartes -por eliminación- junto con la utilidad DPC Latency Checker.)

Para saber si un equipo que sufre el estrés de un overclock por FSB tiene el potencial de este perjuicio puede ejecutarse el programa WinTimerTester de Unclewebb y dejarlo funcionando un minuto o dos. Si ambos contadores están en sincronía -es decir, la ratio es 1:1- el equipo no sufre el problema que nos ocupa. En caso contrario, ahora viene la solución.


¿Cómo arreglarlo?


Los sistemas operativos Windows afectados deberían tener instalado un programa para la línea de comandos llamado bcdedit, cuyo nombre significa Boot Configuration Data (BCD) Editor.
Uno de los parámetros de este programa, useplatformclock, es el que permite corregir el problema del contador despistado. Se utiliza del siguiente modo:

Se pulsa Win+R o se abre una consola de comandos con permisos elevados, según corresponda, y se escribe la línea "bcdedit /set useplatformclock true" (sin comillas). Inmediatamente tras lo cual se reinicia el sistema. Puede volverse a ejecutar WinTimerTester para comprobar el correcto solventado del problema.

Si, por cualquier motivo, quisiera volverse al estado anterior, se realiza el procedimiento anterior pero en lugar de esa línea se escribiría "bcdedit /deletevalue useplatformclock" (sin comillas).

Caso de que el problema no se solucionase de esta manera, habría que comprobar si el gestor de firmware (BIOS o EFI) de la placa principal tiene activado el sistema de contadores HPET y activarlo de no ser así — Suele encontrarse en el menú de gestión/administración de energía.


Nota: Antes de modificar el cargador de arranque de Windows Vista/7 es recomendable hacer un respaldo. El procedimiento indicado es seguro pero siempre es mejor ser precavido.
Para ello escriba en una consola de comandos con permisos elevados: "bcdedit /export C:\NombreRespaldo" (sin comillas).

Así tendrá en C:\ una copia llamada NombreRespaldo (o el nombre que se prefiera) con el respaldo de sus valores de arranque de Windows. Si, por cualquier caso, metiera la pata seriamente puede reimportar los datos previos así: "bcdedit /import C:\NombreRespaldo" (sin comillas).

Si el sistema no arrancase, está claro que la mencionada recuperación tendría que hacerse desde el disco de instalación de Windows. Para ello introduzca el DVD, inicie el PC y pulse en "Reparar el equipo", posteriormente tras seleccionar el sistema operativo a recuperar pulse en la opción "Símbolo del sistema". Una vez se encuentre en la línea de comandos puede procederse del modo indicado previamente.
De cualquier modo, este es un caso extravagante en el que algo inesperado ha ocurrido durante el proceso, o no se ha seguido el proceso descrito.