Weblog de Javier Arias

Archive for the ‘General’ Category

Conectarse al chat de Facebook desde tu cliente de mensajería

Posted by javi en 11 \11\UTC febrero 11UTC 2010

Los desarrolladores de Facebook publicaron ayer que cualquier cliente de mensajería instantánea que soporte el protocolo XMPP pueda conectarse al chat de la popular red social. Además, han preparado esta página en la que explican de manera sencilla las instrucciones para configurar varios clientes de mensajería instantánea como Pidgin, Adium e iChat. Sólo le pongo una pega: no se pueden utilizar conexiones seguras (SSL) y la autenticación se realiza en texto plano, es decir, sin encriptar. Pese a esto, me parece una buena idea por parte de la gente de Facebook y que, probablemente, otras redes sociales copiarán a corto plazo.

Fuente: Pidgin News

Posted in General | Etiquetado: , , , | 3 Comments »

FilmAffinityPlus v1.2.1

Posted by javi en 15 \15\UTC julio 15UTC 2009

Tras mucho tiempo sin escribir aquí, y mucho más tiempo aún sin tocar FilmAffinityPlus, me veo obligado a publicar una nueva versión para adaptarlo a pequeños cambios en el código de FilmAffinity.com. La podéis encontrar donde siempre, en su página oficial.

Posted in General | Etiquetado: , | 1 Comment »

PHPTUENTI: API no oficial de Tuenti

Posted by javi en 8 \08\UTC marzo 08UTC 2009

El pasado 5 de marzo publiqué PHPtuenti, mi proyecto para crear una API para la red social Tuenti escrita en PHP. De momento permite obtener información del perfil de un usuario, sus amigos y sus álbumes de fotos. Para más detalles visiten PHPtuenti.

Posted in General | Etiquetado: , , , | 4 Comments »

Cómo obtener la carpeta temporal del sistema en PHP

Posted by javi en 19 \19\UTC febrero 19UTC 2009

Para obtener el path de la carpeta temporal del sistema se puede mirar a dónde apunta la variable de entorno TEMP (o TMP):

< ?
echo $_ENV&#91;'TEMP'&#93;;
// o echo $_ENV&#91;'TMP'&#93;;
?>

Es una buena opción que funciona en la inmensa mayoría de sistemas; pero la «inmensa mayoría de sistemas» no son «todos los sistemas», debido a que no todos los sistemas tienen una variable TEMP. La solución que he ingeniado, que creo que es más compatible, consiste en utilizar la función tempnam, que sirve para crear un fichero con nombre único (útil para crear ficheros temporales). Sus dos parámetros son el directorio donde crear el fichero y la cadena inicial del nombre; si el directorio indicado no existe, PHP crea el fichero en la carpeta temporal del sistema. El truco está en decirle que cree un fichero en un directorio inexistente, como por ejemplo null, y luego sacar el path del fichero que nos devuelve usando la función dirname. En resumen, queda algo así:

< ?
function getTempFolder() {
	$tmp = tempnam ( null, '' );
	return dirname ( $tmp );
}

echo getTempFolder();
?>

La ejecución del código anterior me ha dado estos resultados:

En Linux: /var/tmp
En Windows: C:\Documents and Settings\Usuario\Configuración local\Temp

Posted in General | Etiquetado: | 4 Comments »

La nueva web del PP, los estándares y la accesibilidad

Posted by javi en 5 \05\UTC enero 05UTC 2009

Leo en el diario El Mundo que El PP pretende ‘exprimir’ la Web 2.0 con el próximo rediseño de su sitio web. En él afirman que «potenciará la participación de los ciudadanos a través de las redes sociales», que «ha utilizado para su rediseño ‘software’ libre» porque «en el PP creemos que el ‘software’ debe ser de todos y debe compartirse porque la ciencia y el conocimiento tienen que circular con libertad». No voy a comentar lo oportunista que me parece el anuncio, simplemente me pongo a echar un vistazo a su nueva página y veo las imágenes de código HTML y CSS válidos, además del de accesibilidad AAA, y veo también un feed RSS. Pulso en ellas para comprobar, sin mucha esperanza, si realmente han utilizado código que pasa los validadores, porque últimamente se colocan por doquier los botones para aparentar sin que realmente el código valide.

