SQL-Server: Generar un número aleatorio entre dos valores

¿Cómo genero un número aleatorio en SQL-Server? Con la función RAND(), que nos devuelve un valor float pseudoaleatorio entre 0 y 1.

¿Y cómo puedo acotar esto entre dos valores? Pues redondeando el valor de multiplicar el resultado de la función RAND() por la diferencia entre el valor más alto y más bajo que queremos usar como límites y sumándole finalmente el valor más bajo. Que así puesto solo como texto parece más lioso de lo que es, la fórmula es muy sencilla y sería:

SELECT FLOOR(RAND()*(valorHasta-valorDesde)+valorDesde);

Siendo valorHasta el valor más alto y valorDesde el más bajo entre los que queremos obtener el valor aleatorio.

Imagina que queremos un valor aleatorio entre 100 y 200:

SELECT FLOOR(RAND()*(200-100)+100);

¿Cómo activar el Modo Lectura en Chrome?

Seguramente ya sabéis que los navegadores Safari o Firefox tienen un modo lectura o modo lector que permite leer el contenido de una web de forma más limpia y sin las constantes distracciones que pueden causar, por ejemplo, banners publicitarios invasivos o vídeos con reproducción automática. Chrome también tiene esta característica, aunque a Google no le interesa mostrarla mucho ya que la publicidad es su principal fuente de ingresos. ¿Cómo podemos activarlo en el popular navegador de la Gran G?

En la barra de direcciones escribimos chrome://flags y eso nos llevará al configurador avanzado de Chrome. En el buscador que os abrirá ponéis “reader” y entre los resultados buscáis Enable Reader Mode, que en principio debería estar marcado como Default. Lo cambiáis a Enabled y tras reiniciarse el navegador el modo de lectura estaría activado.

Una vez activado veréis que en la esquina derecha de la barra de direcciones aparece un icono similar a un libro. Pulsándolo se activará el modo Lector para esa página en concreto que os dejará una vista más limpia del texto, obviando molestos elementos multimedia.

¿Cómo hacer una búsqueda inversa de imágenes en Google?

Bueno, os dije que tenía unos cuántos artículos grandes en proyecto pero me está costando encontrar tiempo para escribir estos días. Así que vamos con otra entrada corta mientras preparo los gordos. ¿Cómo se hace una búsqueda inversa de imágenes en Google? Es decir, en lugar de introducir un término para buscar imágenes realacionados lo que introduciremos será una imagen y obtendremos un resultado basado en su contenido, como colores, figuras, texturas o los metadatos de la imagen.

Lo primero es acceder al buscador de imágenes de Google en la siguiente URL. Allí veremos una barra de búsqueda como la de abajo en la que tenemos un icono de una cámara fotográfica:

Si pulsamos sobre el icono de la cámara emergerá un menú donde podremos elegir si queremos subir una foto que esté alojada en nuestro equipo (ordenador o teléfono, pues funciona también desde la app de Chrome para Android) o si queremos buscar a través de la URL de un fichero de imagen que hayamos encontrado por internet.

Yo por ejemplo he probado para este ejemplo a buscar un trozo recortado de una ilustración del héroe celta Cú Chulainn realizada por el dibujante Jim Fitzpatrick. Este ha sido el resultado:

Podéis ver que ha puesto enlaces a la web del artista desde la que poder comprar una réplica completa de la ilustracion y que también sugiere como imágenes similares otras ilustraciones del mismo autor.

Excel: Fórmula para eliminar todos los caracteres no numéricos de una celda

Imagina que quieres eliminar todos los caracteres no numéricos de una celda en Excel. Con esta fórmula, que hace uso de la función TEXTJOIN() disponible en Office365 y Office ’19, podrías lograrlo. La fórmula genérica sería la siguiente

{=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,""))}

Vamos a explicarlo:

  • La variable A1 de la fórmula hace referencia al a cela que queréis limpiar, así que cuando la apliquéis tenéis que modificarla por la que corresponda en vuestra hoja de cálculo.
  • Esta fórmula convertirá en un array de caracteres los datos de vuestra celda (eso lo hará la función MID(), transformará la cadena en un array)
  • Los recorrerá (es lo que hace la función TEXTJOIN(), reconvertir el array de números en una cadena)
  • Quedándose solo con los números (eso es lo que hace la operación +0 de la fórmula, fuerza a Excel a convertir los valores de carácter a valores numéricos para esa operación, en caso de que sea un valor no numérico la función IFERROR() lo cambiará por un espacio vacío y en caso de que sea un valor numérico permanece con el mismo valor)

Configurar “impresión silenciosa” (silent print) en Chrome

El otro día veíamos la misma casuística con Firefox: trabajar con un app web que requiera imprimir algo de manera repetida y requieres cierta agilidad, por ejemplo tickets de compra o recibos. Si pulsamos imprimir el navegador abre una pantalla para seleccionar la impresora, haciéndonos perder unos segundos en tener que dar un nuevo click para confirmar la impresión. Vamos a ver cómo configurarlo ahora en Chrome, que será algo distinto.

