Cómo desactivar el ajuste automático de volumen de micrófono en Skype y GTalk

Haciendo audioconferencia me he encontrado a menudo con que el volumen del micrófono se intenta ajustar automáticamente a un volumen óptimo según el nivel de la señal. Pero cuando hay una pausa en la conversación o se cuela algún ruidito leve, el volumen se sube muchísimo y produce un montón de ruido o satura la línea. Esto hace que esta feature se vuelva inusable, y la quiero desactivar.

Buscando en google he visto que esto no es algo del sistema, sino una función que hacen tanto Skype como Google Talk (uso ambos). Para desactivarlo en Skype basta con ir a Opciones / Dispositivos de sonido y desmarcar la casilla “Permitir que Skype ajuste automáticamente mis niveles de mezclado“.

En Google Talk, en cambio, no hay una opción de interfaz para desactivar esto. Pero se puede hacer editando el siguiente fichero (en Linux):

~/.config/google-googletalkplugin/options

y añadiendo (o modificando) la siguiente línea

audio-flags=1

Si el fichero options no existe, se puede crear nuevo y añadir esa línea dentro.

Fuente de la información: How to stop Google Talk Plugin auto adjust Microphone volume ?!

Hecho esto, ahora para cambiar el nivel del micro habrá que hacerlo a mano desde la herramienta de control de volumen que tenga nuestro sistema.

Anuncios

Recuperación rápida y fiable de ficheros borrados en particiones ext3 y ext4

Éste es un clásico, lo sé, pero según pasan los años conviene actualizar las recetas que nos pueden salvar la vida después de un “rm -rf”.

La clave es encontrar un live CD con GNU/Linux para arrancar el equipo y conocer qué herramienta tiene más probabilidades de recuperar los ficheros perdidos, con sus nombres originales, manteniendo toda la estructura de directorios.