Primero analizo el HTML, que no valida (15 errores y 4 warnings); sin embargo, el CSS sí valida y el RSS también, aunque el CSS lo hace con únicamente 1185 warnings (casi todos relativos a colores y a redefiniciones de reglas). En cuanto a la accesibilidad, tienen el icono que afirma que la web cumple el nivel AAA de accesibilidad. A priori la web es buena candidata a cumplirlo: tiene un buen diseño, no usan tablas para maquetar los contenidos, no usan javascript y la web se puede visualizar desde un navegador de texto (he usado Links y Lynx), lo cual es significativo y me hace pensar que tal vez sí cumplan el nivel. Sin embargo, ocurre una cosa muy rara, su nueva web no produce ningún resultado al intentar pasar el Test de Accesibilidad Web. Sólo aparece una página totalmente en blanco, cosa que nunca me había pasado hasta ahora. Así que me pongo a pasar el test de Cynthia Says, que es menos visual, pero vale igual; el resultado es negativo, aunque por muy poco: sólo un fallo en los ajustes básicos, otro fallo en los de segunda prioridad y ninguno en los de tercera prioridad, sólo dos warnings. No está mal, no está nada mal.

Respecto a lo de que han usado software libre para el diseño, ¿a qué se refieren? Porque lo primero que me salta a los ojos es que del lado del servidor se encuentra la tecnología ASP de Microsoft, la cual se distribuye bajo una licencia no libre. Tampoco veo rastros de web 2.0 más allá del uso de CSS y RSS. ¡Espero que no crean que por poner ese foro cutre salchichero su web se transforma automáticamente en 2.0! Las URL para nada amigables que utilizan tampoco ayudan a calificarla como 2.0. Y otra pega más, no es nada accesible desde dispositivos con pantalla pequeña, como móviles o PDA.

De todos modos la web no está mal, han hecho un buen esfuerzo: el diseño es atractivo, con colores agradables y la navegación es sencila e intuitiva. Otra cosa son los contenidos ;-)

Posted in General | Etiquetado: , , , , , , , | 2 Comments »

Plugin actualizado de MSN para Pidgin (MSNP15)

Posted by javi en 18 \18\UTC agosto 18UTC 2008

Actualización: el día 18 de agosto se publicó la esperada versión 2.5.0 de Pidgin, que incluye las actualizaciones que comento en el artículo. Para futuras actualizaciones del protocolo de MSN recomiendo estar atento al plugin msn-pecan, cuyo ciclo de desarrollo es más rápido que el de Pidgin.

Desde siempre el soporte del protocolo MSN en Pidgin no ha sido prioritario y prueba de ellos es que a día de hoy sigue utilizando la versión 9 (MSNP9), que data del año 2003. La última versión del protocolo es la versión 15 (MSNP15), que incluye características como los mensajes personales, hablar en el estado invisible o saber qué canción está escuchando cada usuario, entre otras.

La versión 2.5.0 de Pidgin soportará la mayoría del protocolo MSNP15, pero si no quieres esperar a que se publique hay dos alternativas:

Por un lado, desde el día 13 de julio de este año, el plugin oficial de MSN para Pidgin soporta MSNP15, de manera que podéis bajar el código fuente desde el repositorio oficial y compilarlo vosotros mismos.

Más fácil es la idea de instalar únicamente un plugin actualizado de MSN para Pidgin, y para ello tenemos a msn-pecan. Se trata del proyecto de un ex desarrollador de Pidgin y que sigue un ciclo de desarrollo más rápido que el oficial. Os lo bajáis, lo compiláis y lo instaláis; entonces os aparecerá en la lista de protocolos de Pidgin uno nuevo llamado WLM (no puede llamarse MSN por que así se llama el plugin oficial). Este plugin también está disponible en un paquete llamado pidgin-msn-pecan, disponible para muchas distribuciones y que para Mandriva se encuentra en los contrib de los repositorios cooker (yo lo encontré en rpmfind.net y en el repositorio de BT Ireland).

Posted in General | Etiquetado: , , | Leave a Comment »

Hauppauge WinTV-NOVA-T-Stick y mando a distancia funcionando (¡por fin!)

Posted by javi en 1 \01\UTC julio 01UTC 2008

