Insertar una imagen de Google Drive

Puedes generar un enlace directo a un fichero almacenado en Google Drive utilizando el identificador del fichero.

Para obtener el identificador del fichero. Para ello, tienes que obtener un enlace compartido al fichero,  dicho enlace incluye el identificador.

Navega en Google Drive hasta el fichero que enlazar, y escoge la opción “Get shareable link” (vendrá en el idioma en que tengas configurado tu Google Drive).

Captura de pantalla para obtener un enlace compartido
Obtener un enlace compartido

Como ejemplo, he creado una carpeta en mi cuenta de Google Drive para mostrarlo. Se puede acceder a ella en esta carpeta. El enlace a la imagen que se obtiene es de la siguiente forma:

https://drive.google.com/open?id=1DBBfcZ3EXui0xT3CyJ6pIrCpiOgNTt-6

He marcado el identificador. Ahora solamente hay que hacer un cambio en la URL para que sea de la siguiente forma:

https://drive.google.com/uc?id=<IDENTIFICADOR>

Para la imagen anterior, la URL sería:

https://drive.google.com/uc?id=1DBBfcZ3EXui0xT3CyJ6pIrCpiOgNTt-6

Las imágenes de este artículo se han insertado así.

Instalación de librerias de Python en 1and1

El hosting compartido de 1and1 permite crear scripts utilizando Python 2.6. Sin embargo, no permite instalar librerias en las rutas de sistema, por lo que hay que ingeniarselas un poco para instalarlas.

Primero, hay que bajarse easy_install e instalarlo en algún lugar de nuestro espacio de hosting.

Luego, ya es más fácil, solamente hay que decirle a easy_install que en lugar de instalar paquetes en la ruta habitual, los debe instalar en una ruta de nuestro espacio de hosting. Por ejemplo, este comando instalará en el directorio $HOME/lib:

easy_install --prefix ~ xlrd==0.7.7

Después tendremos que asegurarnos que nuestros scripts Python encuentren las librerias.

Para ello, se puede modificar la variable de entorno PYTHONPATH con la ruta de la libreria. Este método solo funciona para scripts lanzados desde la linea de comandos.

En el caso de scripts CGI lanzados por Apache, no podemos modificar el entorno de ejecución de Apache para una nueva versión de la variable PYTHONPATH. Por ello, tendremos que recurrir a otra opción, menos elegante, pero igual de efectiva: cargar la libraria “a mano” en nuestro script. Para ello, basta con añadir algo de este estilo:

if sys.version_info < (2, 7):
     sys.path.append( 'PATHTOLIBRARY/lib/python2.6/site-packages/xlrd-0.7.3-py2.6.egg' )

Click-n-build de 1and1

Mi proveedor de hosting 1and1 ofrece un servicio llamado Click-n-Build que permite crear instancias de aplicaciones web con un solo click, en base a una plantilla que gestionan ellos.

He utilizando WordPress (version 3.1.3) y Drupal (versión 7.12). A pesar de que indican que no se pueden instalar plugins, no es cierto, pueden instalarse desde la interfaz de administración del servicio.

No soy muy partidario de utilizar este tipo de instalaciones, entre otras cosas porque suelen limitar las opciones de que dispondrás, en base a la plantilla, o a limitaciones en los permisos y configuraciones posibles.

Sin embargo, tienen varias cosas positivas: no tienes que preocuparte de la BD, pues es una instancia que no ocupa espacio de tu hosting; y las prestaciones parecen bastante buenas, se han preocupado de optimizarlo o poner alguna caché de por medio.

Tuve instalada una instancia de Drupal, pero finalmente necesitaba actualizar el core a las ultimas versiones y siempre iban algo por detrás, así es que la desinstalé.

Firefox 3.6 y Java en Mac OS X

