Delirios de un Informático

Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003

La PS3 no soporta ciertos formatos bastane utilizados como ciertas versiones de XviD o MKV, por lo que tras descargarse una película en esos formatos es necesaria una conversión a algún formato soportada por la consola. Tras varios intentos fallidos o demasiado complejos con Avidemux, ffmpeg y mencoder, di con Handbrake, que realiza la conversión a M4V con un par de clicks y aprovechando la potencia de los procesadores multinúcleo…

2/Dic/2009 | 0 comentarios | En Bitacoras.com

Solución a los problemas con SQLite en OpenWRT

votar
Archivado en Linux con fecha 30/Nov/2009 - 2 comentarios

Uno de los motivos para instalar Lighttpd en OpenWRT era poder utilizar aplicaciones con base de datos, como gestores de tareas o documentación y tener siempre disponible esos datos independientemente de desde donde uno se conecte (equipo de trabajo, portátil via wifi, móvil via 3G…). Pero la Ley de Murphy siempre tiene que aparecer para que no funcione justo lo que necesitas. Por lo visto, existe un bug que provoca que SQLite no funcione correctamente con varias versiones de Kamikaze (en mi caso la 8.09.1) que provoca el siguiente error con bases de datos SQLite 2.x:

sqliteBtreeOpen: Assertion `sizeof(ptr)==sizeof(char*)' failed.

En el caso de SQLite 3.x el error es un desagradable Segmentation fault y tras mucho curiosear por foros e intentar compilar sin éxito con estas instrucciones me puse a probar con todos los paquetes que encontré hasta dar con este backport de los propios servidores de OpenWRT y que curiosamente funciona aunque no lo haga ninguno de los otros paquetes de otras RC.

Sencillo editor de paquetes Debian

votar
Archivado en Debian con fecha 24/Nov/2009 - 0 comentarios

Más de una vez he necesitado modificar un paquete .deb debido a que las dependencias no son las correctas o la versión se detecta mal y se fuerza su actualización. Es el caso de mail-notification-evolution, paquete al que hay que modificarle la dependencia con libcamel para poder hacerlo funcionar con Evolution 2.28. Como los paquetes son simplemente archivos con una cierta informacion y comprimidos, es posible modificarlos utilizando File Roller o similares, pero es una tarea más incómoda.

El script simplemente descomprime el paquete y permite editar el archivo de texto que define la versión y las dependencias. Tras salir del editor actualiza el archivo guardado y borra los archivos temporales:

#!/bin/bash
dpkg -e "$1"
cd DEBIAN/
vim control
tar czvf control.tar.gz *
mv control.tar.gz ../
cd ..
ar r "$1" control.tar.gz
rm -rf DEBIAN
rm control.tar.gz

Mientras se edita el archivo, es posible acceder a la carpeta DEBIAN creada en el directorio de trabajo y modificar los archivos del paquete data.tar.gz, que es donde está todos los archivos que se instalarán con el paquete.

Mozila Firefox y aplicaciones Adobe 32bits en 64bits

votar
Archivado en Debian con fecha 23/Nov/2009 - 2 comentarios

Los chicos de Adobe no acostumbran a hacer versiones decentes de sus productos para Linux y menos aún para plataformas de 64bits, por lo que a veces es engorroso hacerlas funcionar.

Tras hartarme de Iceweasel para 64bits y los permanentes errores que daba al funcionar con Adobe Flash Player para 64bits, decidí instalarme Mozilla Firefox para 32bits (ya que Mozilla no proporciona versiones para Linux 64bits) en un directorio aparte y hacer lo mismo con el resto de aplicaciones de Adobe.

Lo primero es instalar las librerías que dan soporte para aplicaciones de 32bits:

sudo apt-get install ia32-libs ia32-libs-gtk

Con esto podremos ejecutar Mozilla Firefox, Adobe Acrobat Reader y Adobe Air sin mayores problemas, exceptuando los estilos de GTK que no se cargarán dando este error:

libclearlooks.so: wrong ELF class: ELFCLASS64

Para solucionar ese detalle es necesario indicar la ruta de los motores de GTK 32bits del siguiente modo:

export GTK_PATH=/usr/lib32/gtk-2.0

Como eso afectará al resto de aplicaciones que se abran, habrá que crear un lanzador para estas aplicaciones con un script bash:

#!/bin/bash
export GTK_PATH=/usr/lib32/gtk-2.0
/home/david/Applications/acroread/Adobe/Reader8/bin/acroread "$@"

Deberá usarse el mismo script cambiando la ruta para lanzar Mozilla Firefox o las aplicaciones instaladas para Adobe Air. Para hacer funcionar los plugins Acrobat Reader y Flash Player con Firefox 32bits, bastará con copiar las librerías correspondientes al directorio plugins de Firefox (nppdf.so y libflashplayer.so). El problema está en que al usar esta configuración el plugin Flash Player 10 no detecta correctamente la librería cURL dando este error:

Adobe Flash Player error: could not load cURL library

Será necesario recurrir a la versión 9.0 de Adobe Flash Player para que funcione correctamente, ya que es más que suficiente para el 99% de los caso. Por último, para que el plugin Acrobat Reader se cargue adecuadamente, será necesario enlazar el script creado anteriormente a /usr/bin/acroread.

Por último, para pulir los ciertos detalles con Mozilla Firefox, será necesario enlazar o copiar a /usr/lib32 los archivos que los paquetes libcroco3, libgsf-1-114, librsvg2-2 y librsvg2-common instalan en /usr/lib. Basta con abrir el paquete con File Roller para extraer los archivos. Además, si se utilizan los drivers propietarios de NVIDIA o ATI será necesario instalar las librerías que dan compatibilidad con 32bits(nvidia-glx-ia32 y fglrx-glx-ia32 respectivamente).

“I Want To Be Freak”

votar
Archivado en Chorradas con fecha 5/Nov/2009 - 0 comentarios

Como fan de Queen (sí, que pasa) y friki que soy, y tras ver esta recopilación de camisetas (via meneame) no puedo resistirme a ponerlo aquí:

be-freak

Android funcional en VirtualBox

votar
Archivado en Móviles con fecha 5/Nov/2009 - 0 comentarios

He estado trasteando para intentar hacer funcionar Android en VirtualBox, ya que con tanta expectación por el dichoso sistema operativo me ha picado la curiosidad (ya iba siendo hora). Y tras ver que es posible hacerlo funcionar en plataformas x86 me he puesto a indagar. La mayoría de la información esta desperdigada en el wiki del proyecto Live Android entre documentación y comentarios, así que he querido recopilar aquí lo más importante.

Tras descargar una imagen ISO de Live Android habrá que crear una máquina virtual en VirtualBox con los siguientes parámetros, dejando el resto por defecto:

  • Memoria base: 256 MB
  • Disco duro: IDE primario maestro de 1 GB
  • Tarjeta de red: PCnet-FAST III (Adaptador puente)
  • Audio: deshabilitado
  • CD-Rom: imagen iso de Live Android

Una vez configurado todo, basta arrancar la máquina y tras un inicio típico de Linux y los logotipos de Android, aparecerá el escritorio. El uso del ratón simula las pulsaciones en la pantalla táctil (se puede ver un pequeño cursor) por lo que todos los gestos como doble pulsacion o arrastrar funcionan perfectamente (si se tiene una Wacom ya es la caña). Aparte de los cursores, las teclas y combinaciones principales son:

  • Intro: aceptar
  • Escape: retroceso
  • Menú contextual: menú
  • Windows: mostrar escritorio
  • Alt + derecha/izquierda: mostrar consola/escritorio
  • Control + derecha/izquierda: cambiar escritorio
  • Windows + derecha/izquierda: mostrar aplicaciones abiertas (Alt + Tab)

Por último, para tener acceso a internet, es necesario configurar la red desde la consola. Pulsando Alt + Derecha accedemos para ejecutar:

ifconfig eth0 10.0.0.100 netmask 255.255.255.0
route add default gw 10.0.0.1 dev eth0
setprop net.eth0.dns1 10.0.0.1

Al volver al escritorio veremos un pequeño mensaje gris y ya será posible acceder a internet con cualquiera de las aplicaciones: navegador, cliente de correo, tienda de aplicaciones…

Actualización: es posible instalar aplicaciones, descargándolas desde el navegador, pero cualquier cosa que se descarge dará error hasta que se cree el directorio /sdcard/download/ y se le den permisos a todos los usuarios (chmod 777). Una vez hecho eso, se podrán descargar aplicaciones e instalarlas con una simple doble pulsación…

JW FLV Media Player, JavaScript y Linux

votar
Archivado en JavaScript con fecha 24/Sep/2009 - 1 comentario

Llevo un buen rato para encontrar la solución este dichoso fallo: imposible controlar con JavaScript el reproductor JW FLV Media Player. Al obtener el objeto el método getConfig() no existe y la función playerReady() no se llama. Se debe a que en Linux el reproductor necesita que se indique el parámetro id en la variable flasvars con el ID del objeto en cuestión. De otro modo no se cargará correctamente y no será posible hacer nada con JavaScript para controlarlo. Encontrado en este hilo del foro oficial.

Instalación “alternativa” de Google Chrome en Linux

votar
Archivado en Software con fecha 7/Sep/2009 - 0 comentarios

Lo sé, soy más obsesivo que Sheldon Cooper, pero odio que los paquetes de instalación de software no integrado en los repositorios oficiales de mi distribución me llenen el equipo de archivos donde no deben, como es el caso de Adobe Air, Adobe Reader o Google Chrome. En el caso de este último, el ritmo de actualización es alto y si se quiere tener configurado (con plugins activados y sin el aviso de desarrollo al abrirse) es necesario trastear un poco para que con cada actualización no se sobreescriban los cambios.

Mi opción es descargarme el paquete correspondiente, abrirlo y extraer del archivo data.tar.lzma el directorio /opt/google/chrome/, ubicándolo en un directorio específico para aplicaciones de usuario. Por otro lado, tengo el siguiente script para lanzarlo:

#!/bin/bash

CHROME_HOME="$HOME/Applications/chrome"

if [ "$1x" == "x" ]; then
	$CHROME_HOME/google-chrome --enable-plugins "google.es"
else
	$CHROME_HOME/google-chrome --enable-plugins "$@"
fi
rmdir $HOME/Downloads

El script abre el navegador habilitando el soporte para complementos y con una pagina inicial, evitando que se abra el aviso de desarrollo y elimina el molesto directorio Downloads que versión si, versión no, crea aunque se haya configurado para guardar los archivos descargados en otra ubicación. Por último, sólo resta enlazar el directorio de plugins de Mozilla para tener soporte para Adobe Flash…

Servidor Subversion con autentificación en OpenWRT

votar
Archivado en Software con fecha 2/Sep/2009 - 0 comentarios

Siguiendo con la serie de entradas sobre OpenWRT el siguiente paso es instalar un servidor Subversion, complemento perfecto para desarrollo. En este caso será imprescindible contar con soporte de almacenamiento USB, ya que el tamaño de los repositorios crece rápidamente y el dispositivo no tiene capacidad suficiente.

Lo primero es instalar los paquetes necesarios:

opkg update
opkg install subversion-client subversion-server

Se instalará el servidor nativo svnserve de forma muy básica, donde la configuración se encuentra en /etc/config/subversion. El problema es que no tiene autentificación pudiendo acceder cualquiera a los repositorios. Para añadir un poco de seguridad, debemos crear un fichero de configuración (en /mnt/usb/svn/svn.conf, por ejemplo) que contenga lo siguiente:

[general]
realm		= openwrt
anon-access	= none
auth-access	= write

Esto forzará que svnserve solicite identificación, pero como no se ha indicado un archivo de usuarios/contraseñas y no será posible acceder a través del protocolo nativo. Lo que interesa es que se pueda acceder a través de svn+ssh, pero por defecto OpenWRT sólo crea el usuario root y no dispone de los comandos típicos de gestió de usuarios y grupos, por lo que es necesario añadir los nuevos usuarios a pelo, editando el archivo /etc/passwd copiado la primera línea y modificando el nombre de usuario, el UID/GID y la ruta de su home:

root:[contraseña]/:0:0:root:/root:/bin/ash
david:[contraseña]/:1013:1013:david:/home/david:/bin/ash

Recomendable usar un UID/GID mayor de 1000 y copiar la contraseña de root (que luego se puede cambiar con el comando passwd [usuario]) para poder probar el primer acceso. Del mismo modo, hay que editar el archivo /etc/groups:

root:x:0:
david:x:1013:

Una vez añadido el usuario, bastará reiniciar el router para tener el servidor Subversion 100% operativo a través de svn+ssh. Para probarlo, se puede crear un repositorio con svnadmin create /var/local/svn/test e intentar acceder a él con el comando svn info svn+ssh://[router]/var/local/svn/test.

Cómo cambiar el atajo de teclado Control+J en Evolution

votar
Archivado en Gnome con fecha 27/Ago/2009 - 0 comentarios

En Gnome Evolution el atajo de teclado Control+J sirve para enviar el mensaje o mensajes seleccionados a la carpeta de spam (Junk) , pero está peligrosamente cerca de Control+K que permite marcar como leído un mensaje. Por el momento no es posible modificar estos atajos mediante ninguna pantalla, por lo que hay que recurrir a toquetear los archivos de configuración que por suerte son simples XML.

Hay que editar el archivo /usr/share/evolution/2.26/ui/evolution-mail-message.xml y buscar MessageMarkAsJunk para dejarlo como sigue para cambiar el atajo a Control+G, que molesta menos:

    <cmd name="MessageMarkAsJunk"
     _tip="Mark the selected messages as junk"
     accel="*Control*g"
     pixtype="pixbuf"/>

    <cmd name="MessageMarkAsNotJunk"
     _tip="Mark the selected messages as not being junk"
     accel="*Control**Shift*g"
     pixtype="pixbuf"/>

Sólo queda reiniciar el programa y listo :)

Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons