Cómo desinstalar Recall en Windows 11

Recall («Recuerda») es el nuevo explorador de contenidos de Microsoft que se instalará automáticamente en todos los equipos con Windows 11, previsiblemente a finales de año o al menos a partir de la actualización 24H2. La aplicación Recall es un paso más en la utilización de la IA en nuestros equipos personales, recopilando prácticamente todo lo que hacemos, tanto en texto como en imagen, para posteriormente poder utilizarlo para hacer búsquedas más eficaces y utilizando un lenguaje natural, en lo que han venido a llamar «AI Explorer«.

Recall solo puede instalarse en los equipos más modernos, que tengan al menos 16 GB de RAM y un procesador compatible, algo que por ahora tienen muy pocos equipos. Es evidente que un uso tan intensivo de búsqueda en nuestra labor diaria tiene que tener un coste energético y presentar un problema evidente de privacidad, ante lo que Microsoft afirma que Recall solo trabaja en el entorno local y que la información que se recopila no se utiliza fuera de los equipos.

Hay que reconocer que muchas personas pueden ver esta herramienta útil y aceptar los inconvenientes que presenta, pero en el caso de que no te convenza o no le veas utilidad, la posibilidad de desinstalarla en modo gráfico no parece que vaya a estar disponible. Sin embargo, puede desinstalarse usando la terminal en modo administrador de la siguiente manera:

Dism /Online /Get-Featureinfo /Featurename:Recall

El comando anterior nos devuelve si tenemos o no instalado Recall en nuestro ordenador. Si no lo tuviéramos nos mostrará la siguiente información:

Si la tenemos instalada y queremos desinstalarla el comando para hacerlo es:

Dism /Online /Disable-Feature /Featurename:Recall

Como podemos ver en la salida del primer comando, para ver todas las características o «features» que tenemos instaladas, tecleamos:

Dism /Online /Get-Features

La salida es extensa y en ella aparecen todas las «características» instaladas, tanto las habilitadas como las deshabilitadas.

Gracias a @hareldan@mapstodon.space por publicar el truco

Actualizar las conexiones de datos de una serie de hojas Excel con Python

Si tenemos una serie de hojas Excel en las que se han incorporado conexiones a bases de datos, y queremos que se actualice el contenido de las mismas para que aparezca reflejada la última información cuando se aceda a ellas, podemos hacerlo de varias maneras: podemos, por ejemplo, definir esas conexiones de forma que se actualicen cuando se abra la hoja de cálculo, pero si la actualización es lenta porque se accede a muchas tablas o se actualiza mucho contenido, provoca que haya que esperar un buen rato desde que se abre la hoja hasta que se puede empezar a trabajar con ella; podemos también ir entrando en cada una y pulsando en «Actualizar datos», pero esto puede llegar a ser tedioso si son muchas hojas las que hay que actualizar; otra manera sería con macros o VB, pero las primeras son una tecnología a abandonar, y puestos a hacerlo por programa, a mí me gusta más en Python, utilizando la función que muestro a continuación, con comentarios que explican cada uno de los pasos:

# Importamos las librerías necesarias para la ejecución
import os
import win32com.client

# Especificamos el directorio que contiene los archivos Excel
ruta_directorio = "C:\Mis Programas\"