Hace un par de meses compré una Hauppauge WinTV-NOTA-T-Stick y me funciona a la perfección tras haber seguido las instrucciones de instalación de LinuxTV. Lo que nunca logré hacer funcionar fue el mando a distancia: miles de Mando a distancia Hauppauge modelo número DSR-0112pruebas que nunca funcionaron acabaron por desquiciarme, san Google no me ayudó y acabé por pasar del mando… hasta ayer por la tarde. Volví a entrar en las instrucciones de LinuxTV y vi que habían añadido una sección para el mando a distancia, pero esas instrucciones no funcionaban pues explican la instalación para dos modelos de mando diferentes al que viene con mi stick, cuyo número de modelo es DSR-0112 (lo podéis ver en la parte trasera), de 35 teclas, gris por la parte delantera y negro por la trasera; lo podéis ver en la foto de la izquierda (clic en ella para verla a tamaño completo). Total, que pongo a funcionar LIRC, intento capturar las teclas de mi mando usando irrecord para generar mi lircd.conf y me da los siguientes errores siempre:

$ irrecord H devinput d /dev/input/bypath/pci56eventir /tmp/lircd.conf
[...]
irrecord: gap not found, can't continue
irrecord: closing '/dev/input/by
path/pci56eventir'

Estos errores son debidos a que las pulsaciones en el mando a distancia no son detectadas por LIRC pese a que el sistema sí reconoce un receptor de infrarrojos incrustado en el receptor TDT/DVB. Para hacer que el LIRC reconozca las pulsaciones desde el mando se debe aplicar un parche al driver de la Hauppauge; explicaré el procedimiento que seguí en mi Mandriva 2008.0 (para otras distribuciones el proceso será el mismo con algún comando cambiado, como por ejemplo urpmi). Así, abrimos una consola de root y seguimos estas instrucciones:

$ urpmi mercurial
$ hg clone http://linuxtv.org/hg/v4l
dvb
$ cd v4l
dvb/linux/drivers/media/dvb/dvbusb/
$ wget http://cache.gmane.org/gmane/linux/drivers/dvb/42458
001.bin O dib0700_devices_ir_DSR0112.diff
$ patch
verbose dryrun < dib0700_devices_ir_DSR0112.diff
$ cd ../../../../..

Y luego ya seguimos con el procedimiento explicado en LinuxTV:

$ make && make install

Una vez hecho esto ya tenemos nuestro driver para la Hauppauge listo para funcionar y para reconocer las teclas pulsadas en el mando a distancia. Ahora reiniciamos el sistema (extrañamente hacer un reload de los módulos no me funcionó :-?) y lo que nos queda es configurar el mando a distancia; esto consiste en asignar al código enviado por cada tecla del mando un “nombre”. Esto se hace en el fichero lircd.conf y para configurarlo podemos hacerlo a mano (usando irrecord) o podemos usar un lircd.conf ya preparado para este mando. Para hacerlo de esta última manera abrimos otra consola como root y ejecutamos los siguientes comandos:

$ cd /etc/
$ wget http://cache.gmane.org//gmane/linux/drivers/dvb/42458-002.bin
O lircd.conf

Arrancamos el servicio LIRC:

$ service lircd restart
Deteniendo demonio de control remoto infrarrojo de Linux: [FALLÓ ]
Deteniendo demonio de Control Remoto Infrarrojo de Linux: [FALLÓ ]
Iniciando demonio de Control Remoto Infrarrojo de Linux: [ OK ]
Iniciando demonio del ratón para Control Remoto Infrarrojo de Li[ OK ]

Si todo va bien ahora deberían funcionar tanto el dispositivo de TDT como el mando a distancia. El primero lo podemos comprobar con el Kaffeine o mplayer por ejemplo y para probar el segundo ejecutamos el programa irw en una consola y pulsamos algunas teclas en el mando:

$ irw
0000000000010073 00 vol+ hauppauge
0000000000010073 00 vol+ hauppauge
000000000001008b 00 menu hauppauge
000000000001008b 00 menu hauppauge
000000000001009e 00 back hauppauge
000000000001009e 00 back hauppauge
00000000000100cf 00 play hauppauge
00000000000100cf 00 play hauppauge
0000000000010077 00 pause hauppauge
0000000000010077 00 pause hauppauge

Si os sale algo parecido a esto enhorabuena, ya podéis usar el mando a distancia de la Hauppauge WinTV-NOVA-T-Stick en vuestras aplicaciones favoritas. Únicamente tengo el problema de que el sistema reconoce cada pulsación como doble, de manera que si doy a la tecla bajar volumen me bajará “dos veces” de volumen, y si pulso la tecla 4 para ir al canal número 4 en realidad intenta ir al canal 44. Actualización: en los comentarios han pegado un parche que soluciona el problema de la doble pulsación.

