_______ Feed on Posts or Comments

programming & spanish & web Franchu on 02 Jun 2007 05:18 pm

Como hacer un mashup y no morir en el intento…

Antes de ir al Google Developer Day quería jugar con la API de Google Maps para ver si era complicada de usar y ver cómo de dificil me iba a resultar el taller al que iba a asistir. Es por eso que decidí hacer un pequeño mashup que mostrase sobre un mapa de la peninsula ibérica el estado de los embalses españoles.

Lo primero que se necesita para hacer un mashup es una o varias fuentes de datos. Cada vez es más común disponer de esos datos en formatos sindicados (RSS, Atom) o incluso mediante APIs que exponen los datos en formato XML o JSON. Sin embargo, yo no encontré ningún sitio que me proporcionase esta información en un feed, así que tuve que crearmelo :)

Creación de feeds a partir de webs

Siempre queda la posibilidad de programarse en algún lenguaje un web scrapper que extraiga la información que queramos y nos la devuelva como un feed. Por suerte, existe una forma más sencilla, gráfica y alojada por terceros que nos permite hacer precisamente esto. Como no tenía ganas de ponerme a programar y quería ver cómo de complicado era de usar la solución gráfica, me decanté por usar Openkapow para crear mi feed. En un par de minutos tenía mi feed creado a partir de los datos de una página que agrega los datos de la página del Ministerio de Medio Ambiente.

Para crearlo, es necesario emplear la herramienta que se descarga de la página de openkapow. La única pega es que solo existen versiones para Windows y Linux. Podeis ver el robot que he creado descargandolo de la página de openkapow.

Una vez publicado, ya está listo para utilizarse. Le he puesto una frecuencia de actualización de 1 día para no generar tráfico inecesario al servidor del que extraigo los datos. Además, para que el feed no se cargue directamente de la página de openkapow (he tenido problemas de continuidad de servicio), utilizo FeedBurner como cache del feed.

Manipulación del feed y extracción de datos relevantes

Puesto que el feed contiene mucha información que no estoy interesado en mostrar en el mapa en una primera instancia (p.ej: datos globales y datos de cada cuenca), necesito manipular los datos del feed antes de usarlos en el mapa. Para ello utilizo otra herramienta online llamada Yahoo! Pipes que permite manipular diferentes fuentes de datos y sacar un feed en RSS, un objeto JSON, XML…

Podeis ver el pipe que me he creado. Lo bueno que tiene esta herramienta es que permite ver cómo se ha creado cada pipe, y aprender de una forma muy rápida cómo hacer cosas útiles.

A grandes rasgos el pipe lo que hace es filtrar los items que me interesan, y extraer los valores que luego utilizaré como variables (nivel de llenado, coordenadas del embalse, nombre del pantano, …) y sacarlo en el feed.

Presentación en el mapa

Una vez cargado el objeto JSON proporcionado por mi pipe, representarlo en el mapa es casi trivial. En función del nivel de llenado se pone un icono diferente al marker, y se usa un gestor de markers para su representación puesto que el número de pantanos es muy elevado. Podeis echar un vistazo al código fuente donde genero el mapa. En vez del php include, se podría haber usado la API de AJAX feed de Google, pero no tenía tiempo de ponerme a jugar con una API más :)

El resultado lo podeis ver en mi anterior entrada: “Estado de los embalses españoles

Related posts:

  1. Estado de los embalses españoles
  2. How to create a mashup and not die trying…

