Métodos del objeto Number en Javascript

El lenguaje Javascript tiene una serie de objetos básicos, que a su vez tienen propiedades y métodos. En próximas entradas iremos viendo distintos objetos, hoy vamos a empezar por los de Number, que tiene básicamente cinco métodos:

  • .toExponential(): Esta función nos devuelve una cadena representando el valor del número con el que trabajamos, pero representado en notación exponencial (también llamada notación científica). Opcionalmente puede recibir un parámetro donde le indiquemos el número de decimales que queremos.
  • .toFixed(): Esta función nos devuelve una cadena representando el valor del número con el que trabajamos, pero redondeando el número de decimales a la cantidad que le digamos. Si no recibe parámetro alguno lo interpretará como un 0 y nos dará un valor entero, si recibe parámetros mostrará tantos decimales como el parámetro indique, rellenando con ceros cuando sea necesario.
  • .toPrecision(): Esta función nos devuelve una cadena representando el valor del número con el que trabajamos, pero redondeado a la longitud que le pasemos como parámetro. Si no se le pasa parámetro alguno entonces devuelve el número entero, si el parámetro es mayor que la longitud del número añadirá un separador decimal seguido de ceros hasta complertar dicha longitud.
  • .toString(): Esta función nos devuelve una cadena representando el valor del número con el que trabajamos. Se le puede pasar como parámetro un valor entre 2 y 36, dicho valor es la base en la que queremos que se formatee el número (por ejemplo 16 para conseguir un resultado hexadecimal, 2 para un resultado binario,etc) .
  • .valueOf(): Esta función nos devuelve el tipo primitivo del objeto Number, es decir, un valor numérico. Es un método que generalmente se usa de forma interna en Javascript y pocas veces se invoca desde el código web.

Baloncesto y estadística: Consulta SQL para calcular el porcentaje de tapones de un jugador

Seguimos con el tema de la estadística baloncestística avanzada. Ya vimos cómo se calcula el PIE,también los porcentajes de tiro avanzado y real y hubo otra entrada sobre estadísticas de asistencias y sobre el porcentaje de robos. Hoy vamos con el porcentaje de robos.

¿Qué nos indica este porcentaje? Pues la cantida de tiros que un jugador tapona, pero teniendo en cuenta los minutos que juega y el ritmo de juego del rival. Es decir, se trata de una estadística «tempo-free», ya que el número de minutos disputados y el ritmo de juego no afectan al jugador para esto.

¿La fórmula? Es la siguiente:
100*(Tapones*(Minutos de Partido))/(Minutos del jugador*(Tiros intentados por el rival-Triples intentados por el rival))

En una base de datos donde tuviéramos los campos Tapones,MinutosPartido,MinutosJugador, TirplesRival yTirosRival la consulta sería algo así:

Select 100.00*Convert(Numeric(4,2),Tapones)*Convert(Numeric(4,2),MinutosPartido)/Convert(Numeric(4,2),MinutosJugador)*(Convert(Numeric(4,2),TirosRival)-Convert(Numeric(4,2),TriplesRival)) as BlkPcnt

¿Qué se le objeta a esta estadística? Los triples: por una parte es muy complicado taponar tiros de tres, por lo que si estos se computaran bajarían mucho el porcentaje de todos los jugadores y por eso los han excluído, pero esto mismo provoca que si un jugador tapona un triple este quede sobrerrepresentado en su estadística: el tapón aparece en el numerador como tapón conseguido pero, a su vez el tiro no está contando en el denomiador al restarse igualmente por ser un triple.

Baloncesto y estadística: Consulta SQL para calcular el porcentaje de robos de un jugador

Seguimos con el tema de la estadística baloncestística avanzada. Ya vimos cómo se calcula el PIE,también los porcentajes de tiro avanzado y real y hubo otra entrada sobre estadísticas de asistencias. Hoy vamos con el porcentaje de robos.

¿Qué nos indica este porcentaje? Pues la cantida de balones que un jugador recupera, pero teniendo en cuenta los minutos que juega y el ritmo de juego del rival. Aquí es importante matizar ¿qué entendemos por robo? Pues cuando un jugador, por medio de una acción defensiva legal, logra que el rival pierda la posesión del balón ganándola a su vez para su equipo. Es decir, que no cuenta ni cuando se recuperan balones sueltos ni cuando se intercepta el balón cambiando su trayectoria pero sin recuperar la posesión. Ojo, ahora la NBA también recoge eso en sus estadísticas oficiales avanzadas como «Loose ball recoverd» y «Deflections«. Peor lo que ahora nos ocupa es el tema de los robos.

¿La fórmula? Es la siguiente:

100 * Robos del Jugador * Minutos totales de Partido / Minutos jugados por el jugador * Posesiones del equipo rival.

En una base de datos donde tuviéramos los campos Robos,MinutosPartido,MinutosJugador y PosesionesRival la consulta sería algo así

Select 100.00*Convert(Numeric(4,2),Robos)*Convert(Numeric(4,2),MinutosPartido)/Convert(Numeric(4,2),MinutosJugador)*Convert(Numeric(4,2),PosesionesRival) as StealPcnt

¿Limitaciones de esta estadística? Pues que recoge solo el porcentaje de éxitos, al igual que el total de robos, por lo que un jugador puede quedar sobrerrepresentado en la misma, pareciendo mejor defensor de lo que es. Gente como Monta Ellis o, en Europa, Bo McCalebb son jugadores con manos rápidas que por su estilo defensivo consiguen muchos robos pero que en el global no son grandes defensores.

¿Cómo exportar la configuración de Internet Explorer y Ajustes de Internet desde el registro del sistema de Windows?

A veces, ya sea por política de empresa o por el uso de una aplicación web propia, necesitamos una configuración concreta para Internet Explorer en los ajustes de Internet. Y a veces las actualizaciones del sistema nos mandan al guano dicha configuración, obligándonos a conectarnos para volver a configurarlo. Ok, cierto, en caso de tener un controlador de dominio la tarea es más sencilla, pero a veces no podemos tener dicha configuración por lo que sea. Entonces ¿cómo podemos facilitar el trabajo? Pues de una forma muy simple: una vez configurado el navegador exportamos esta configuración desde el registro del sistema.

Ejecutamos el regedit.exe y buscamos la siguiente ruta:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

Hacemos click derecho sobre Internet Settings y en el menú emergente elegimos Exportar, como se ve en la imagen de abajo. Esto generará un fichero de registro de sistema, por lo que si la configuración se modifica bastará con ejecutarlo para recuperar la anterior.

Registro del sistema

Comandos de información del sistema en Linux

Existen una serie de comandos que nos dan información sobre el estado de nuestro sistema operativo Linux. Son los siguientes abajo listados:

  • date: muestra la fecha y hora actuales.
  • cal: muestra el calendario de este mes.
  • uptime: muestra el tiempo que lleva el equipo funcionando.
  • w: muestra quién está en línea.
  • whoami: muestra con qué usuario estás conectado al sistema.
  • uname -a: muestra la configuración del kernel.
  • cat /proc/cpuinfo: muestra información detallada sobre la CPU.
  • cat /proc/meminfo: muestra información detallada sobre la memoria del equipo.
  • man nombre_de_comando: muestra el manual de uso de un comando.
  • df: muestra el espacio usado del disco.
  • du: muestra el espacio usado del directorio.
  • du -sh: muestra el espacio usado del disco en un formato más legible, en Gigas.
  • whereis aplicación: muestra dónde están los binarios, documentación o código de una aplicacion.
  • which aplicación: muestra las rutas de los ficheros que serán ejecutados si llamamos a ejecución dicha aplicación.

Baloncesto y estadística: Consulta SQL para calcular los ratios de asistencias de un jugador

Seguimos con el tema de la estadística baloncestística avanzada. Ya vimos cómo se calcula el PIE y también los porcentajes de tiro avanzado y real, así que hoy vamos con los ratios de asistencias.

En este caso tenemos dos fórmulas distintas, ya que por un lado tenemos el Ratio de Asistencias de Hollinger (hAST%) y por otro el de Pomeroy (pAST%).

El ratio de Hollinger se calcula respecto al número de balones que terminan en manos del jugador mientras que el de Pomeroy lo calcula respecto al tiempo que el jugador está en la pista y el número de posesiones.

La fórmula de Hollinger sería la siguiente:

ASISTENCIAS*100 / (TIROS DE CAMPO INTENTADOS POR EL JUGADOR+ 0.44 * TIROS LIBRES INTENTADOS POR EL JUGADOR + ASISTENCIAS + PÉRDIDAS)

Por su parte la de Pomeroy sería esta:

ASISTENCIAS*100 / (((MINUTOS JUGADOS / (MINUTOS TOTALES DEL EQUIPO / 5)) * TIROS DE CAMPO INTENTADOS POR EL EQUIPO ) – TIROS DE CAMPO INTENTADOS POR EL JUGADOR)

Entonces suponiendo que tenemos una tabla Estadisticas con los campos: Asistencias, Tiros, TirosLibres, Perdidas con los valores correspondientes, la fórmula de Hollinger la sacaríamos tal que así:

Select Convert(Numeric(5,2),Asistencias)*100.00  / (Convert(Numeric(5,2),Tiros)+ 0.44 * Convert(Numeric(5,2),TirosLibres) + Convert(Numeric(5,2),Asistencias) + Convert(Numeric(5,2),Perdidas)) as hAST from Estadisticas

Para la de Pomeroy necesitaríamos una tabla com los campos Asistencias,Minutos,MinutosEquipo,TirosEquipo y Tiros:

Select Convert(Numeric(5,2),Asistencias)*100.00  / (((Minutos / (Convert(Numeric(5,2),MinutosEquipo) / 5.00)) * Convert(Numeric(5,2),TirosEquipo)) - Convert(Numeric(5,2),Tiros)) as pAST from Estadisticas