Bueno, recordemos los pasos previos: tener la impresora deseada configurada como predeterminada y además haber definido las preferencias de impresión (cabecera, pie, márgenes, etc) a nuestro gusto. En el caso de Chrome me he encontrado con que la configuración que se usaba en versiones antiguas desde las flags ya no aparece, pero todavía tenemos la opción de abrir Chrome en modo kiosk. Esta es una modalidad que abre directamente una aplicación en ventana completa, que además es imposible de minimizar, pensado para puestos de trabajo como pueden ser puntos de venta. En este modo podemos usar la impresión directa. Añado que el modo kiosk está también disponible en Firefox:

  • Creamos un acceso directo a Chrome apuntando a la ruta donde esté instalado el ejecutable.
  • En las propiedades del acceso directo, en destino, añadimos después de la ruta al ejecutable la siguiente línea cambiando la URL del final por la que queremos usar: –kiosk –kiosk-printing “http://rutaalawebquequremosabrir
  • Esto abrirá Chrome en el modo de ventana completa y con la impresión silenciosa por defecto.

¿Cómo ver la cabecera de un correo con GMail?

Si tienes una cuenta de Gmail y sus su cliente web para ver los correos es posible que alguna vez te hayas preguntado si se puede ver la cabecera de los mismos. Sí, es posible.

Si entras en el correo del que quieres ver la cabecera comprobarás que a la derecha, al lado del botón de Responder hay un icono con tres puntos (en la imagen está ya marcado).

Al pulsarlo se desplegará un menú en el que debemos seleccionar la opción Mostrar Original. Al hacerlo nos llevará a una pantalla donde veremos todo el código del email, con su cabecera incluída:

Ahí podemos ya copiar la cabecera del correo para lo que la necesitemos.

Configurar “impresión silenciosa” (silent print) en Firefox

Imagina que trabajas con una aplicación web desde la que tienes que imprimir algo de manera repetida y requieres cierta agilidad, por ejemplo tickets de compra o recibos. Si pulsas imprimir el navegador abrirá una pantalla para seleccionar la impresora, haciéndote perder unos segundos en tener que dar un nuevo click para confirmar la impresión. ¿Se puede configurar el navegador para que esta impresión sea silenciosa? ¿Para que directamente mande el documento a la impresora predeterminada sin preguntar? Se puede. Veamos como hacerlo con Firefox.

Bueno, como pasos previos tendríamos que tener la impresora deseada configurada como predeterminada y además deberíamos ya haber definido las preferencias de impresión (cabecera, pie, márgenes, etc) a nuestro gusto. Suponiendo que eso esté listo pasamos a configurar Firefox por pasos.

  • Escribimos about:config en la barra del navegador. Nos llevará a una pantalla de confirmación donde aceptaremos sin miedo y esta nos redirigirá al buscador de características.
  • Buscamos la característica print.always_print_silent escribiéndolo tal cual. Ahora hay dos opciones:
  • Si existe hacemos doble click o click en el botón de alternar que aparecerá a la derecha y la dejamos con el valor true.
  • Si no existe ya nos saldrá una barra con la opción de añadir esta nueva característica pulsando el botón con el símbolo + situado a la derecha. Debemos definirla como boolean. Una vez definida le damos el valor true.

Tras eso reiniciamos el navegador y podemos comprobar que si mandamos una página a la impresora ya no nos pide seleccionar qué máquina queremos usar, la envía directamente a la predeterminada.

Musiqueando 17 (20200519)

Durante estas semanas de aislamiento por la pandemia de COVID-19 no he escrito de música pues creí que sería más útil retomar mi vieja labor de pinchadiscos y elaborar listas de reproducción diarias con las que amenizar un poco el confinamiento a quien se interesase por escucharlas. En mi cuenta de youtube acumulé 56 “listas confinadas” con distintas temáticas (y algunas sin ella). Ahora, pasado este tiempo volvemos a la actualidad del musiqueando, en este caso repasando los nuevos lanzamientos del sello peruano Necio Records en vinilo, trabajos que también están disponibles en formato digital.

Lo primero que veremos es a unos viejos conocidos, los peruanos El Jefazo allá por enero publicaron Simbiosis, un disco de pesado stoner doom con elementos de space rock. El primer tema, Serpiente, nos deja claro lo que hay: dos minutos de riffs mastodónticos, monolíticos, de inspiración Kyuss para dar paso bruscamente a un pasaje atmosférico, introducir un punteo más rockero y devolvernos progresivamente al ritmo pesado del inicio. Su tema El Hedonista es probablemente lo que más he escuchado en la última semana, una pieza de esas para mover el cuello hasta que se caigan las vértebras, pero con unos cambios de ritmo ligeros por medio que dotan a la canción de mayor colorido. La más metalera Pulsión de Muerte cierra la cara A y la B se abre con la espacial El Daño está hecho dando paso a la segunda tanda de temas.Tengo que reconocer que el juego de palabras para la final Drone Gato me mató de la risa. Un disco más que recomendable para los amantes de los trabajos instrumentales y pesados.

