Bitácora de ElPasmo

No sólo hay blanco... o negro

Miércoles 18 Junio 08

Aprendiendo PHP: xFire RSS

Me esta interesando hacer un pequeño proyecto para crear un RSS a partir de un XML del programa xfire. Xfire es un programa de mensajería instantánea orientado a los videojuegos. De esta manera, puedes saber qué amigos están jugando, dónde están jugando y unirte a ellos, si dispones del juego.

La idea es conseguir llevar un registro de qué está haciendo uno, si está jugando o no, y poder manejar esta información en entornos web 2.0. En concreto quiero añadirlo a mi FriendFeed.

Como podéis ver, es un ejercicio muy simple pero que me permitirá refrescar conocimientos sobre la tecnología web actual. Lo primero que he hecho es ponerme en contacto con mi patrocinador (¡Cómo mola decirlo de vez en cuando aunque todo quede entre amiguetes!) y preguntarleen qué tecnología opera el servidor y que me recomienda para programarlo. La solución ha sido rápida, primero utilizaré WAMP, programa que agrupa Windows, Apache, MySQL, PHP en uno, para mis pruebas así que me lo he descargado y he empezado a estudiar.

Primero: lo básico lo he encontrado en el manual de Wikibooks con enlaces para descargar WAMP. La primera en la frente, me ha costado que el WAMP arrancara Apache porque tenía ya un servicio que utilizaba el puerto 80... esto de tener mil cosas instaladas y la pereza de no abrir más puertos en el router :P

Segundo, pegarme para intentar leer el fichero XML de origen. Al final opté por la solución de esta página con SimpleXML.

Tercero: como tengo que guardar una serie de cambios de estados, me estuve pegando un rato con la interfaz PHP-MySQL... pero al final opté por una solución más sencilla: usar un fichero XML con una estructura propia. Así que tuve que estudiar como podía escribir en ficheros. Al final he optado por una solución que me aconsejó Mirill (gracias tronco): la función file_put_contents.

Cuarto: ¡Argh! No soy capaz de comparar bien las cadenas de caracteres... 3 horas perdidas para acabar usando la función strcmp. ¡Cómo odio los lenguajes que no permiten comparación directa de cadenas con el operador '='!

Quinto: Averiguar cuantos datos tengo ya almacenados en el fichero XML. Una sencilla búsqueda en google me llevó a esta página.

Sexto: Mirar el formato RSS 2.0. Las fechas eran un problema, pero tras encontrar esta página que me enseñó a capturar y formatear la fecha actual y esta otra que me enseñó el formato exacto RSS 2.0 y me ahorró un huevo de tiempo no tuve mayores complicaciones.

Bueno, el proyecto consta de dos archivos. El primero, xfire_update, permite ir almacenando los cambios de estados en un fichero XML (que reside en la misma ruta que el PHP con el nombre coincidente al del usuario). Captura el nombre del usuario a través de un parámetro 'usuario' pasado en la URL. Debe configurarse el servidor para que ejecute este PHP cada X segundos.

El segundo fichero, xfire_rss, construye un RSS a partir del fichero XML y es invocado ya por los servicios webs que se suscriban.

Podéis descargar el código fuente de este enlace. Licencia exacta al código de esta página que podéis encontrar al pie de la bitácora.

Actualización 2:17: Como odio estas cosas, haciendo las pruebas ya en servidor me doy cuenta que funciona perfectamente menos en el sitio que me interesa. FriendFeed no sé por qué no traga con mi RSS. Después de 2 horas, y de dar la coña de nuevo a Mirill, he encontrado y solucionado el problema (aparte de unos defectos menores que también he corregido). Para ello he usado la herramienta Feed Validator que me ha dado varias advertencias entre las cuales estaba "falta el elemento guid para cada entrada del RSS. Un elemento que, por cierto, es opcional. Así que después de consultar su formato RSS 2.0 he decidido hacer una pequeña trampa y crear unas direcciones ficticias para cada elemento del RSS que apunten a sí mismo. El problema viene que al no tener enlaces o guids diferentes cada una de las entradas las tomaba por la misma. En fin... ya ha quedado muy potito y podéis ver el resultado en la sección Actividad Reciente. Por supuesto, ya he actualizado el código.

Actualización 12:26: He añadido más información al código sobre la licencia. He incluído la posibilidad de obtener el RSS en inglés (usando el parámetro 'username' en vez de 'usuario'), he realizado últimos comentarios y retoques y he añadido que se compruebe si el fichero XML de base de datos existe (con la función file_exists). Ahora la aplicación no crea el fichero XML de base de datos, si no lo encuentra no hace nada. He incluído en el archivo de descarga un ejemplo de dicho fichero.

Actualización 13:45: Resulta que los GUIDs del RSS no solo deben ser diferentes entre sí sino que tiene que corresponderse siempre el mismo con la misma entrada. Si no algunos agregadores RSS estrictos (como es el caso de FriendFeed que es el único que me da estos problemas) se vuelven locos a la hora de trabajar sobre dichos RSS. Ya está actualizado, lo he solucionado usando la función strtotime para crear guids únicos.

Escrito por ElPasmo a las 00:19
Comentarios (0) | TrackBack (0) | Más sobre Bitácora, Educación, Enlaces interesantes, Internet

Sábado 14 Junio 08

FriendFeed