#
# Función para la actualización automática de las conexiones de datos
#
def actualizar_conexiones(directorio):

    # Creamos una instancia de la aplicación Excel
    excel_app = win32com.client.Dispatch("Excel.Application")

    # Hacemos la aplicación invisible para el usuario
    excel_app.Visible = False

    # Recorremos todos los archivos en el directorio especificado
    for filename in os.listdir(directorio):
        # Abrir solo hojas de cálculo, evitando los archivos ocultos
        if (filename.endswith(".xlsx") or filename.endswith(".xlsm")) and not filename.startswith("~"):
            file_path = os.path.join(directorio, filename)
            print(f"Actualizando conexiones de datos en: {file_path}")

            # Creamos un libro excel en memoria con la ruta del archivo
            workbook = excel_app.Workbooks.Open(file_path)

            try:
                # Recorremos todas las conexiones de datos del libro
                for connection in workbook.Connections:
                    print(f"Habilitando contenido: {connection.Name}")
                    connection.Refresh()
                    # Para hacer esperar la ejecución hasta que termine
                    # la actualización de datos:
                    excel_app.CalculateUntilAsyncQueriesDone()
                    # Para evitar que se abran ventanas de diálogo que 
                    # pararían el proceso:
                    excel_app.DisplayAlerts = False

            except Exception as e:
                print(f"Error al actualizar la conexión")

            finally:
                # Guardamos y cerramos el libro
                workbook.Save()
                workbook.Close()

    # Cerramos la aplicación Excel 
    # Ojo, no es lo mismo que cerrar el libro excel creado
    excel_app.Quit()

    print("Actualización de conexiones de datos completada.")


# Llamada a la función para actualizar las conexiones de datos
actualizar_conexiones(ruta_directorio)

Desinstalar Tu Teléfono en Windows 10

Una de las cosas que no me gustan del «entorno Microsoft» es que te oculta opciones en la selección gráfica que sí están disponibles en la consola. Otra de las cosas que no me gusta es que te da muchas facilidades para instalar una de sus aplicaciones, pero luego te oculta la posibilidad de desinstalarla. Es lo que me ocurrió con la app «Tu Teléfono», incluida en Windows 10 y en la cual no había reparado pues no la necesitaba. Un día el sistema me hizo la típica pregunta de «¿Quieres probar la aplicación ..? y le dije que sí. La probé, algunas cosas me gustaron, otras no, y decidí que no quería seguir usándola. Y ahí está lo que yo considero un error en Windows 10: ya no había forma fácil de eliminarla. Ni siquiera quitando la opción de ejecución en segundo plano deja de estar activa, lo cual no sólo me molesta por la pérdida de recursos en mi máquina, sino porque me saltan notificaciones a la vez en el teléfono y en el ordenador.

Para desinstalar la aplicación no es posible hacerlo por la opción gráfica, pues el botón de desinstalar no aparece habilitado, hay que hacerlo desde la consola: pulsamos botón derecho en el icono de las ventanitas en la parte inferior izquierda del escritorio y seleccionamos la opción «Windows PowerShell (Administrador)». Una vez en ella hay que lanzar el comando:

Get-AppxPackage Microsoft.YourPhone -Allusers | Remove-AppxPackage 

Por el momento no lo he probado, pero con este comando parece evidente que se pueden desinstalar más aplicaciones innecesarias, bastaría con cambiar el nombre de la app.

Gracias a www.softzone.es por publicar la forma de instalar y desinstalar esta aplicación.

Leer archivos Access desde Linux con mdbtools

El formato .mdb de Microsoft Access es propietario y su uso se restringe a los entornos de trabajo Windows, lo cual implica no solo tener el sistema operativo de Microsoft sino además haber comprado una licencia de Office. Al no poder trabajar de forma directa con ellos en Linux, ya existen aplicaciones que nos permiten leerlas, como son por ejemplo DBeaver o Kexi. Sin embargo, puede que no necesitemos un programa tan completo, sino que solo nos interese extraer la información contenida en el Access para luego procesarla por otros medios. Para este cometido lo más sencillo es utilizar la herramienta mdbtools. Aunque podemos bajarnos el código y compilarlo, es más fácil utilizar los gestores de paquetes de cada distribución Linux, por ejemplo en Fedora o cualquier distribución basada en Red Hat la forma de hacerlo sería:

sudo dnf install mdbtools

Una vez instalada, tenemos a nuestra disposición varios comandos, uno de los cuales es mdb-export, que nos permite exportar una de las tablas contenidas dentro del archivo Access a un fichero de texto plano con formato csv de esta forma:

mdb-export nombre_Access nombre_tabla > nombre_fichero.csv 