21 Responses to “Como hacer un mashup y no morir en el intento…”

  1. on 02 Jun 2007 at 17:34 1.meneame.net said …

    Como hacer un mashup y no morir en el intento…

    Explicación de cómo hacer un mashup desde que se sacan los datos de una web si no tiene feed RSS hasta que se procesan en el cliente. En este caso se extraen los datos de una web, se procesa el feed RSS y se representan sobre un mapa….

  2. on 02 Jun 2007 at 17:56 2.David said …

    Muy bueno el articulo no conocia nada de eso, muchas gracias!!

  3. on 02 Jun 2007 at 21:41 3.trefeater said …

    Genial! Gracias por la info! voy a aplicarla ahora mismo para un par de cosillas que me incordia que no tengan rss

  4. on 03 Jun 2007 at 1:26 4.Noticias y artículos interesantes del 2007-06-02 | hombrelobo, una mente dispersa said …

    […] 4 - Como hacer un mashup y no morir en el intento… Franchu’s lair […]

  5. on 03 Jun 2007 at 2:01 5.jose said …

    Sólo una pregunta…
    ¿Por qué no usaste la API de mapas de Yahoo?

  6. on 03 Jun 2007 at 10:48 6.admin said …

    Porque iba a ir al Google Developer Day y quería hacer una prueba con la API de mapas de Google para irme familiarizando.

    También se podían haber hecho más virguerías como el no cargar todos los embalses de golpe, y hacerlo en función del nivel de zoom que tuvieses seleccionado. Pero como la intención era probar la API y hacer algo que mostrase cosas y no el mashup más optimizado quedó así. :)

  7. on 03 Jun 2007 at 13:56 7.oriolrius lifestream » Franchu’s lair » Como hacer un mashup y no morir en el intento… said …

    […] Franchu’s lair » Como hacer un mashup y no morir en el intento… […]

  8. on 03 Jun 2007 at 20:01 8.Mario said …

    Tio, excelente trabajo, digno de una clase magistral

  9. on 05 Jun 2007 at 8:42 9.Canos said …

    Me encanta este material que has hecho :)
    el otro día en una lista de correo sobre j2ee di el enlace y ha tenido buena acogida. Me han pedido si puedo obtener una traducción al ingles.
    Te animas? no me importaría en absoluto echarte un cable.
    Saludos

  10. on 05 Jun 2007 at 10:19 10.Franchu’s lair » How to create a mashup and not die trying… said …

    […] post is an english translation of my previous post Como hacer un mashup y no morir en el intento… as kindly requested by D. Canos y T. Forza on behalf of the other students of the J2EE programming […]

  11. on 05 Jun 2007 at 10:32 11.admin said …

    Hola Canos,
    ya tienes la traducción en http://franchu.net/2007/06/05/how-to-create-a-mashup-and-not-die-trying/

    Espero que la gente del curso de Sang Shin lo disfrute ;)

  12. on 06 Jun 2007 at 14:49 12.Embalses.net said …

    Solo comentarte como en el articulo inicial que si no te importa voy a incorporar en Embalses.net tu idea para las pagina principal, cuenca y provincia.

    Un saludo.

  13. on 06 Jun 2007 at 15:28 13.admin said …

    Perfecto :)

    Si pudieses publicar también un feed con GeoRSS de los datos seguro que mucha gente lo agradecería. Además, usando un servicio como feedburner para hacerte de caché del feed no debería de suponer un impacto en el tráfico de tu página.

    Un saludo!

  14. on 09 Jun 2007 at 19:11 14.Week-log.228 | Denken Über said …

    […] - blogpocket 6.0 y un link genial a otras ilustraciones de Alicia en el País de las Maravillas - Franchu explica, genialmente, como hacer un mashup y no morir en el intento… - Jorge Telerman, un Jefe de […]

  15. on 10 Jun 2007 at 20:56 15.Haciendo un mash up « Un dia duro said …

    […] Cómo hacer un mash up y no morir en el intento… […]

  16. on 11 Jun 2007 at 10:06 16.Entradas en las blogosferas.3 - Carrero Bitácora de los Hermanos Carrero, David Carrero Fernández-Baillo y Jaime Carrero Fernández-Baillo. said …

    […] Cómo hacer un mashup y no morir en el intento… […]

  17. on 11 Jun 2007 at 18:19 17.aitiba said …

    Buenas tardes,

    Un gran articulo. Felicidades!

    Quiero hacer un feed RSS de una pagina la cual no tiene RSS para poder sacar unos datos de ella en mi web. Para eso, me he descargado el RoboMaker y he empezado a crear mi robot pero tengo dos duditas que me gustaria poder consultarte para ver si me puedes ayudar (o alguien que lea este blog):

    1. Tengo que hacer un bucle (foreach) porque los datos del RSS son variables y generalmente hay mas de uno. Para ello al principio del robot he puesto un “foreach” con un “action” que va al texto que tiene que salir en cada iteracion. Luego hago un “tag finder” con el mismo tag que puse en el “action” pero siempre me dice que “Error from the For Each Tag Action. No tags to loop through”. Se queja del tag echo “action” pero por muchos que pongo me sigue saliendo el mismo error. ¿Alguna idea?

    2. Mandarle un especie de argumento para poder sacar el RSS segun la fecha dada. He estado investigando pero tampoco encontre la opcion. ¿Se puede hacer? ¿como?

    p.d: he escrito esto como comentario, ya que, no he encontrado una direccion de e-mail donde mandartelo en ningun sitio del blog.

    Gracias. Un saludo. aitiba.

  18. on 13 Jun 2007 at 1:28 18.Franchu said …

    Hola aitiba,
    gracias por el comentario :)

    Con respecto al primer punto ya me he puesto en contacto contigo para que me pases el robot y echarle un vistazo a ver si entre los dos sacamos algo más en claro.

    Con respecto al segundo punto… Yo también intenté usar párametros y no conseguí hacerlo. Parece ser que esta versión de openkapow no permite esta funcionalidad para la
    generación de feeds RSS. Hay una opción de aceptar parámetros si lo que creas es un servicio REST, pero desde mi punto de vista tampoco permite la suficiente flexibilidad. De hecho, la razón para no sacar los datos para mi mashup directamente de la página del ministerio de medio ambiente es porque hay que acceder a la página fijando la fecha
    de la semana actual, y sin la posibilidad de meter parámetros de entrada se me complicada un poco.

  19. on 13 Jun 2007 at 23:46 19.lanchalisa :: Los recursos de la red :: June :: 2007 said …

    […] que fue llevado al cine por Ana Belen como directora, (Como ser mujer y no morir en el intento). El articulo a que nos referimos cuenta en como en poco tiempo consigue  una representación geográfica y […]

  20. on 02 Jul 2007 at 17:36 20.pasapues » Archivo del weblog » El Periodico de Felipe Gonzalez said …

    […] particular a otro como el que se ha hecho para representar en internet de una manera gráfica y muy visible el estado de los pantanos […]

  21. on 14 Jul 2007 at 23:25 21.Miguel A Manrique said …

    Estupendo articulo, sencillo, rápido y revelador. Había hecho mis pinitos con el pipe de yahoo, feedburner y twitter, usando feeds para ello; pero teniendo en cuenta que no tengo ni idea de programación (chapurreo nada mas..) este material es excelente. Lo voy a usar si no te importa en un curso sobre Redes Sociales y Web2.0 en la Universidad de Cantabria. Supongo que no haya problema no??

    http://www.unican.es/WebUC/cverano/Cursos/Sedes/det_curso.asp?p_anualidad=2007&p_id=1207

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply