MainMind

True & racing de norte a sur


Tamaño de Base de datos y log en SQL Server

Desde las bases de datos del sistema podemos extraer todo tipo de información, para localizar dentro de una BBDD de una instancia concreta de SQL podemos extraer con una consulta la información de los tamaños que ocupan:

 

with mf
as
(
    select database_id, type, size * 8.0 / 1024 size
    from sys.master_files
)
select 
    name, db.is_auto_shrink_on, 
    (select sum(size) from mf where type = 0 and mf.database_id = db.database_id) DatosMB,
    (select sum(size) from mf where type = 1 and mf.database_id = db.database_id) LogMB
from sys.databases db

 

Hyper-V sobre Windows 10 / Server

Si necesitamos instalar en nuestro equipo máquinas virtuales, este debe cumplir los requisitos mínimos:

  • Procesador de 64 bits con SLAT
  • CPU con VT-x para Intel, AMD-V, VIA-VT... según corresponda
  • 4 GB de RAM

Además de estar presentes, deben estar habilitadas en la BIOS del equipo la virtualización (varía según fabricante) y la Prevención de ejecución de datos por hardware (DEP), es recomendable actualizar a la última versión disponibles del fabricante igualmente.

En el caso de no estar habilitado en la BIOS aparecerá el mensaje:

No se puede instalar Hyper-V: la compatibilidad con la virtualización esta deshabilitada en el firmware

 

En este ejemplo lo haremos en una Workstation de HP, el proceso es similar para otros fabricantes:

Aprovechando que estamos en la BIOS, comprobamos que tengamos habilitados todos los hilos para el procesador:

 

Ejecutando el comando "systeminfo" sobre PowerShell o el símbolo del sistema podemos comprobar en las últimas lineas si nuestro equipo esta preparado. Si aparece el siguiente mensaje, ya tienes Hyper-V instalado:

Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V are not be displayed.

 

Debug Linq SQL

En ocasiones podemos encontrar sentencias complejas o sin errores aparentes, otra forma de intentar buscar soluciones es mostrar la sentencial SQL generada por Entity Framework. Tan solo debemos habilitar el log, mostrandolo en en panel Output de nuestro Visual Studio por ejemplo:

 

                using (ModeloEntities entidad = new ModeloEntities ())
                {

                    entidad.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
                    var resultado = (nuestraConsultaLINQ)

                }

 

Como purgar un sistema de frenos

Una vez sustituido algún componente del sistema de frenos pinzas/caliper, latiguillos, bomba... es necesario eliminar el aire atrapado dentro del sistema.

¿Por qué no debe tener aire el sistema?
Al aire causa una menor resistencia a la compresión, reduce la conductividad térmica, puede causar oxidación, menor viscosidad… lo que muchos describen como tacto esponjoso. Existen otras posible causas de ese tipo de tacto: desgaste excesivo de las pastillas, servo en mal estado, latiguillos, etc.

¿Qué significa un líquido DOT 5.1?
Es un acrónimo de Department of Transportation el número que lo acompaña indica la temperatura de ebullición (pasar de estado líquido a gaseoso) 205ºC DOT3, 230ºC DOT4, 260ºC DOT5, 260ºC DOT5.1 También repercute en la viscosidad con temperaturas bajo cero.

¿De qué está compuesto el líquido de frenos?
De manera general son de glicol por ello es conveniente no tenerlos en recipientes abiertos, por ser higroscópico (atrae y absorbe humedad, por ejemplo, del aire)
El DOT 5 su composición es basada en silicona, no daña la pintura, su viscosidad es más estable en un rango de temperaturas mayor, nunca debe mezclarse con otros líquidos basados en agua o glicol.

¿Por qué el fabricante indica el punto de ebullición en seco y mojado?
Con el paso del tiempo (1-2 años) la efectividad se reduce, normalmente se indica la efectividad en mojado sobre un 3-4% de agua. Por ello también la recomendación de renovar el líquido de frenos cada 2 años.

¿Se puede mezclar líquido antiguo y nuevo?
No es lo recomendable, la cantidad de agua absorbida con el paso del tiempo es desconocida, realizando el cambio en los tiempos indicados por el fabricante no es mayor problema.

¿Cuál es el orden correcto para realizar la purga de frenos?
En coches de calle (con y sin ABS) el circuito de frenos está dividido por seguridad entre la parte delantera izquierda y la trasera derecha (canal 1), y viceversa, delantera derecha con izquierda trasera (canal 2). Empezamos por la parte trasera del mismo canal y luego la delantera.

La bomba de freno y el servo (si lo lleva) se sitúa junto al asiento del conductor a la izquierda, por lo que el orden de purga sería:

  1. Trasera derecha
  2. Delantera izquierda
  3. Trasera izquierda
  4. Delantera derecha

Si la bomba de freno/servo se encuentra junto al asiento del conductor en el lado derecho, el orden sería:

  1. Trasero izquierdo
  2. Delantero derecho
  3. Trasero Derecho
  4. Delantero izquierdo

¿En coches de competición es el mismo orden?
Depende, si la disposición de los canales no se ha modificado es válido. En la mayoría es posible que tenga bombas independientes para cada eje o no estén cruzados los canales, por lo que el orden será en función de la conexión.

 

 

Errores JavaScript en entornos de prueba locales: Browser Link

En ocasiones es posible obtener errores en entornos de desarrollo, pero una vez en producción no suceden; este puede ser uno de los motivos dependiendo del caso. A partir de la versión Visual Studio 2013 se introdujo una características nueva: Browser Link que permite interceptar las llamadas AJAX mediante SignalR estableciendo una canal intermedio entre Visual Studio y el navegador.

Para tal función se inserta automáticamente código JavaScript en la página generada que puede llegar a interferir, por ejemplo con Bootstrap o controles de terceros, generando el error en tiempo de ejecución del tipo:

La prueba rápida es deshabilitar esta característica desde el propio entorno VS:

En entornos de producción con la compilación fuera del modo debug no se realiza la carga de esta característica, solo sobre localhost.

<system.web>
  <compilation debug="false" targetFramework="4.5" />
</system.web>