Si usáis KDE os recomendaría echar un vistazo a IRKick (que básicamente es una manera de hacer más fácil la configuración de LIRC bajo KDE), que forma parte del paquete kdeutils-common. Quizás algún día escriba un post sobre IRKick, que éste ya es demasiado largo.

Fuentes:

Posted in General | Etiquetado: , , , , , , , , , , , | 17 Comments »

FilmAffinityPlus v1.1.0

Posted by javi en 27 \27\UTC junio 27UTC 2008

Me veo forzado a sacar una actualización de FilmAffinityPlus debido a cambios en la página de FilmAffinity que hacen que no funcionen todas las funcionalidades que ofrece mi script.

FilmAffinityPlus v1.1.0

Aquí está la lista de cambios desde la versión anterior:

versión 1.1.0, 27 de junio de 2008

  • Añadida una barra en la parte superior izquierda de la pantalla, con botones para acceder al panel de configuración, a la web oficial y para añadir FilmAffinity a los motores de búsqueda de Firefox.
  • Añadida una opción para cambiar el estilo de las estrellas de puntuación: se incluyen dos esquemas, uno de estrellas rojas y otro de estrellas amarillas, además de la posibilidad de dejar las estrellas que vienen por defecto.
  • Los enlaces a otros sitios web se muestran también en la página de resultados de una búsqueda.
  • Tras realizar una búsqueda se guarda la opción de búsqueda realizada (ej: una búsqueda por “Reparto” deja seleccionada la opción “Reparto”, actualmente tras cualquier tipo de búsqueda la opción seleccionada es siempre “Todas”). Además, tras la búsqueda el cuadro de búsqueda se queda con el foco del teclado.
  • Arreglada la búsqueda en otros sitios web cuando los títulos contenían caracteres “raros”, como tildes o acentos circunflejos (gracias aka_IDIOT).
  • Se cambia el enlace a la versión inglesa de FilmAffinity para que apunte a la misma página en inglés, actualmente apunta siempre a la página principal (ej: desde la ficha de una película se va a la versión inglesa de la ficha).
  • Cambiado el antiguo webchat por su nueva versión en flash.
  • Recuperado el sitio de subtítulos solosubtitulos.com pues parece que vuelve a funcionar.
  • Añadido un enlace externo al grupo de last.fm que surgió del foro que surgió de FilmAffinity (gracias VicenteJavier).
  • Se muestra la bandera de cada país en la sección “Mis datos”, también en la búsqueda avanzada y en los TOP FilmAffinity.
  • En la sección “Mis datos” se añade a las estadísticas el número de países diferentes con películas vistas.
  • Las búsquedas para AllZine (gracias VicenteJavier) y para Cinépatas (gracias pohc) se realizan con el título traducido debido a que la tasa de aciertos es mucho mayor que con el título original.
  • Añadido el sitio de descargas Vagos.es (gracias Soisa).
  • Correcciones menores.

versión 1.0.1, 14 de mayo de 2008

  • Cambiado ligeramente el CSS del panel de configuración.
  • Correcciones menores.

Posted in General | Etiquetado: , , | Leave a Comment »

Obtener la carátula de un álbum de Amarok usando DCOP

Posted by javi en 6 \06\UTC mayo 06UTC 2008

Toda mi música la tengo organizada con Amarok y creando un programa para realizar un listado de mi colección musical me encontré con el problema de cómo conseguir la carátula de un álbum. Obtener la carátula del disco que está sonando es trivial a través de la función coverImage, que puede ser llamada desde DCOP y nos devuelve la ruta al fichero de la carátula:

[javi@cydonia ~]$ dcop amarok player coverImage

/home/javi/.kde/share/apps/amarok/albumcovers/cache/130@9b9d5ef76774f4a3e13cf02f4cb90865

El problema está cuando el disco no está sonando: no hay ninguna función disponible para pedir una carátula de un disco que esté en la colección, y tampoco hay un campo en la base de datos que indique cuál carátula corresponde a cuál álbum.

