Problemas con micrófono en portátil Lenovo

Qué hacer si en mi portátil Lenovo no funciona correctamente mi micrófono integrado? En mi caso, tengo una tarjeta de sonido que Linux Mint identifica como Realtek ALC236. Para ver qué tipo de tarjeta de sonido identifica tu sistema operativo, puedes lanzar este comando:

cat /proc/asound/card*/codec* | grep Codec

Editamos el siguiente fichero:

nano /etc/modprobe.d/alsa-base.conf

Añadimos al final del archivo la siguiente linea:

options snd_hda_intel model=inv-dmic

Reiniciamos el PC y probamos. Revisa también alsamixer para que en el apartado de Capture (F4), el internal Mic Boost esté a un valor bajo (por ejemplo 22%) y el Capture esté al 100%.

Con esto debería ser suficiente. Suerte!

Esta solución ha sido extraída de https://forums.linuxmint.com/viewtopic.php?t=352677

Otras soluciones no probadas: https://gist.github.com/Therises/d2e91c81af1574f9069635d520fdc7ec

ping y traceroute en un sólo comando: mtr

El comando mtr de Linux es una herramienta muy útil para la monitorización de la calidad de la red. A diferencia de otros comandos como ping y traceroute, mtr combina la funcionalidad de ambos y proporciona una visión más detallada del estado de la red en un solo paquete.

Al ejecutar mtr, se realizan continuamente ping a un host específico y se muestra un informe en tiempo real del rendimiento de la red en cada salto intermediario. Esto permite detectar de forma rápida y sencilla problemas de conectividad o congestión en la red.

Además, mtr permite personalizar la cantidad de paquetes enviados y el intervalo de tiempo entre cada ping, lo que puede ser útil para realizar pruebas más exhaustivas en situaciones en las que se requiera un análisis más detallado del rendimiento de la red.

En resumen, el comando mtr de Linux es una herramienta muy útil para la monitorización de la calidad de la red. Ofrece una visión detallada del rendimiento de la red en tiempo real y permite personalizar la cantidad de paquetes enviados y el intervalo de tiempo entre cada ping. Si necesita monitorear el estado de su red, el comando mtr es una excelente opción.

Cómo restringir el acceso a tu web mediante htaccess

Usaremos el método de usuario y contraseña (Auth Basic) para acceder a la web ( o a una sección de la web ).

Paso 1. Crea un archivo de .htpasswd. Si ya existe, añade un usuario de la siguiente manera:

#con el parámetro -c crea el archivo
root$ htpasswd -c /home/user/.htpasswd username
#esto añade un usuario al htpasswd existente
root$ htpasswd /home/user/.htpasswd username

Este comando pedirá una contraseña, dos veces. Luego se puede comprobar que el archivo existe y está realmente cifrado:

root$ cat /home/user/.htpasswd
username:$aphash$QZN123D$c444B.B8838L1Vaa.aOf.

Paso 2. Crea el archivo .htaccess en el directorio que quieras proteger. El contenido debe ser el siguiente:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /home/user/.htpasswd
Require valid-user

Y fin, con esto tendremos el directorio protegido y requerirá un usuario y contraseña válidas para acceder.

Exportar (e importar) bases de datos con mysqldump

La herramienta de mysqldump, nos permite exportar las bases de datos completas de la siguiente manera.

mysqldump -u usuario -pcontraseña nombre_base_de_datos > toda_la_bbdd.sql

También es necesario a veces exportar sólo una tabla de la base de datos, para ello haremos lo siguiente

mysqldump -u usuario -pcontraseña nombre_base_de_datos nombre_de_tabla > solo_una_tabla.sql

Pero es que además, puedes exportar sólamente algunas entradas de la base de datos de la siguiente manera:

mysqldump -u usuario -pcontraseña nombre_base_de_datos nombre_de_tabla --where="created_at>='2020-11-16'" > algunos_pocos_registros.sql

Para importar en la base de datos destino sólo deberás ejecutar:

mysql -u usuario -pcontraseña nueva_base_de_datos < mi_archivo.sql

Fácil y util!