Finalmente nos quedaría el ratio de asistencias por pérdida, que consiste simplemente en dividir las asistencias repartidas entre las pérdidas de balón sufridas. Suponiendo una tabla con los campos Asistencias y Perdidas la consulta sería:

Select Convert(Numeric(5,2),Asistencias)/Convert(Numeric(5,2),Perdidas) as ASTTO from Estadisticas

La críticaal ratio de Hollinger es que solamente refleja la tendencia de un jugador a asistir y no tanto su eficacia, mientras que la crítica al de Pomeroy es que si los compañeros fallan muchos tiros penalizan la estadística del asistente.

Baloncesto y estadística: Consulta SQL para calcular el porcentaje de tiro efectivo (eFG%) y el porcentaje de tiro verdadero (TS%)

El otro día habláblamos un poco sobre estadística avanzada en baloncesto viendo cómo se calcula el PIE, y como ha sido un artículo bien recibido vamos a ver cómo podemos calcular las dos principales estadísticas avanzadas de tiro y aplicarlas a una consulta SQL. Pero veamos primero qué son estas estadísticas.

La estadística de tiro clásica, el porcentaje de tiros anotados, ha dado resultados engañosos desde que se introdujo el tiro de tres. Pensemos por un segundo en dos jugadores que lanzan diez tiros: el primero lanza diez tiros de dos y anota seis, el segundo diez triples y anota cuatro. El porcentaje de tiro simple del primero es de un 60% mientras que el del segundo es de un 40%, pero en realidad ambos han anotado la misma cantidad de puntos: 12. El porcentaje de tiro efectivo y el porcentaje de tiro verdadero ponderan el mayor valor de los triples y el menor valor de los tiros libres para que el cálculo de la efectividad del tirador sea más realista. Dwight Howard o Clint Capela, que anotan mucho pegados al aro o machacando, tendrían mejores porcentajes simples que tiradores excelsos desde la larga distancia como Nowitzki o Curry. O en la ACB podría ser el caso de Tomic y Navarro.

El porcentaje de tiro efectivo es la estadística que pondera el mayor valor de los triples y la fórmula para su cálculo es: (Tiros de campo anotados+0.5*Triples Anotados)/Tiros de campo intentados.

El porcentaje de tiro verdadero incluye también el valor de los tiros libres y se calcula con la siguiente fórmula: Puntos / 2 * (Tiros de campo intentados + 0.44 * Tiros libres intentados)

Supongamos que tenemos una tabla llamada Tiros con las estadísticas de tiro de un jugador en una base de datos SQL-Server, con los siguientes campos: TirosIntentados, TirosAnotados, TriplesAnotados, TirosLibresIntentados y Puntos. Podríamos tener más, pero estos son los campos que necesitamos. Supongamos que todos estos campos almacenan números enteros, que sería lo lógico, y que tendremos que aplicar una conversión porque necesitamos un resultado decimal (en SQL-Server 2008 sería necesario ).

¿Cómo irían las consultas? Aquí para el eFG%:

Select ((Convert(Numeric(4,2),TirosAnotados)+0.5*Convert(Numeric(4,2),TriplesAnotados))/Convert(Numeric(4,2),TirosIntentados)) as eFG from Tiros

Aquí para el TS%:

Select (Convert(Numeric(4,2),Puntos) / 2.00 * (Convert(Numeric(4,2),TirosIntentados) + 0.44 * Convert(Numeric(4,2),TirosLibresIntentados))) as TS from Tiros

MySQL: Consulta para saber cuántas tablas o vistas hay en una base de datos

El otro día veíamos cómo hacerlo con SQL-Server ¿y con MySQL? Más o menos lo mismo, con el pequeño cambio que implica que MySQL obligue a meter siempre en la consulta el nombre del esquema que vamos a usar, mientra que en SQL-Server cogerá por defecto el que tengamos seleccionado.

Entonces en MySQL la cosa quedaría así:

#Contar Tablas
SELECT COUNT(*) from Information_Schema.Tables where TABLE_TYPE = 'BASE TABLE' and table_schema = 'LaBaseDeDatosQueSea';

#Contar Vistas
SELECT COUNT(*) from Information_Schema.Tables where TABLE_TYPE = 'VIEW' and table_schema = 'LaBaseDeDatosQueSea';

#Contar Tablas y vistas
SELECT COUNT(*) from Information_Schema.Tables where table_schema = 'LaBaseDeDatosQueSea';

SQL-Server: Consulta para saber cuántas tablas o vistas hay en una base de datos

¿Manejas una base de datos en SQL-Server? ¿Quieres saber cuántas tablas tienes en tu base de datos? ¿Y cuántas vistas? ¿Y ambas? Estas consultas te darán esa información:

#Contar Tablas
SELECT COUNT(*) from Information_Schema.Tables where TABLE_TYPE = 'BASE TABLE'

#Contar Vistas
SELECT COUNT(*) from Information_Schema.Tables where TABLE_TYPE = 'VIEW'

#Contar Tablas y vistas
SELECT COUNT(*) from Information_Schema.Tables