Comprobar permisos de Administrador en una ejecución (estilo 🐍 Python)

Habitualmente nos encontramos con la situación en la que debemos ejecutar ciertos programas o flujos de ejecución y necesitamos permisos de Administrador. Estas situaciones se nos presentan cuando tenemos que manejar carpetas y ficheros en acciones que impliquen lectura, escritura o ejecución en directorios protegidos del sistema. Para ello se requiere una elevación de permisos que deberemos comprobar si existe antes de lanzar nuestra ejecución.

Aprovechando que seguramente tengamos que hacer esto varias veces, creo que la mejor opción de hacerlo es con el mejor lenguaje pegamento que existe hasta la fecha, que no es ni más ni menos que Python. Por ello la solución final que vamos a plantear es excelente tanto para administradores de sistemas como para desarrolladores, siendo además multiplataforma GNU/Linux y Windows.

Tenemos que tener en cuenta que GNU/Linux y Windows no funcionan igual para la gestión de permisos. En Windows preguntaremos desde la API disponible si el usuario es administrador, mientras que en GNU/Linux preguntaremos por si el usuario tiene permisos root.

import ctypes, os
from sys import exit


def is_admin():
    is_admin = False
    try:
        is_admin = os.getuid() == 0
    except AttributeError:
        is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0

    print ("Admin privileges: {}".format(is_admin))
    return is_admin

Para mirar los permisos en Windows usaremos la librería ctypes y para los permisos en GNU/Linux usaremos la librería os. Ambas están incluida en Python. Por una razón arbitraría se ha elegido comprobar primero GNU/Linux y después Windows.

Cuando se comprueba en GNU/Linux invocamos a la función os.getuid que nos devolverá 0 en el caso de ser root. Si llamamos a la función desde Windows con Python nos elevará una excepción del tipo AttributeError, que aprovecharemos a capturar para hacer la comprobación en Windows invocando a la función ctypes.windll.shell32.IsUserAnAdmin. En ambos casos guardaremos el booleano de la evaluación y lo devolveremos al final de la función.

Hasta aquí sencillo, pero esto es código Python y es necesario tener el interprete de Python, con el que obliga al sistema a tener instalado el intérprete de Python. Para solucionarlo, deberíamos convertir nuestro código en un programa añadiendo un punto de entrada y devolviendo un código de retorno tras la ejecución.

import ctypes, os
from sys import exit


def is_admin():
    is_admin = False
    is_win = False
    try:
        is_admin = os.getuid() == 0
    except AttributeError:
        is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0
        is_win = True

    print ("Admin privileges: {}".format(is_admin))
    return is_admin, is_win

Antes modificaremos un poco la función is_admin()añadiendo un valor is_win que usaremos para saber que estamos comprobando en GNU/Linux o Windows los permisos de administrador, devolviendo el valor como un segundo valor en el retorno de la función.

Recordad que Python es posible recoger múltiples valores de retorno en una variable como una tupla, en variables separadas o incluso tirar los valores que no nos interesen.

def my_function():
    a = 2
    b = 3
    return a, b

a = my_function()
print(a)  # out: (2, 3)

a, b = my_function()
print(a)  # out: 2
print(b)  # out: 3

a, _ = my_function()  #  b es ignorado
print(a)  # out: 2

Además añadimos un punto de entrada debajo de la función is_admin().

if __name__ == "__main__":
    is_admin, is_win = is_admin()
    # Converting boolean to integer 
    ret = int(is_admin == False)
    if is_win:
        exit(ret)
    else:
        exit(ret * -1)

Comprobar si __name__ es __main__, es una excelente forma de hacer que cada unidad de fichero Python sea ejecutable si se quiere. El nombre de __main__ sólo es dado al fichero Python que es dado al intérprete para ser ejecutado y en caso de no serlo, siempre puede ser importado en otro fichero Python, sin que el punto de entrada afecte.

Como vemos, ahora estamos recogiendo en el retorno is_admin e is_win. Necesitamos el segundo valor para decidir el valor de retorno, ya que los códigos de error en Windows son enteros positivos y en GNU/Linux son enteros negativos. El único punto en común es que devolver un 0 es señal de que la ejecución fue correcta. Sabiendo esto debemos adaptar el retorno de los errores dependiendo el sistema.