Amarok maneja las carátulas de la siguiente manera: las guarda en la carpeta ~/.kde/share/apps/amarok/albumcovers/large/ en formato PNG, asignándole como nombre el md5sum de la concatenación en minúsculas del nombre del artista y del título del álbum. Así, al disco Around The Fur de Deftones le corresponde el siguiente nombre de fichero:

[javi@cydonia ~]$ echo -n "deftonesaround the fur"|md5sum

e5f8534f07e607aad36b9c6f19a47187 –

Su carátula, por tanto, estará ubicada en ~/.kde/share/apps/amarok/albumcovers/large/e5f8534f07e607aad36b9c6f19a47187

Volviendo al problema inicial de obtener las carátulas de los discos que estén en la colección de Amarok, con DCOP podemos ejecutar consultas SQL sobre la base de datos y, por lo tanto, es posible obtener todos los nombres de artistas y de álbumes. Y si tenemos esos datos podemos saber cuál es la carátula de cada álbum. Con la siguiente consulta SQL obtendremos todas las parejas artista+disco y carátula.

SELECT DISTINCT CONCAT(artist.name, '-', album.name), CONCAT('~/.kde/share/apps/amarok/albumcovers/large/', MD5(LOWER(CONCAT(artist.name,album.name)))) FROM album, artist, tags WHERE album.id=tags.album AND artist.id=tags.artist

Para ejecutar esa consulta usamos la función query mediante DCOP:

[javi@cydonia ~]$ dcop amarok collection query "SELECT DISTINCT CONCAT(artist.name, '-', album.name), CONCAT('~/.kde/share/apps/amarok/albumcovers/large/', MD5(LOWER(CONCAT(artist.name,album.name)))) FROM album, artist, tags WHERE album.id=tags.album AND artist.id=tags.artist"

Serj Tankian-Elect The Dead Bonus CD
~/.kde/share/apps/amarok/albumcovers/large/591398f2dc2aff74627f577fd53da4e3
Linkin Park-Minutes To Midnight (Tour Edition)
~/.kde/share/apps/amarok/albumcovers/large/6d3dbccad0c4d9ceddd818d29e0ac7f7
Nirvana-Nevermind
~/.kde/share/apps/amarok/albumcovers/large/e2555e3a3bcd47ecf9d84fdacb1462a0
Linkin Park-Shadow Of The Day
~/.kde/share/apps/amarok/albumcovers/large/fe8780583e43f9f5cdf473a8fc4daf84
Linkin Park-Reanimation
~/.kde/share/apps/amarok/albumcovers/large/0717ba640841ff84c52cf846397b1b1c

Sencillo, ¿verdad? ;-)

Fuente: Amarok Forum, Amarok Wiki, Ubuntu Forums

Posted in General | Etiquetado: , , | 3 Comments »

Problemas con los subtítulos en Kaffeine

Posted by javi en 12 \12\UTC marzo 12UTC 2008

Kaffeine es mi reproductor multimedia predeterminado y lo uso sobre todo para vídeos. Tras una actualización a la versión 0.8.5 el reproductor dejó de reproducirme los subtítulos. Estos son los mensajes de error que me aparecían:

The specified file or url was not found. Please check it. (Pulgasari.avi#subtitle:Pulgasari.esp.srt)
Resource can not be opened (Pulgasari.avi#subtitle:Pulgasari.esp.srt)

En castellano (por si alguien busca la solución a este problema en este idioma en Google):
No se ha encontrado el fichero o URL indicado. Por favor, verifíquelo. (Pulgasari.avi#subtitle:Pulgasari.esp.srt)
No se puede abrir el recurso (Pulgasari.avi#subtitle:Pulgasari.esp.srt)

Esto es un bug conocido de esta versión (que parece haber sido provocado por cambios en el manejo de los subtítulos en la librería xine, de la que nutre Kaffeine para la reproducción de medios) y se soluciona simplemente actualizando a la versión 0.8.6.

Así que ya sabéis, abrís una consola, os identificáis como root y actualizáis Kaffeine y el motor de xine para éste:

$ urpmi kaffeine kaffeine-engine-xine

Nota: la versión 0.8.6 no está en los repositorios de Mandriva 2008.0 (a día de hoy), pero sí en los de la 2008.1 y en cooker.

Actualización: para solucionar el problema es suficiente con actualizar el paquete kaffeine-engine-xine.

Posted in General | Etiquetado: , , , , , | 2 Comments »