Llevo varias semanas sin poder acceder a algunas páginas con Java desde Firefox, por ejemplo, en la intranet de mi empresa. Y no sabía por qué ;(

Hoy he descubierto que se trataba de un problema de configuración de Java, sobre el orden de las versiones de 32 y 64 bits. Desde el panel de configuración de Java (Java Preferences) se puede ver. Por defecto, las preferencia es cargar las versiones de 64 bits primero. Sin embargo, con esa configuración, las páginas de la intranet de mi empresa no cargaban.

Simplemente he cambiado las preferencias, y ahora el orden es:

  • JAVA SE 6 32 bits
  • JAVA SE 6 (System) 32 bits
  • JAVA SE 6 64 bits
  • JAVA SE 6 (System) 64 bits

Queda por investigar si realmente era el asunto de los 32-64 bits o es un problemas de las versiones de Java.

En los secretos de depuracion de CakePHP y Aptana

Llevo unos dias pegandome con la configuración de depuración de mi Ubuntu 9.04 con CakePHP y Aptana.

Por fin ya lo he resuelto todo, despues de tener varios problemas con la configuración de Apache (los módulos y las rutas del VirtualNameHost) y la configuración de la aplicación que estoy desarrollando (la conexión con la BD estaba mal configurada).

Total, que ahora ya puedo depurar el codigo de mi backend y de mi frontend a la vez. Unos cuantos trucos:

  • En el servidor, modificar el fichero global php.ini para incluir la variable remote_autostart=1, de forma que cualquier ejecución de comando PHP invoque al depurador.
  • En Aptana, configurar el puerto de XDebug para que acepte peticiones de cualquier host (Preferences> Editor> PHP> Debug> XDebug> Configure> Accept Remote Session (JIT)> any), sin tener que confirmarlas (Preferences> Editor> PHP> Debug> Break on first line when an unknown remote session>Never)
  • En Aptana, mapear las rutas del servidor Web  adecuadamente para que apunten al codigo de backend y de frontend.
  • En el codigo del frontend, cuando se progresa una peticion al backend se deberian progresar tambien los parametros de depuración (XDEBUG_SESSION, etc). Esto no es imprescindible, y ni siquiera he verificado que funcione, pero igual es necesario, sino el backend no sabrá el id de sesión de depuración de Xdebug.

Actualizando el MPiX357

Tengo un disco duro multimeda de Storex, el modelo MPiX357 de 1Tb. Estoy teniendo algunos problemas cuando reproduzco ficheros AVI de tipo XVID.

  • Durante la reproducción, se para y luego salta uno o dos segundos. Da la impresion de que algun buffer se llenara, porque he probado a rebobinar la pelicula unos segundos y luego reproduce correctamente el fragmento que antes se saltó. Por eso, descarto que sea un problema del fichero, y creo que es un problema de buffer del equipo.
  • En algunas ocasiones, el sonido de la pelicula se corrompe y se oye un sonido metalico. Descarto que sea un problema de que el fichero esté corrupto en ese punto, pues en otras ocasiones ese fragmento se reproduce correctamente. Si en ese momento, detengo la pelicula, el MPiX357 se cuelga y tengo que apagarlo y volverlo a encender.
  • Cuando finaliza una pelicula y comienza otra, la reproduccion salta y se acelera, como si estuviera pulsado el Fast Forward. Si detengo la reproduccion en ese momento, el MPiX 357 se cuelga y tengo que apagarlo y volverlo a encender.
  • Utilizo el conector de video (amarillo). Tras unos minutos reproduciendo, la imagen del sistema pasa a blanco y negro, y permanece en blanco y negro durante unos 90 segundos. Luego vuelve el color.

02032009037.jpgHace un par de días solicité una nueva version del firmware, que resuelva los problemas que he descrito. Sólo han tardado 2 días en enviarmela, y la he instalado para probarla. La versión anterior era la TST V2.2 2008-01-04.

Ahora, la nueva version es TST V2.3 2008-04-26 15:50

Y esta noche…, a probarlo. He empezado a probarlo y de momento, no hay problemas. Ya contaré cómo me ha ido esta semana y si no me he cargado los 500 Gb que tengo almacenados.
Firmware actualizado