Crear y establecer un campo autoincremental manualmente en MySQL

Más que un artículo es una autonota, con una situación en la que me he encontrado hoy mismo.

A veces pasa que por error o necesidades del proyecto, te encuentras con una tabla que no tiene un clave primaria. Al querer añadir un nuevo campo id resulta que todos se establecen a 0, y no puedes usar el AUTO_INCREMENT de MySQL ni siquiera establecerlo como PRIMARY_KEY. Para solucionarlo hay que poner manualmente un valor distinto para cada registro.

Para hacerlo rápidamente, podemos recurrir a esta query:

SET @position := 0; -- Define una variable
UPDATE mi_tabla
SET id = (@position := @position + 1)
WHERE id = 0;

Esto cambiará todos los campos ID por un valor que se genera usando la variable @position, y así establecemos un id diferente, que nos permitirá cambiar el campo como PRIMARY_KEY y AUTO_INCREMENT.

Comando grep

Este será un artículo práctico, en el que pondré algunos ejemplos de cómo encontrar archivos que contienen una cadena de texto determinada.

A mi me pasa en muchas ocasiones, intentar encontrar en qué lugar de una aplicación (su código fuente) hay una cadena de texto concreta – ya sea la definición de una constante o una palabra clave que en algún momento puse – resulta en ocasiones más que entretenido.

Es cierto que si utilizas frameworks como Eclipse o similares, estas opciones suelen venir integradas de manera más o menos sencillas, pero trabajando desde un terminal, la cosa cambia.

El comando que nos permitirá realizar una búsqueda de una cadena de texto dentro de uno o más ficheros o incluso toda una estructura de directorios, es grep.

A continuación aquí van algunos ejemplos básicos y muy habituales:

pedro@pedro-laptop:/home/pedro$ cat catalina.out | grep UPDATE

o también

pedro@pedro-laptop:/home/pedro$ grep UPDATE catalina.out

Estos dos comandos hacen lo mismo, muestra por pantalla todas las líneas que contengan la palabra UPDATE dentro del fichero catalina.out.

pedro@pedro-laptop:/home/pedro$ tail -f /var/log/syslog | grep usb
pedro@pedro-laptop:/home/pedro$ tail -f /var/log/apache2/access.log |grep web_concreta.html

Así podremos ver en tiempo real qué dispositivos usb se conectan y desconectan al PC o cuando se está accediendo a una web_concreta.html en Apache, respectivamente.

Si lo que necesitamos es buscar de manera recursiva en la estructura de directorios, basta con usar la opción -r:

pedro@pedro-laptop:/home/pedro$ grep -r UPDATE /path/to/dir

También podemos mostrar el archivo que contiene la cadena que estamos buscando, en vez de mostrar sólo el contenido del fichero:

pedro@pedro-laptop:/home/pedro$ grep -H -r usb /var/log/

El anterior comando muestra los archivos y la linea que contiene usb dentro de /var/log y todos sus subdirectorios.

Si lo que necesitamos es mostrar únicamente el fichero sin mostrar el contenido, también es posible:

pedro@pedro-laptop:/home/pedro$ grep -lr usb /var/log/

Si sabemos el nombre o la extensión del archivo que estamos buscando podemos acotar más la búsqueda, ejecutando el siguiente comando:

pedro@pedro-laptop:/home/pedro$ grep -Hr hidden /ruta/a/directorio |grep nombre_de_archivo

Esto nos mostrará todos los ficheros llamados nombre_de_archivo que se encuentran dentro de /ruta/a/directorio y que contienen hidden.

Si lo que necesitas es encontrar la cadena de texto -r, puedes usar las comillas dobles:

pedro@pedro-laptop:/home/pedro$ grep -H -r «-r» /var/log/

Cabe recordar que si el resultado del comando es un listado demasiado largo, tenemos la opción de añadir al final de cualquiera de los anteriores comandos | more que nos permitirá paginar los resultados encontrados, o bien añadir también al final > resultados.txt para generar un fichero de texto con los resultados obtenidos. Añadiendo >> resultados.txt, añadiremos los resultados al final del fichero.

Un saludo!