💾 Binarizando nuestra aplicación Python

Para convertirlo en un ejecutable usaremos PyInstaller, el cual podéis instalar con un simple pip install pyinstaller. Para binarizar nuestra aplicación en un ejecutable autocontenido con el interprete de Python ejecutaremos:

pyinstaller -F is_admin.py

De esta forma resultará, mucho mas sencilla la distribución de nuestra aplicación.

👔 Puesta en Producción

Ahora vamos a plantear los dos casos de uso para Windows y GNU/Linux. Como aclaración, decir que los ejemplos expuestos se pueden usar tanto con la versión binarizada o con la de código invocando al intérprete de Python.

Windows

@echo off

cd
cd /D "%~dp0"
cd

#REM python is_admin.py
is_admin.exe

if errorlevel 1 (
   echo Exit Code is %errorlevel%
   echo.
   echo Admin privileges required
   echo Run it again as Administrator
   echo.
   pause
   exit /b %errorlevel%
)

#REM [your_executable].exe

pause

👀 Puedes descargar la versión binarizada de is_admin.exe

GNU/Linux

#!/bin/bash

pwd
cd `dirname $0`
SCRIPTDIR=`pwd`
pwd

#python is_admin.py
is_admin


if [ $? -eq 0 ]
then
  # [your_executable]
else
  echo Exit Code is $?
  echo.
  echo Admin privileges required
  echo Run it again as Administrator
  echo.
  read -rsp $'Press any key to continue...\n' -n 1 key
  exit $?
fi

read -rsp $'Press any key to continue...\n' -n 1 key

Si no estás tan familiarizado con el Bash te invito a que visites el proyecto ExplainShell para que puedas obtener la explicación de los diferentes comandos y argumentos.

🥅 Conclusiones

La solución presentada, sin ser seguramente perfecta, asegura tanto a administradores de sistemas como desarrolladores, comprobar si existen los permisos de administrador necesarios de manera sencilla; pudiendo hacerlo con una versión binarizada autocontenida que incluya el intérpretete Python, ejecutándolo usando el intérprete de Python del sistema gracias a ser todo dependencias internas, o llamando directamente a la función is_admin() si se quiere integrar en un desarrollo.

El código completo puedes encontrarlo en el siguiente gist de GitHub:

Espero que esta forma de trabajar te resulte útil y puedas extrapolarla y usar para otros casos Python como tu lenguaje pegamento generando código y aplicaciones altamente reutilizables.

Feliz Navidad y Próspero Año 2021

Este año ha sido raro y quizás especialmente duro para algunos con todo el tema del COVID19. Pero como se suele decir, no hay mal que por bien no venga. En mi caso, como supongo que el de muchas otras personas, me ha llevado a replantearme la escala de lo que considero realmente importante, dándome cuenta de que ciertas cosas que consideraba importantes no lo eran tanto y a otras que sí lo eran, no les estaba dedicando el tiempo necesario.

Una de esas cosas que había dejado un poco de lado, era Mascando Bits; el cual tras el último mes creo haber resucitado, nutriendo el blog de nuevo con artículos, que han sido un poco distintos a los que suelo hacer pero que me he sentido a gusto haciendo. Creo que forma parte de la evolución que debe tener un blog de carácter personal como este.

No quisiera dejar de agradecer a todos aquellos que habéis dedicado unos minutos durante este año, para plasmar en comentarios de los distintos artículos que os han gustado, os han sido de ayuda, o incluso algunas correcciones y aportes… Anima un montón a seguir escribiendo cuando ves que hay alguien al otro lado que responde. 😊

Sólo me resta desearos con mis mejores deseos ¡Felices Fiestas! (para los agnósticos y ateos), ¡Feliz Navidad! (para los creyentes) y ¡Feliz Año 2021! (para TODOS 😉 ). ¡Nos vemos a la vuelta!

Historia del impresionante resurgir de AMD y de cómo Intel no lo vio venir – Acto2

Buscando el trasfondo que permite entender la situación actual de Intel y el tremendo auge de AMD, en la anterior entrada contextualizábamos en grandes términos la situación de Intel. Relatando cómo Intel se encontraba en una situación de dominio absoluto, y cómo esa falsa seguridad de no tener competencia relevante que empañase sus ingentes beneficios, aderezado con unas serie de eventualidades, hacen tropezar a Intel dejando vía libre a AMD.

En 2019 llega Zen2. Zen 1 fue una zancadilla que le puso AMD a Intel pero Zen2 es un rodillazo en la cabeza en toda regla. Mientras Intel sigue sin ver la luz, AMD dobla su apuesta, 16 núcleos para la gama doméstica y 64 para servidores. Una vez más AMD vuelve a duplicar el número de núcleos. Intel definitivamente no puede seguir el ritmo. Se espera que su respuesta sea un procesador de 10 núcleos para la gama doméstica y uno de 48 para la gama profesional, que en realidad no son más que 24 núcleos unidos. Ninguno de ellos es suficiente para superar el rendimiento AMD, además se espera que los precios de estos nuevos procesadores sean estratosféricos y su disponibilidad tan limitada que será como si prácticamente no existieran.

En este momento AMD ya se encuentra en un proceso fabricación de 7 nanómetros que les permite hacer procesadores más pequeños, o dicho de otra forma, obtener más procesadores de la misma oblea de silicio. De esta forma el procesador va a ser más barato de fabricar, además de que se va a necesitar menos corriente eléctrica para alimentarlo y va a generar menos temperatura. Pero sobre todo, al ser más corto el circuito, menos tiempo tardará la corriente en recorrerlo de punta a punta, por lo cual el procesador también va a ser algo más rápido.

Pero os estáis preguntando cómo es que AMD puede aumentar el número de núcleos casi sin esfuerzo. ¿No sufren los mismos problemas que Intel a la hora de fabricar procesadores? ¿Cómo es que Intel no puede hacer procesadores con muchos núcleos pero AMD sí? La respuesta a estas preguntas son los chiplets.

¿Qué son los chiplets?

Para abaratar los costes los nuevos procesadores están hechos de partes más pequeñas, llamadas chiplets, en vez de un chip único y grande (monolítico).

  • Los chiplets son componentes independientes que se agrupan para construir un chip más grande.
  • Los chiplets son más pequeños y son más fáciles y baratos de fabricar.
Procesador compuesto por varios chiplets

Hasta ahora, los procesadores se fabricaban con arquitectura monolítica. El diseño monolítico significa que todos los componentes del procesador (ALU, AGU, CU, cache, etc.) están fabricados juntos y en contacto. Como consecuencia, si alguno de esos circuitos falla, todos quedan inservibles.

A medida que los transistores se han hecho más pequeños, el número de fallos por oblea ha ido aumentando; haciendo que el coste de fabricación de circuitos de manera monolítica sea cada vez mayor. Por otro lado, como los chiplets son fabricados de manera independiente del resto de componentes del procesador, si un chiplet falla, no hay que tirar todo el procesador entero, se sustituye por otro y solucionado.

Apuesta de AMD en los procesos de fabricación para abaratar costes y mejorar su competitividad

AMD es una compañía mucho más pequeña que sus competidores (Intel o Nvidia). No pueden permitirse gastarse tanto dinero como estas, desarrollando arquitecturas, por lo tanto siguen la filosofía de hacer las cosas para durar. AMD no desarrolla una arquitectura pensando que dure dos años y luego desarrolla otra. No puede permitirse hacer esto, AMD desarrolla arquitecturas pensando en que duren al menos una década y fue esa filosofía la que siguieron para crear la arquitectura Zen. ¿Cómo podemos crear una arquitectura que nos dure muchos años y que no tengamos que invertir en dos años un dineral para crear otra arquitectura?

Además por aquel entonces ya se olían lo que ocurriría con los procesos de fabricación. Esperaban que la ley de Moore dejase de estar vigente pronto, por lo tanto su arquitectura tenía que ser capaz de lidiar también con esto y no depender de procesos de fabricación para aumentar el número de núcleos. ¿Y cómo lo hicieron? De una forma muy inteligente, desarrollar procesadores como si fueran un Lego, los chiplets. 😉

El diseño de los procesadores de AMD orientados a la fabricación

En AMD crearon un procesador de cuatro núcleos, este procesador va a ser nuestra pieza de lego. Igual que los legos, podemos juntar piezas para crear procesadores más grandes. ¿Quieres un procesador de ocho núcleos? Pues te junto dos piezas. ¿Quieres uno de 16 núcleos? Pues te junto cuatro piezas. Esto para una empresa las características de AMD es extremadamente interesante porque no tienen que desarrollar toda una gama de procesadores desde 4 a 64 núcleos. No, sólo tienen que centrarse en desarrollar un procesador de cuatro núcleos y luego los unen como si fuesen piezas de lego para crear el resto de la gama. La salsa secreta que hace a Zen funcionar es Infinity Fabric.

SCF: Scalable Control Fabric
SDF: Scalable Data Farbic
A. SCF conecta los elementos de procesamiento
B. SDF permite comunicaciones coherentes a lo largo de las caches y entre la caché y la memoria.
C. Ambos, SCF y SDF escalan mediante MCM (Multi-Chip Module) y sockets

Infinity Fabric es la conexión que ha desarrollado AMD para unir esos procesadores de cuatro núcleos, para crear procesadores más grandes. Esta es la primera ventaja de Zen. Desarrollar estos procesadores es más barato y sencillo. Pero pensemos un poco más en esto de las piezas de lego. ¿Realmente me sirven para algo?

Si me ahorro dinero a la hora de diseñar procesadores, pero a la hora de fabricar un procesador de 64 núcleos, sigo teniendo un procesador enorme, es súper difícil y carísimo de fabricar. ¿Cuál es la forma de resolver este problema? Bien, ¿es posible no unir las piezas de lego en el diseño y luego fabricar el procesador; sino hacerlo al revés, fabricar las piezas de lego por separado y después una vez fabricadas unirlas? Es decir, en vez de tener lo que se conoce como un chip monolítico, que es la forma tradicional de fabricar procesadores, no imprimir todo el procesador del tirón. Fabricar cada una de las piezas que forman el procesador por separado y luego soldarlas. La respuesta es, sí se puede y esa es la clave por la que AMD está superando a Intel. Fabricar un procesador de 64 núcleos es muy difícil, es un chip demasiado grande, no es viable fabricar algo así.

Sin embargo AMD no fabrica procesadores de 64 núcleos, AMD fábrica procesadores de 8 núcleos, procesadores pequeños fáciles y baratos de fabricar. Después AMD suelda estos chips de 8 núcleos en un mismo PCB. Para unirlos entre ellos, el primer intento de hacer esto fueron los procesadores Threadripper y EPYC basados en ZEN 1 de hasta 32 núcleos. Eran literalmente cuatro procesadores de 8 núcleos soldados en un mismo PCB y cada uno de esos procesadores de 8 núcleos en realidad internamente eran dos procesadores de cuatro núcleos unidos.

Zeppelin de 2 procesadores y 8 núcleos

Pero pegar directamente procesadores de ocho núcleos (conocidos como zeppelin), no es demasiado eficiente, esto tiene muchos problemas como lo que estamos duplicando parte del hardware. Un procesador no sólo son núcleos, hay mucho más, como por ejemplo el controlador de memorias para comunicar el procesador con la memoria RAM. Si junto a cuatro procesadores tengo cuatro controladores de memoria. ¿Realmente necesito cuatro? Tengo mucho hardware innecesario. Además esto de tener hardware duplicado crea muchos problemas, porque por ejemplo el controlador de memoria de un núcleo es posible que para acceder a la memoria tenga que acceder en realidad al controlador de memorias de otro núcleo y que ese controlador de memoria sea el que acceda a la memoria. Vamos un lío tremendo y una cosa nada eficiente.

Refinando la fórmula del diseño

