Windows 10: Quitar de la barra de tareas el widget con la información meteorológica

La última actualización de Windows 10 ha activado un widget que nos muestra en la barra de tareas la información meteorológica y que, al pasar sobre él, nos despliega un menú con noticias con una selección basada en las preferencias que puedan inferirse de lo que hayamos visitado con nuestra cuenta de Microsoft conectada. Dicho widget resulta incómodo a mucha gente y ya son varios los que han llamado a mi trabajo preguntando cómo se desactiva, algo que realmente solo requiere de un par de clicks si se sabe a ciencia cierta dónde buscarlo.

Lo primero que tenemos que hacer es click derecho sobre la barra de tareas, acción que mostrará un menú en el que debemos situarnos sobre la opción Noticias e Intereses. Al posarnos en esa sección desplegará otro menú con tres opciones: “Mostrar Icono y texto“, “Mostrar solo el icono” y “Desconectar“. Por defecto estará marcada la primera, ahí ya podemos optar por “Desconectar” si no queremos ver nada o por la opción de “Mostrar solo el icono” si queremos verlo más reducido. Si queréis tenerlo visible pero lo que os molesta es que se abra automáticamente al situar el ratón encima basta con que desmarquéis la opción “Abrir al mantener el puntero“. Adjunto una imagen para que veáis de qué menú os hablo:

Protección de datos: Derecho a la portabilidad ¿Qué es?

Creo que ya comenté por ahí atrás que estaba estudiando algo de protección de datos y que habría alguna entrada sobre eso. Hoy vamos a hablar del derecho a la portabilidad.

¿En qué consiste? Bueno, como ya sabéis el RGPD recogía que tenemos derecho a acceder a los datos que hemos proporcionado a un proveedor de servicios de la información, que esto debemos poder hacerlo de una forma sencilla y que nos los deben proporcionar en un formato estructurado de uso común y lectura mecánica (por lo que he comprobado suelen enviarlos en formatos HTML, XML y alguna vez he visto algún JSON o CSV). Este derecho de acceso es complementado y ampliado por el derecho a la portabilidad, que implica que podamos solicitar al responsable del tratamiento de nuestros datos que estos sean transmitidos a otro proveedor de servicios. ¿Sabes cuándo entras en Spotify usando tu cuenta de Facebook o de Google? A nivel legal se estaría aplicando este derecho, aunque en ese ejemplo se haría de forma transparente para el usuario. De forma más directa podríamos pensar en cuando cambiamos de compañía telefónica y esta tiene que pasar no solo nuestro número sino varios de nuestros datos a nuestro nuevo proveedor.

La idea de este derecho era dar mayor capacidad a los usuarios “para trasladar, copiar o transmitir sus datos de un entorno informático a otro” (citando a la AEPD) buscando de esta forma reforzar la competencia entre servicios y facilitar los cambios de proveedores de servicios, permitiendo reutilizar los datos que ya hemos facilitado previamente a otro proveedor de servicios.

Este derecho puede ejercerse cuando el tratamiento de datos se realice por métodos automatizados, este esté basado en un contrato o en un consentimiento informado y cuando lo solicitemos con respecto a datos que nosotros, como usuarios, hayamos proporcionado a quien los esté tratando y que nos conciernan, incluídos datos derivados de su propia actividad de tratamiento. Por otra parte no hay que olvidar que este derecho no es aplicable a los datos que hayamos proporcionado sobre terceras personas o que hayan sido proporcionados al responsable del tratamiento de datos por terceras personas. El responsable del tratamiento de datos no podría en ningún caso poner trabas o impedimentos legales, técnicos o financieros siempre que la transmisión de los datos de proveedor a proveedor sea posible técnicamente y siempre que el derecho de la Unión Europea lo permita. Además, el responsable del tratamiento deberá garantizar la seguridad en la entrega de los datos. Debemos recordar que la solicitud de portabilidad de nuestros datos no implica su borrado.

Si tienes una empresa que realice tratamientos de datos la AEPD recomienda que desarrolles una interfaz de descarga para estas peticiones de tus usuarios... Y ojito con incumplir esta norma, porque las sanciones pueden llegar a los 20 millones de euros.

¿Qué es el “smishing” y cómo protegerse?

Si os digo “Smishing” es posible que penséis que es un sonido onomatopéyico para llamar la atención de un gatete, pero aunque me encanten los felinos hoy de lo que hablamos es de ciberseguridad y cibercrimen. La palabra “smishing” nace al mezclar los términos “sms” y “phishing” y, como te puedes imaginar tras esta explicación, hace referencia a las estafas informáticas que se sirven de mensajes sms para engañar a sus víctimas.

¿Qué puede conseguir el delincuente a través de estos mensajes? Pues desde engañar a la víctima para que llame a un número de tarificación especial pasando por suscribir a su objetivo a servicios de sms premium y llegando a cosas tan graves como robarle las credenciales de acceso a alguna aplicación (como la del banco).