Mi recomendación es clara; ni systemrescuecd, ni Ubuntu Rescue Remix, ni Finnix, ni nada… directamente el Live CD de ArchBang (http://archbang.org/). Basada en la distribución Arch, ArchBang es liviana y, lo más importante, permite instalar la última versión de la herramienta de nuestros sueños, ext4magic (http://developer.berlios.de/projects/ext4magic/), sin tener que compilar o temer segmentation faults.

Así pues, los pasos son:

  • Apagar el equipo dañado inmediatamente. Cuanto más tardéis, más probabilidad de pérdida irreversible de datos tendréis.
  • Arrancar con el LiveCD de ArchBang en modo 32 bits para mayor seguridad. Podéis pasarlo a un USBLive, claro, pero es posible que en mitad del arranque se pierda la referencia al dispositivo y acabéis en un initramfs insulso. Depende bastante de tu hardware. El LiveCD funciona sin problemas.
  • Dado que ArchBang arranca en modo gráfico, id a una consola CTRL+ALT+F1 y ejecutad “passwd” para poner contraseña a root. También podéis hacerlo con “sudo passwd root” en un terminal virtual en el entorno gráfico. Convertíos en root.
  • Ejecutad “pacman -Syy” para actualizar listado de paquetes.
  • Ejecutad “pacman -S ext4magic”
  • (Opcional) Si tenéis dispositivos en RAID, ejecutad

modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

y confirmad que los dispositivos están detectados con “cat /proc/mdstat”. Es posible que no coincidan los nombres mdX con los que manejáis en vuestro entorno de ejecución. Lo importante es que sepáis cuál es cuál. Mi /dev/md0 pasó a ser /dev/md124 pero el resultado es el mismo.

  • Montad un dispositivo de almacenamiento externo como un disco USB o una partición de un disco independiente de la afectada y colocaos allí.
  • Ya sea una partición tipo /dev/sda3 o un dispositivo raid tipo /dev/md0,  ejecutad “ext4magic /dev/XXX -r -d DIRECTORIO” donde XXX se sustituye por sda3, md0, etc. Este comando recuperará desde el directorio raíz del dispositivo, todo fichero borrado en las últimas 24 horas y lo almacenará, respetando la estructura original de directorios en el directorio DIRECTORIO.
  • Si queréis saber lo que es recuperable antes de tratar de recuperar, podéis ejecutar antes “ext4magic /dev/XXX -l -d DIRECTORIO”.
  • ext4magic tiene muchas opciones y todas están bien descritas en http://openfacts2.berlios.de/wikien/index.php/BerliosProject:Ext4magic

Mi consejo es que un día que estéis ociosos, juguéis a borrar cinco o seis ficheros en una partición de prueba y luego tratéis de recuperarlos usando este sistema. Por supuesto, hacer copias de seguridad es la mejor prevención porque ext4magic no garantiza ningún resultado. Otros programas que probé, como extundelete, eran complicados de hacer funcionar, parecían algo abandonados y daban fallos. Photorec es útil si no te importa que todos tus ficheros recuperados pierdan sus nombres originales y la estructura de directorios, de ahí que pieda valer para fotografías, ya que los metatados son casi más valiosos que el nombre en sí.

Espero que esto sirva a alguno a no perder horas probando todas las posibles combinaciones.

Python y redireccionar utf-8 a un fichero

Un problema recurrente en python son los problemas con el encoding y concretamente uno de ellos es el problema de redireccionar la salida a un fichero.

Es bastante habitual escribir a la salida estándar información  y cuando esta es demasiada para verla o analizarla a simple vista, es muy normal redirigir la salida a un fichero, y entonces BOOM, todo explota. Veamos un ejemplo:

Creo un fichero, que vamos a llamar utf-8.py y que contiene:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
print u"¡Hola mundo!"

Al ejecutarlo normalmente “python utf-8.py”, obtenemos como resultado, lo esperado ¡Hola mundo!, pero si lo redirigimos a un fichero “python utf-8.py > /dev/null” casca nuestra aplicación.

Traceback (most recent call last):
  File "utf-8.py", line 3, in <module>
    print u"¡Hola mundo!"
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa1' in position 0: ordinal not in range(128)

Esto se debe a que python por defecto abre sus ficheros por defecto con codificación ascii, y por tanto, al abrir el fichero al que intentamos redirigir lo abre con codificación ascii, que no entiende los caracteres utf-8 que le hemos pasado (en este caso el carácter ¡).

Bien, una vez entendido cual es el problema, la solución es fácil, hay que decirle a python con que encoding por defecto se tienen que abrir los ficheros, y esto se hace a través de la variable de entorno PYTHONIOENCODING.

export PYTHONIOENCODING=utf-8
python utf-8.py > /dev/null

Y todo va perfectamente.

Cortes de Spotify en Ubuntu (instalado por Wine)

A mí también se me bloqueaba Spotify después de un cierto tiempo funcionando con normalidad, hasta que cambié un ajuste sencillo de audio en Wine…

Desde Ubuntu aceder a la configuración de wine y cambiar lo que sigue:

Menu/Aplicaciones/Wine/Configurar Wine:

  • Pestaña “Audio”:  Controlador Alsa (Desactivado) y Conrolador EsounD (Activado.
  • Pestaña “Aplicaciones”: Versión a Imitar:  “Windows XP”
“Aplicar” y listo.

Espero que os sirva, hasta que Spotify se digne a sacar una versión para Linux, y usuarios “No premium”.

Referencias:

http://crashbit.homelinux.com/node/1756

http://www.ubuntu-es.org/node/124169

Configurar Redmine en una sub-URL

Redmine por defecto está preparado para ser servido desde http://redmine.midominio.com (o similar). Puede que nos interese instalarlo en http://www.midominio.com/redmine. Después de mirar varios tutoriales, foros y probar mil opciones, logré dar con la solución:

  • Instalar mod_passenger para apache
    # apt-get install libapache2-mod-passenger
  • Habilitar el módulo
    # aenmod passenger
  • Añadir al virtual host las dos últimas líneas
         
    <VirtualHost *:80>
         ServerName subdominio.midominio.com
         DocumentRoot /home/user/application/
    
         ErrorLog /var/log/apache2/application.log
         LogLevel warn
         CustomLog /var/log/apache2/application-access.log combined
         DirectoryIndex index.php
    
         # Para servir el redmine
         RailsBaseURI /redmine
         RailsEnv production
    </VirtualHost>
    
  • Crear un enlace simbólico desde DocumentRoot/redmine a la ruta de instalación de redmine
    # ln -s /home/user/redmine-1.1.1/public /home/user/application/redmine
  • Reiniciar apache y listo, ya podemos acceder a redmine desde http://www.midominio.com/redmine
  • Instalar flash player en linux de 64 bits

    Lamentablemente, Adobe por ahora no tiene un reproductor de flash oficial compilado nativamente en 64 bits. Si tenemos un Linux de 64 bits y queremos ver vídeos flash en nuestro navegador, la solución que recomiendan es instalar el flash player de 32 bis, “envuelto” en un producto llamado ndiswrapper, pero esta solución no es muy buena: aparte de que nos perdemos la ventaja del rendimiento de 64 bits, el ndiswrapper no es demasiado estable.

    Sin embargo, existe otra opción: en realidad sí que hay un reproductor de 64 bits, lo que pasa es que aún está en estado beta, pero funciona aceptablemente bien. Se llama Flash Player “square”. Para instalarlo, seguir los siguientes pasos. Yo lo he probado en Ubuntu, pero en otras distribuciones será parecido:

    1) Cerrar cualquier navegador que tengamos abierto.

    2) Eliminar cualquier flash player que haya actualmente. Desinstalar con –purge cualquier paquete llamado flashplugin-installer o similar. Asegurarse de que no existe ningún libflashplayer.so en /usr/lib/mozilla/plugins. Si queremos estar seguros del todo, podemos ejecutar el siguiente comando para ver si hay algún flashplayer en el sistema (y esperar un buen rato mientras busca).

    find / -name “*flashplayer*”

    3) Ir a Adobe FlashPlayer “Square” y descargar el paquete (ver enlace “Download Flash Player “Square” y luego “Download plug-in for 64-bit Linux (TAR.GZ, 4.1 MB)”).

    4) Abrir el paquete, extraer libflashplayer.so y moverlo a /usr/lib/mozilla/plugins.

    Luego ya podemos abrir el firefox, por ejemplo, introducir about:plugins en la barra de direcciones y ver si ha detectado un plugin Shockwave Flash versión 10.3. Los otros navegadores, por ejemplo, Chrome, también reconocen el plugin si está instalado en ese mismo sitio.

    Comandos de linux poco conocidos: “yes”

    De vez en cuando, uno tiene que realizar un proceso que requiere contestar a un montón de preguntas por consola. Por ejemplo, en un proyecto de grails, cada vez que regenerabamos mediante scaffolding, teníamos que aceptar que reemplazase cada una de las clases del proyecto. Este proceso de repetir una y otra vez “y” ENTER, “y” ENTER, “y” ENTER puede llevarte rápidamente hasta la locura, a si que aquí va una ayuda.

    En linux tenemos el comando “yes”. Si se ejecuta sin parámetros, escribirá una linea con una “y” por pantalla hasta el infinito. Si se ejecuta con un parámetro, escribirá las lineas con ese parámetro.

    Por lo tanto para lanzar un comando, y responder con una “y” a todas las preguntas basta con hacer

    yes | comando

    Y para responder con una “s”, por ejemplo:

    yes s | comando

    Happy coding! 🙂