Zen 2 la segunda iteración de la arquitectura Zen, es donde está lo realmente interesante. Con Zen 2 en vez de fabricar procesadores completos de ocho núcleos que luego soldamos, vamos a fabricar chipplets, es decir unos chips donde sólo tenemos ocho núcleos. Nada de controlador de memorias, nada más… sólo ocho núcleos y las memorias que necesitan para trabajar. Después vamos a crear otro chip con el controlador de memoria y todas las cosas que necesitamos para conectar el procesador con el resto de componentes del PC. Además este chip va a ser el punto de encuentro de los chiplets, es decir, todos los procesadores de 8 núcleos van a estar unidos a este núcleo central donde habrá una memoria caché dedicada para que los núcleos se comuniquen entre ellos.

IOD: proceso de fabricación 12 nm
Procesador de8 núcleos: proceso de fabricación 7 nm

¿Cuál es el resultado de todo esto? El resultado es que AMD a diferencia de Intel, no fabrica un procesador de 4 núcleos, otro de 6, otro de 8, otro de 10… y así hasta 28 núcleos. Se necesitan un montón de líneas diferentes para fabricar todos estos procesadores y es mucho lío. No, AMD sólo fábrica chiplets, procesadores de 8 núcleos. Un sólo procesador, todos idénticos y además los chipplets son enanos. Acceso a núcleos y memoria caché es una cosa muy pequeñita, esto hace que se puedan producir chiplets en masa de forma muy barata. Producir chips pequeñitos es rápido y fácil; y además si sólo tienes un modelo de procesador, puedes optimizar toda la cadena de producción para ese procesador haciéndolo de la forma más barata y rápida posible.

Y diréis: pero AMD también tiene procesadores de seis núcleos, por ejemplo los Ryzen 5. Bien, los Ryzen 5 en realidad son procesadores de 8 núcleos pero dos de ellos están desactivados

¿Qué pasa si hay un fallo en la oblea y tienes algunos chiplets donde ha quedado por ejemplo un núcleo defectuoso? ¿Se tira a la basura? No, si sólo hay un núcleo defectuoso desactivas dos y se convierte el chiplet en un chiplet de 6 núcleos y con él creas un Ryzen 5. Y si en vez de fallarte un núcleo, te han fallado tres o cuatro, pues creas un chiplet de cuatro núcleos y creas con él un Ryzen 3. Aquí se aprovecha todo, no se tira nada a la basura.

Ryzen 3: 4 núcleos 8 hilos
Ryzen 5: 6 núcleos 12 hilos
Ryzen 7: 8 núcleos 16 hilos

¿Pero no es esto un desperdicio de dinero? Es decir, desactivar algunos núcleos porque sí. Bueno es que no todos los procesadores salen igual. Hacer procesadores es como hornear galletas, no todas son iguales, algunas salen más grandes otras más pequeñas, algunas más tostadas y otras más crudas. Lo mismo pasa con el silicio, el proceso de creación de los procesadores que se conoce como fotolitografía es imperfecto. Por eso no todos los procesadores quedan iguales. Algunos necesitan más voltaje para funcionar, otros no consiguen alcanzar ciertas frecuencias no importa lo que hagas y algunos directamente no funcionan. Así pues, ¿qué hacen con los procesadores que no son perfectos? Pues los venden como gamas más bajas con algunos núcleos activados y frecuencia más baja, así es cómo nacen las distintas gamas de Ryzen en los procesadores que se fabrican. Son todos iguales, pero los mejores van para un modelo y los peores para otro.

Versionado de modelos de procesadores AMD Ryzen

Después también hay que fabricar ese núcleo central, pero la gracia es que ese núcleo central no necesita estar hecho en un proceso de fabricación moderno, ahí no hay núcleos haciendo operaciones. No hace falta un máximo rendimiento o la máxima eficiencia a las máximas frecuencias. No, es una cosa sencilla donde hay controladores y una memoria caché, por lo que se puede fabricar con un proceso de fabricación diferente. Mientras los chiplets se fabrican a 7 nanómetros, el núcleo central se puede fabricar a 12 nanómetros que es más barato. De esta forma, gracias a los chiplets, AMD es capaz de fabricar de forma barata, procesadores con un gran número de núcleos; y es la razón por la que AMD puede vender un procesador de 64 núcleos a mitad de precio de lo que Intel vende un pensador de 28 núcleos. Y también pueden hacer locuras como procesadores de 16 núcleos para la gama doméstica.

En realidad el diseño Mesh de Intel que hemos visto en el anterior artículo es más eficiente que Infinity Fabric de AMD. Las latencias en las comunicaciones entre núcleos son inferiores en el diseño de Intel, pero el diseño de Intel está limitado por los procesos de fabricación y el silicio, por lo tanto aunque en la teoría sea superior, en la práctica Zen 2 le pasa por encima. Ahora bien, no cometamos el error de subestimar a Intel.

Intel han sido los líderes en procesadores durante los últimos 50 años. Es una empresa gigante con muchísimo dinero y los mejores equipos ingenieros del mundo. Además recientemente se han dedicado a fichar talentos de otras empresas. Por ejemplo, Jim Keller el cerebro que estuvo detrás de la arquitectura Zen, tras acabar el desarrollo de Zen, abandonó a AMD y se pasó a Intel.

Jim Keller

Intel ya está trabajando en futuras arquitecturas y ha mostrado algunas de ellas, como por ejemplo Foveros, el cual es un diseño de chiplets similar a Zen pero en 3D. Es decir, los chiplets en vez de soldarse todos en un mismo PCB, se pueden apilar unos encima de otros. De esta forma se puede hacer que la conexión entre chiplets sea extremadamente rápida y así el diseño sea mucho más eficiente.

Diseño Foveros

Intel va a responder. AMD les ha pillado en el peor momento que podían pillarles, pero responderán. Tardarán tres o cinco años, pero entre 2021 y 2026 veremos la respuesta de Intel, y de hecho la última vez que AMD puso en aprietos a Intel, la respuesta de Intel fue la arquitectura Core que mandó a AMD al olvido durante casi una década. Pero a diferencia que en aquella época, AMD a día de hoy tiene una hoja de ruta. Es decir, AMD no ha lanzado ZEN 2 y se van a quedar ya ahí, no se van a sentar en el sofá a vender y punto. No, AMD ha anunciado que el diseño la tercera generación de la arquitectura Zen ya ha terminado y la cuarta generación de la arquitectura Zen está ya en fase de diseño. Por lo tanto, en los próximos años vamos a ver una pelea apasionante entre AMD e Intel, lo cual es extremadamente bueno para los consumidores.

Que AMD e Intel compitan va a provocar que lancen mejores productos a precios más bajos. De hecho antes de que la arquitectura Zen llegase al mercado, un procesador de 8 núcleos 16 hilos te costaba 1000€. A día de hoy se han llegado a ver Ryzen 7 1700 por hasta 100€. Se ha dividido entre 10 el precio de ese tipo de procesadores. También antes de que empezase esta competencia entre Intel y AMD el estándar en PC era entre dos y cuatro núcleos. A día de hoy la gama media ya son seis núcleos, y eso tan sólo en 23 años de competencia. Esperemos que AMD e Intel compitan durante muchos años porque nos va a venir muy bien a los consumidores.

Qwant – Recuperando la búsqueda orgánica

¿Nunca has tenido la sensación de que Google te muestra lo que quieres ver en vez de lo que has buscado? ¿Cuántas veces has buscado algo o hablado de algo y ves que hasta los anuncios parece que te han oído? ¿Te has fijado lo que pasa cuando ves en un red social, por ejemplo vídeos de «gatitos», cómo de repente te empiezan a recomendar tantos vídeos de gatitos que no podrías terminar de verlos ni en una vida… Incluso cuando quieres prestar tu atención en otra cosa, tu atención es robada por vídeos de gatitos… Sí, los algoritmos de búsqueda y de recomendación tienen vida propia y compiten por tu atención.