Consejos

  • Antes de abrir un enlace plantéate si tiene sentido que hayas recibido ese mensaje ¿es un notificación de un premio y no recuerdas haber participado en ningún sorteo? ¿Te informan de una oferta de trabajo de la que no sabías nada? ¿Te quieren cobrar una multa de tráfico y tú no tienes coche? ¿te llega una cita médica de un centro del que no eres paciente? Si suena sospechoso lo mejor es no abrir el enlace.
  • Un familiar que hoy por hoy siempre te escribe por Whatsapp o Facebook te manda un sms con un enlace digiéndote a una oferta en uan tienda online o similar… Sospecha y pregúntale siempre qué es lo que te envía antes de abrirlo, por si fuera un envío automatizado tras secuestrar su cuenta o teléfono (esto de hecho es aplicable a toda mensajería, no solo a los sms).
  • Tu banco a veces usará sms para confirmar operaciones, por ejemplo enviado un código para que teclees en la web, pero si el banco te manda un sms con un enlace para hacer algo y tú no estabas realizando ninguna operación en ese momento mejor desconfía, ignora ese enlace y abre el app oficial del banco o la web del mismo por tu propia cuenta, puede que te quieran dirigir a un portal falso para copiar tu usuario y contraseña y acceder a tu cuenta.
  • Si te informan de que te has suscrito a un serivicio premium y que tienes que contestar a ese sms para darte de baja, desconfía también. Contacta con tu compañía telefónica para ver si tienes algo contratado que no debería estar dado de alta o con la supuesta empresa que te envía el sms a través de su teléfono.

Acceder al último elemento de un array en Javascript

Algunos lenguajes nos permiten acceder al último elemento de un array usando el índice en negativo (es decir, poniendo la posición -1) pero no es el caso de Javascript. En ese caso ¿cómo accedo al último elemento de un array? Bueno, si se trata de un lenguaje donde podamos conocer la longitud del array como es Javascript (y la mayoría de lenguajes modernos realmente) basta con usar dicha longitud como índice. En el caso concreto de Javascript tendríamos que usar la propiedad length del array pero restándole una posición (porque nunca hay que olvidar que los arrays empieza en 0):

var ultimoElemento = myArray[miArray.length - 1];

Convertir texto en inglés a 1337 con Javascript

Si ayer veíamos cómo hacer con javascript una función que codifique/descodifique un simple cifrado ROT13 hoy vamos a con otro ejercicio de javascript simple: un conversor inglés-1337.

1337, leet, leet speak o 1337 5p34k es un tipo de escritura compuesta por caracteres alfanuméricos y relativamente popular en ambientes informáticos. No se trata de ningún tipo de cifrado de mensajes, simplemente se sustituyen las letras por número o por conjuntos de símbolos cuyo aspecto recuerde al de dicho caracter.

La función sería algo así: recibe un texto escrito en el alfabeto latino internacional y lo devuelve en 1337. Creamos un objeto con todos los valores a sustituir llamado leetAlph para que nos facilite el trabajo, luego solo recorremos la cadena que recibimos como si fuese un array (en esencia toda cadena es una array de caracteres) y vamos cambiando en cada posición la letra por el valor que le corresponda.

function textoALeet(texto) { 
  let leetAlph={a:'@', 
    b:'8', 
    c:'(', 
    d:'|)',
    e: '3',
    f:'ph', 
    g:'g',
    h:'#',
    i:'l',
    j:'_|',
    k:'|<', 
    l:'1', 
    m:"|'|'|", 
    n:'/\/', 
    o:'0', 
    p:'|D', 
    q:'(,)', 
    r:'|2', 
    s:'5', 
    t:'+', 
    u:'|_|', 
    v:'|/', 
    w:"|/|/'",
    x:'><', 
    y:'j', 
    z:'2'};

  texto = texto.toLowerCase();
  for (var i = 0; i < texto.length; i++) {
    if (leetAlph[texto[i]]) {
      text = texto.replace(texto[i], leetAlph[texto[i]]);
    }
  }
  return(texto);
}

Función para cifrado ROT13 con Javascript

ROT13 es un algoritmo para el cifrado de mensajes extremadamente, tan simple que no debería ser considerado nunca una opción válida para un cifrado seguro de nuestras comunicaciones. Basado en los cifrados que se decía que realizaba Julio César en la antigüedad, donde simplemente escribía intercambiando cada letra por otra situada N posiciones más adelante o atrás en el abecedario, ROT13 consiste en desplazar cada letra de nuestro mensaje 13 posiciones hacia delante.

En su día se popularizó en los foros de internet para introducir chistes y últimamente se ha utilizado para ocultar spoilers en foros sobre series.

¿Cómo implementamos esto en Javascript? Bueno, pues se me ha ocurrido que esta sería la solución más rápida, utilizando las funciones de javascript replace() para substituir caracteres dentro de una cadena en base a una expresión regular, charCodeAt() para obtener el código del caracter y la función fromCharCode() para crear una cadena con esos códigos que obtuvimos antes y a los que les aplicamos el desplazamiento. También usaremos toLowerCase() para convertir a minúscula y evitar conflictos con los códigos de las mayúsculas.

function str_rot13(mensaje){
    return mensaje.replace(/[a-zA-Z]/gi,function(s){
        return String.fromCharCode(s.charCodeAt(0)+(s.toLowerCase()<'n'?13:-13));
    });
}

Y ahí nos quedaría un traductor inglés-rot13/rot13-inglés. Si a la función le pasamos “hola” devolverá “ubyn” y si le pasamos “ubyn” devolverá “hola. La expresión regular de la función replace() solo evalúa los caracteres del alfabeto latino internacional por lo que si le pasamos una cadena con acentos o con eñes no daría errores pero no convertiría esos caracteres, igual que hará si la cadena tiene números o símbolos. Es decir, si le pasamos la cadena “coño” devolvería “pbñb“.

Como ya comenté en la introducción se trata de un cifrado más bien “de andar por casa” o para jugar a los detectives, no algo que se pueda utilizar en el campo de la ciberseguridad y la confidencialidad de los datos.

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)