Llevaba ya un tiempo buscando un servicio que permitiera seguir el rastro de alguien en internet. Había encontrado Netvibes que, con sus universos, podía usar para ofrecer a la gente un resumen de qué iba encontrando interesante en la red. Pero no me satisfacía por varias razones, pero quizás la más importante porque era difícil mostrar las playlists de Youtube.

Ahora he encontrado FriendFeed, una red social que hace justo lo que estaba buscando. Curiosamente está creado por antiguos trabajadores de Google y hay hasta una teoría conspiranoica sobre ello :)

En fin, entre otras funcionalidades que me han encantado está la posiblidad de que la gente comente los contenidos de un amigo y añadir múltiples cuentas de correo para facilitar la visibilidad de tu cuenta.

Sin más os dejo el enlace a mi usuario (y si veo que funciona como me espero en un par de días dejo un enlace fijo en el menú de la bitácora).

Esto no quiere decir que abandone Netvibes, me sigue pareciendo la página personalizada más completa con la que hacer mi navegación diaria.

Escrito por ElPasmo a las 13:32
Comentarios (0) | TrackBack (0) | Más sobre Enlaces interesantes, Internet, Personal

Viernes 13 Junio 08

Contra la jornada de 65 horas

Tal vez no te hayas enterado que la Union Europea va a permitir ampliar la jornada laboral a 60 horas semanales (65 para colectivos especiales como los médicos). Tal vez te has enterado pero no te has parado a pensar cómo podría afectar a tu vida. Quizás no seas consciente de cuánto costó en su día que hoy no trabajes como un esclavo. Quizás pienses que esta medida es necesaria para paliar la crisis. Quizás simplemente no estés convencido y necesites un empujoncito o quizás te de dolor de cabeza pensar en el tema y resultes ser un borrego.

Pero si no es el caso, debes estar tan preocupado como yo, o quizás más, seguro que te interesará entonces mandar este correo electrónico a los eurodiputados.

Estimado/a Eurodiputado/a

Me llegan noticias de que procedente de la comisión, va a llegar al parlamento europeo una propuesta donde se establece en 65 horas el máximo de una jornada laboral.

Desde mi humilde posición de ciudadano , me veo en el deber de comunicarles que no tengo intención de votar a el partido que se atreva a hacer tal perjuicio a los ciudadanos españoles. Tanto si es el PSOE como el PP o de cualquier otro partido, me volveré en su contra con mi humilde voto y las herramientas que como comunicador, blogger y semi-periodista tenga a mi disposición.

Dicha medida en caso de ser aprobada no solo no aumentará la productividad sino que generará mas paro y nos hará mas difícil alcanzar la meta del pleno empleo, necesario para que la sociedad avance de manera equilibrada y no se rompa por culpa de un paro que desestabiliza a todos. Ni la izquierda ni la derecha, debe ver en estas directrices europeas la base de un futuro desarrollo, ya que nos convertirá en todo lo que hemos odiado siempre, una sociedad conflictiva al modelo estadounidense, donde los valores no son nada, ni los de la izquierda, ni los de la derecha. Solo hacer dinero será lo importante, acabando con todo lo demás, abriendo el camino al crimen y a la miseria, que a todos afecta.

Manifiesto mi hostilidad y la de muchos que me rodean a dicha medida, a los individuos, que con el peso de su conciencia se atrevan a dar tan increíble paso atrás en nuestras sociedades europeas avanzadas, degradando así el nivel de vida general de las ciudadanas y ciudadanos europeos. Espero que usted, juegue el rol que le corresponde y sirva a la sociedad española en su conjunto, como miembro electo de dicho órgano.

(De paso le animo a que busque en internet, se esta generando una campaña en contra de esta medida que busca organizar a la gente contra esto.)

Reciba un cordial saludo

Adjunto un widget para su envío automático.

Si deseas saber más sobre esta campaña o adherir tu bitácora a la misma sigue este enlace.

Actualización 11:03: El señor Iñigo Méndez de Vigo ha tenido a bien responderme al correo informándome que ahora le corresponde al Parlamento Europeo adoptar una decisión en segunda lectura y asegurándome que tendrá en cuenta los comentarios del correo recibido a la hora del debate en dicho órgano.

Actualización 11:18: El señor David Hammerstein me ha respondido con un artículo titulado "Europa no debe bajar el listón de altas normas sociales" fechado el 11 de Junio que se puede leer en su página web.

Actualización 14:02 14/06/08: Se ha iniciado una campaña de firmas en internet para pedir una movilización conjunta única contra esta medida. Podéis firmar (DNI inclusive) en el siguiente enlace. Además, me gustaría resaltar que el enlace donde se creó el widget de arriba demuestra que la productividad se resiente al aumentar la jornada laboral. De paso doy otro argumento :)

Actualización 11:10 17/06/08: Se ha creado una página que aglutina todos los datos de la campaña. Podéis seguir en ¿65 horas? ¡Ni de coña!

Escrito por ElPasmo a las 10:05
Comentarios (0) | TrackBack (0) | Más sobre Resistencia Global

Sábado 7 Junio 08

Musicovery

Gracias a Fiche me he enterado de la existencia de Musicovery, una mezcla entre Liveplasma y Pandora de las que ya hablé y que lo convierte en una herramienta ideal para descubrir música (además sus filtros son bastante potentes e intuitivos).

En fin, lo dicho... Gracias Fiche.

Escrito por ElPasmo a las 16:15
Comentarios (0) | TrackBack (0) | Más sobre Enlaces interesantes

Contacta | Sindicar: Atom, RSD, XML

Creative Commons License

Powered by Movable Type