También son viejos conocidos de este blog los argentinos Knei, que en febrero publicaron su disco III. La evolución del trío no solo mantiene las influencias setenteras que ya mostraban en Juventud de la Gran Ciudad sino que las acentúan, en III suenan todavía más retro que nunca. Si la primera vez que les reseñé cité a los catalanes Lone Star tengo que admitir que de nuevo fue esta banda la que se vino a mi cabeza cuando escuché la inicial Vieja Mujer. Compruebo en el segundo tema, Balada para una Amiga, que han añadido órgano en algunos temas del disco aunque parece más una colaboración puntual que un cambio en el formato del grupo. En temas como Caso Perdido juguetean con el blues de reminiscencia americana recordando a su compatriota Pappo e incluso algún deje progresivo como en Nuvem Leopardo o Jardín que me transportan a clásicos del rock argentino como los primeros trabajos de Luís Alberto Spinetta o de La Máquina de Hacer Pájaros.

Los paulistas Saturndust nos traen su segundo disco RLC, donde la composición vuelve a recaer sobre el guitarrista y vocalista Felipe Dalam, bien acompañado por el bajista Guilherme Cabral y el batería Douglas Oliveira. Los brasileños tanto beben a ratos de los humeantes riffs de Sleep como del doom old school de Saint Vitus o The Obsessed, salpicado de esos sintetizadores que añaden la nota de amor cósmico a su composición. En cinco temas, cuatro de los cuales superan los 9 minutos, nos plantean un viaje cósmico hasta la órbita de Saturno. Una de las bandas más prometedoras de brasil en el panorama de la psicodelia y el stoner por méritos propios.

Y acabamos el recorrido por los lanzamientos en vinilo de Necio Records volviendo a Perú para escuchar el post-rock atmosférico con dejes progresivos y psicodélicos de Parahelio en su último trabajo Surge Evelia, Surge. Un disco instrumental y conceptual repartido en tres largas piezas inspiradas por el pueblo de La Rinconada, que parece ser que es la población situada a mayor altura del planeta. Un lugar que llegó a tener más de 40.000 habitantes durante los tiempos de mayor producción de su mina de oro y que posteriormente quedó semiabandonado cuando el yacimiento se agotó. El sonido del disco es muy limpio pero a la vez intenso y penetrante que incluso incluye algún elemento folclórico en sus guitarras.

¿Por qué el factorial de 0 (0!) es igual a 1?

En los comentarios de la popular entrada ¿por qué un número elevado a 0 es igual a 1? me preguntaban también ¿Por qué el factorial de 0 es igual a 1?

En principio la definición de factorial de un número n sería el producto de todos los números enteros positivos desde 1 hasta dicho número n. Es decir, el factorial del número cuatro sería:

4!=4*3*2*1=24

¿Entonces por qué el factorial de 0 es 1? Bueno, si nos vamos a la definición anteriormente vista de factorial “producto desde 1 hasta n” nos encontramos con que no tenemos número alguno que multiplicar, esto es lo que se llama un producto vacío y por convención es 1.

Pero también, como con el factorial, podemos argumentar esto más allá de decir “por convención” con una explicación informal:

Empecemos estableciendo una igualdad: el factorial de un número n es el resultado de dicho número multiplicado por el factorial de n-1.

n! = n*(n-1)!

Por lo tanto también podemos decir que el factorial de n-1 es igual al factorial de n divido entre n:

(n-1)!=n!/n

Entonces si forzamos la definición de factorial para meter el cero tendríamos este resultado para poder mantener la coherencia:

0!=(1-1)!=1!/1=1

Otro ejemplo informal. Supongamos que tenemos a cuatro personas y queremos colocarlas en fila. ¿Cuántas combinaciones posibles tenemos? ¿Cuántas formas tenemos de colocarlas? Pues 4!, 24 posibilidades. Ahora ¿si solo fuesen 2 personas? Entonces 2! que es 2, solo tenemos dos formas de ordenar la fila. ¿Una persona? ¿Cuántas formas tenemos de colocar una fila de una persona? Solo una. Entonces ¿cuántas formas tenemos de colocar una fila de 0 personas? Técnicamente no sería una fila porque no habría nadie formándola, pero en todo caso también tenemos solo una forma.

Usar Powershell para cambiar configuración de red entre pública y privada

Cuando hice el curso de fundamentos de Powershell hace un año me quedó algún artículo pendiente de escribir, por ejemplo esta entrada ¿cómo puedo cambiar la configuración de red entre pública y privada? El funcionamiento del cortafuegos será distinto si usamos una configuración u otra.

Lo primero es ver qué comando podemos usar para ver la configuración de nuestra conexión. Este sería Get-NetConnectionProfile. Nos devolverá una serie de datos, entre los que aparece una línea que pone Network Category. Ahí nos dirá si la conexión es pública o privada. También nos dará el nombre, Name, del adaptador de red, dato que necesitaremos para conectarlo.

¿Cómo lo cambiamos? Pues de la siguiente forma:

  • Para ponerlo como privado: Set-NetConnectionProfile -Name “ElNombreDeNuestraRed” -NetworkCategory Private
  • Para ponerlo como público: Set-NetConnectionProfile -Name “ElNombreDeNuestraRed” -NetworkCategory Public