¿Te has planteado alguna vez cuando buscas en Google, si realmente te está buscando el mejor resultado de acuerdo a tu búsqueda? ¿O es una búsqueda sesgada por intereses comerciales (mayormente publicitarios), mezclada con contenido que capte tu atención y te retenga? Si usas el buscador de Google, te adelanto que estás en el segundo caso y lo que debería ser una búsqueda de acuerdo a posicionamiento natural u orgánico, resulta que no lo es, siendo algo coyuntural y anecdótico lo que realmente buscas. Esto quiere decir que los resultados mostrados no son los que tú estás buscando, sino los que Google por diversos ajustes en sus algoritmos está seleccionado para ti.

Esto crea lo que se conoce como un efecto burbuja de información y de contenido, los algoritmos de búsqueda y recomendación van a reforzar el tipo de búsquedas que mejor encajen con tu perfil, porque sí, lo que Google busca es hacer perfiles, conocerte mejor, para ofrecer el mejor servicio de publicidad del mundo y eso implica entender qué llama tu atención. Alguno puede pensar que se salva porque navega de manera privada en Chrome, y nada más lejos de la realidad. Chrome es la punta de lanza con la que Google ha copado el mercado de los navegadores y que usa para que su negocio de publicidad esté mejor controlado y sea más prospero.

Tampoco te libras si usas Firefox y usas el buscador de Google. Ni aún navegando en privado, ya que siempre hay elementos que pueden identificarte (aunque Firefox trabaja incansablemente para protegerte de ese rastreo), como la IP desde la que te conectas que puede acotar una zona geográfica, las maravillosas cookies (esas que acabas aceptando porque no puedes decir que no), las cosas que buscas (dónde entras…, qué miras…) …

⚠️ Recuerda que todo esto no es por la privacidad, que también debería importarte, sino que esto va de la visión sesgada que recibes cuando un buscador como el de Google da los resultados que da cuando haces una búsqueda, los cuales son sesgados y acomodados a tu perfil.

Foto Buscador de Google 2013 obtenida de Principiantes Socialmedia

Todo esto se mezcla con el SEO (Search Engine Optimization) y el SEM (Search Engine Marketing), que en sí constituyen un negocio, en el que al final el que más relevancia tiene suele ser el que más paga… Alguno pensará que es normal, y lo era… Ya que antiguamente Google tenía en el resultado que veías sin hacer scroll, una parte de resultados orgánicos y otra de promocionados. Actualmente voces del sector dicen que toda la primera página, y hasta la décima página de resultados, son resultado convenientemente colocados por Google, ya sea para publicitarte algo o para retener tu atención de una forma u otra. Sobre este tema, puedes encontrar un buen documental en Neflix llamado «El dilema de las redes sociales» .

Qwant una alternativa a Google con sello Europeo 🇪🇺

Qwant es un buscador que se autodefine como «el primer motor de búsqueda europeo, eficiente y ético». Su motor de búsqueda respeta tu privacidad, y esto lo hace ofreciendo una garantía de neutralidad e imparcialidad en la que ofrece los mejores resultados disponibles para tus consultas y nunca intenta adivinar quién eres o qué estás haciendo. Esto hace que toda la web sea visible «sin ninguna discriminación y sin prejuicios». Afirman que sus algoritmos de clasificación «se aplican por igual en todas partes y para todos los usuarios, sin intentar presentar sitios web o esconder otros basados en intereses comerciales, políticos o morales».

Instalación en Firefox 💾

La instalación en Firefox es muy cómoda. Entra en Qwant dale a «Add Qwan to Firefox» y sigue los pasos.

Puedes elegir que Qwant sea tu motor de búsqueda por defecto o no, pudiendo cambiar los ajustes en «Opciones > Buscar«. 💡 Como consejo adicional decirte que puedes asignar atajos para indicar si usas un buscador u otro en tus búsquedas en la barra del navegador (por ejemplo «q mascandobits» o «@google mascandobits»).

💡 También puedes seleccionar el motor de búsqueda desde la barra de búsqueda antes de darle a enter, seleccionado el buscador que quieres usar.

Más ℹ️ información en la ayuda de Firefox.

Móvil 📱

Para Firefox móvil la cosa no es tan cómoda, pero puedes añadir Qwant como motor de búsqueda y si quieres puedes hacerlo buscador predeterminado en «Ajustes > Buscar». Si quieres añadir Qwant como motor de búsqueda, dale a «Añadir buscador > Otro» y rellenas:

  • Nombre: Qwant
  • Cadena de búsqueda a usar: https://www.qwant.com/?l=es&q=%s

Con eso ya puedes usar Qwant desde tu Firefox móvil. Lamentablemente tiene que hacerse así porque la extensión de Qwant no funciona en la versión móvil, como tantas otras que requieren de una actualización para ser usadas en versiones modernas de Firefox.

Instalación en Chrome 💾

La instalación en Chrome también es muy cómoda, aunque nos metemos en la guarida del lobo (a Google no le gusta que el motor de búsqueda en Chrome sea otro al suyo) y tienes sus peros. Entra en Qwant dale a «Add Qwan to Chrome» y sigue los pasos.

Por motivos internos que se desconocen y que no han trascendido, con la extensión de Qwant obligatoriamente tienes que usarlo como motor predeterminado y desactivar la extensión para elegir otro. Seguramente tenga mucho que ver con estos mensajes que te saltan en el navegador, en un amago de rescatar la posición de privilegio del motor de Google en su navegador Chrome:

Entiendo que no es una opción del todo cómoda, pero si quieres tener la posibilidad de elegir motor de búsqueda predeterminado puedes introducirlo manualmente. Google se reserva el hecho de sacarlo en cualquier momento de la lista de motores de búsqueda predeterminados, razón por la que ya ha sido varias veces sancionado por la Unión Europea por abuso de posición dominante. Para ello ve a «Configuración > Buscador > Administrador buscadores«. Si quieres añadir Qwant como motor de búsqueda dale a «Añadir» en las sección «Otros buscadores» y rellenas:

Un vez creado aparecerá en la lista que hay debajo de «Otros buscadores», dale a los tres puntos para establecerlo como predeterminado.

⚠️ Si lo quitas como predeterminado desaparecerá de la lista de los navegadores seleccionables y tendrás que volver a hacer este paso de añadirlo como predeterminado.

Ahora veis la razón del comportamiento de la extensión de Qwant. 😎 En cualquier caso, aunque lo quitéis como predeterminado lo podréis seguir usando para buscar si usáis la palabra clave al principio de vuestra búsqueda en la barra de búsqueda de Chrome (por ejemplo «@qwant mascandobits»).

Móvil 📱

Para Chrome móvil, siendo Android bastión de Chrome, la cosa está complicada y mucho… Es imposible añadir un nuevo buscador en «Configuración > Buscador», sólo permite elegir entre los que te ofrece y vuelve a reservarse el derecho Google de poner su buscador como buscador predeterminado.

Aún así existe una pequeña opción de usar Qwant como motor de búsqueda predeterminado. Es iniciando sesión con una cuenta de Google en Chrome, en un equipo de sobremesa y habilitar la sincronización, pudiendo así sincronizar extensiones. ¡Muy buena Google!, así puedes controlar la extensión, no se te escapa una 😉😅. Reza el dicho que: «mantengas cerca a tus amigos, pero aún más cerca a tus enemigos«.

Tristemente la mejor opción de usar Qwant en Chrome desde un móvil, es estableciendo Qwant como página principal. 😢

Impresiones

Qwant ♥️ Firefox 👌

Llevo ya unos cuantos meses usándolo y estoy encantado con Qwant, lo tengo como motor principal de búsqueda. No lo he sustituido completamente por Google, porque a veces resulta interesante el efecto burbuja de los resultados de sus búsquedas, sobre todo en ámbitos profesionales. No obstante cuando quiero abrir mi mundo, mi herramienta es Qwant sin duda.

Además no debemos olvidar que cotejar varias fuentes es algo básico en nuestra sociedad de la «desinformación». Y un buscador por mucho que nuestras leyes digan que es, o debería ser, un agente neutro, no lo es. Coteja varios resultados de distintos buscadores siempre y no uses sólo uno.