Donde nombre_Access es el nombre del ficho Access; nombre_tabla es el nombre de la tabla dentro del Access de la que queremos obtener los datos; y nombre_fichero.csv es el nombre del fichero de texto en el que queremos guardar la información. Existen más opciones para la exportación de datos que pueden consultarse simplemente tecleando «mdbtools» en la consola:

En caso de que no conozcamos a priori los nombres de las tablas incluidas en el Access, podemos obtenerlos con el comando:

mdb-tables nombre_Access

Existen más comandos que podemos usar, y podemos obtener una lista de ellos si tecleamos «mdb-» en la consola y pulsamos el tabulador. El que puede sernos bastante útil es mdb-schema, que nos devuelve no solo las tablas que tenemos en el Access sino también los campos que tiene cada una y su formato.

Otra de las buenas características de mdbtools es que puede usarse también desde un script de R, si previamente instalamos el paquete Hmisc en R con:

install.packages("Hmisc")

Con él instalado podemos usar el comando:

mdb.get(RutaAlFicheroAccess, "nombre_tabla") 

Esta opción de carga de datos desde R me parece más interesante que la utilización de los paquetes basados en Rodbc, porque dichos paquetes necesitan que la arquitectura del sistema (32 o 64 bits) sea la misma que la del Access, lo cual puede ser un problema.

Cómo arreglar los errores de Windows Update… y más cósas

En caso de que un ordenador con Windows 10 deje de actualizarse y aparezca un error que no sea solucionable mediante el Solucionador de Problemas incluido en el sistema operativo, la herramienta ResetWindowsUpdate, desarrollada por Manuel F. Gil y avalada por Microsoft, no sólo te permite corregir los errores en la sincronización de las actualizaciones del sistema, también te puede ayudar en caso de que otros componentes del sistema hayan dejado de funcionar correctamente.

Puede descargarse un archivo zip de este enlace o de este otro se puede descargar un instalador que no presenta más problema que ejecutarlo. La primera opción puede ser interesante si no queremos instalar nada en el equipo, teniendo el ejecutable en un usb, por ejemplo.

Si optamos por el primer enlace, una vez descargado el archivo zip, lo descomprimimos. En la carpeta buscamos el archivo ResetWUSpa.cmd, pulsamos el botón derecho sobre él y seleccionamos Ejecutar como Administrador Al hacerlo puede que nos aparezca un aviso de que no se permite la ejecución de la aplicación por seguridad; en ese caso pulsamos en el enlace Mas información al final del mensaje y pulsamos el botón Ejecutar de todas formas. Nos aparecen las condiciones de uso:

Las aceptamos y nos aparece un menú de opciones muy sencillo de entender y utilizar.

Si sólo queremos corregir el error en las actualizaciones usaremos la opción 2, aunque tampoco viene mal utilizar otras, como por ejemplo la 3, que nos elimina los archivos temporales y nos libera espacio en disco. Alguna de las opciones puede tardar bastante tiempo, por lo que es importante saber qué se está haciendo y que no se debe apagar el equipo mientras se hace. Hay más información sobre cómo utilizar esta herramienta en este otro enlace.

Cómo leer una base de datos Microsoft Access desde Linux con DBeaver

La base de datos Microsoft Access no está disponible para Linux, por lo que para acceder a ella o bien se usa un equipo con sistema operativo Windows, o bien extraemos su contenido con mdbtools, o bien usamos una aplicación que nos permita acceder a su contenido desde Linux. Un programa para hacer esto último, que a mí me ha parecido fácil de usar y bastante completo, es DBeaver.

Aunque es un programa de pago, tiene una versión Community gratuita que permite hacer muchas cosas, entre ellas acceder a una gran variedad de bases de datos, entre las que se encuentra Access. Tiene versión para Linux en formato deb, rpm, snap… En mi caso, Debian 10, la instalación sería como sigue:

Como es un programa escrito en Java, se necesita previamente instalar dicho entorno de ejecución ejecutando en un terminal:

sudo apt install default-jre default-jdk

Y comprobando que se ha instalado correctamente con:

java -version

javac -version

A continuación descargamos el fichero .deb y situándonos en la carpeta en la que se encuentra el fichero descargado, ejecutamos:

sudo dpkg -i dbeaver dbeaver-ce_7.0.1_amd64.deb

Una vez hecho esto, antes de lanzar el programa es conveniente ampliar la memoria RAM que va a utilizar porque la que viene por defecto puede ser escasa si la base de datos contiene muchas tablas. Para ello editamos el fichero /usr/share/dbeaver/dbeaver.ini (se puede consultar una explicación de cómo está organizado este fichero) modificando las líneas:

-Xms64m

-Xmx1024m

De forma que especifiquemos en ellas la cantidad inicial de memoria que usará el programa (-Xms ) y la máxima (-Xmx) que permitiremos que utilice. Hay que establecer unos valores que sean admisibles por el ordenador en que se esté trabajando. Para saber de cuánta memoria libre disponemos podemos ejecutar el comando free, y ajustar los valores en consecuencia. En mi caso he indicado -Xms1024m y -Xmx4096m.

A continuación iniciamos DBeaver y pulsando en el icono «Nueva conexión» (el enchufe):

Nos aparecen todas las bases de datos disponibles, bajamos hasta encontrar Access, la seleccionamos y pulsamos Siguiente:

A continuación especificamos dónde se encuentra el fichero .mdb que queremos abrir y lo seleccionamos. Es posible que se nos pida instalar un complemento java si no lo tenemos ya instalado, basta con pulsar en «Download» y tras finalizar, ya tendremos la base de datos Access disponible para su consulta en el navegador de bases de datos de la aplicación.

Como DBeaver tiene un asistente de exportación, podremos también extraer la información de la tabla que deseemos a un archivo .csv o .sql para su posterior carga en otra base de datos que no sea exclusiva de Windows.

Acceder a documentos almacenados en OneDrive desde Linux con Rclone

Para poder acceder a los documentos de OneDrive desde Linux puede usarse el programa Rclone, que mediante rsync nos permite montar un sistema de ficheros en local que refleje nuestros documentos en la nube de Microsoft. Se puede usar tanto en modo terminal como utilizando una interfaz más amigable.

Usando la terminal

En esta página hay unas instrucciones detalladas para instalarlo. La mayor pega que le encuentro es que es software propietario, aunque gratuito. Lo he probado en Debian 10 y ha funcionado correctamente. Permite subir, borrar y renombrar archivos o directorios. El borrado de documentos, sin embargo, no permite almacenamiento en la papelera, por lo que solo pueden eliminarse.

Una vez instalado el programa y configurado con nuestra cuenta de OneDrive, para poder acceder hay que lanzar un comando que monta en nuestro directorio local la unidad remota. Cuando paramos el comando, la unidad desaparece, por lo que si queremos que se mantenga continuamente montado y accesible tenemos que incluir el montaje en las aplicaciones al inicio.

Interfaz gráfica

Podemos usar la interfaz RcloneBrowser en caso de que queramos una forma más amigable de acceder a OneDrive desde Linux. La forma de instalarlo sería la siguiente (este ejemplo es para Fedora 33 que es donde lo he probado, pero sería similar para otras distribuciones Linux):

sdo dnf install rclone rclone-browser

Una vez instalado, la primera vez que lo ejecutamos nos aparece una ventana con tres pestañas. En la pestaña «Remotes» pulsando en el botón inferior que pone «Config…» se nos abre un diálogo similar al que obtenemos cuando configuramos el Rclone por terminal. Respondemos a las preguntas que nos va haciendo dejando las opciones por defecto (salvo los datos correspondientes a nuestra cuenta en la nube, claro) y al terminar nos aparecerá en la ventana un icono con forma de nube que al pulsarlo nos muestra un navegador de archivos que nos permite renombrar, mover, borrar, descargar, subir, etc. archivos a nuestro almacenamiento en la nube.