Archive for the ‘Proyectos’ Category

Jobsket.com, Grails en un proyecto real

Sunday, July 25th, 2010

Dejo por aquí mi presentación del sábado.

A ver si en estos días saco algo de tiempo y escribo sobre que tal estuvo la Lan Party

Nos vemos en la Tenerife Lan Party 2010

Monday, July 19th, 2010

El sábado 24 a las 12:00 de la mañana, daré una charla en la Tenerife Lan Party 2010: Jobsket.com, Grails en un proyecto real.

La charla será una explicación de qué es Grails y cómo lo usamos en Jobsket, una startup pequeñita con unos recursos muuuucho menores que otras empresas, y como nos ayuda a ser una de las compañías más innovadoras tecnológicamente en el sector de empleo en internet.

TLP 2k10

También hay otras actividades muy interesantes para desarrolladores en el programa. Aunque yo voy a destacar las relacionadas con la gente de Agile-Canarias, el viernes por la mañana a las 10:00 Yeray Darias y Fran Reyes impartirán un taller de Integración continua, y seguidamente a las 12:00 Carlos Blé organiza un Code Retreat.

Las entrañas de DNDzgz

Thursday, April 29th, 2010

Lo prometido es deuda, tenía pendiente escribir un poco acerca de la parte técnica del fin de semana del desafío AbreDatos y de DNDzgz. A grosso modo las tecnologías utilizadas fueron Google App Engine(GAE) y Python del lado servidor; del lado cliente fueron Javascript con jQuery, la versión 3 del API de Google Maps, algunas de las novedades de HTML5, unas gotas de CSS3 y jQTouch para ayudarnos para que tuviera pinta de aplicación nativa iPhone. Usamos Git como repositorio de código, el repositorio está concretamente en github; para los documentos, diseños, fotos, etc. utilizamos dropbox(antes del fin de semana yo no tenía ni cuenta :P ).

Logo DNDzgz

La elección de GAE fue casi instantánea cuando empezamos a hablar con gimenete acerca de presentarnos al AbreDatos, las razones: hosting gratis y capacidad de escalar mucho sin tener que gastarnos ni un euro, despreocuparnos de la parte de sistemas, ningún problema con las limitaciones por correr sobre la plataforma de Google.

Que usáramos Python, aún siendo más javeros que otra cosa, fue por que ninguno de los 2 teníamos experiencia con GAE en Java(okok, yo había hecho un pequeño experimento, pero muy poca cosa para llegar a ninguna conclusión). Por eso preferimos aprovechar su experiencia desarrollando la primera versión de debug_mode=ON con Python+GAE; mientras que varias semanas antes yo me ojeé un par de manuales de inicio rápido, retomé el ebook Python para todos que tenía a medio leer(hace muuuucho :P ) y un par de días antes, me hice en poco rato el proyecto de ejemplo de GAE. Para extraer los datos utilizamos tanto Beautiful Soup como expresiones regulares para hacer scraping de HTML o Javascript de Tuzsa y Bizi, y simplejson para cargar los datos JSON de datos.zaragoza.es.

Que utilizáramos jQuery como framework Javascript, fue una elección posterior a jQTouch(que está basado en jQuery) pero de todas formas, seguramente lo hubiéramos elegido. Google Maps es la elección “por defecto” para todo el que quiere hacer algo con mapas :P . Gimenete es quien estuvo peleando con esto, teníamos problemas con la fluidez en la navegación de los mapas, que al final consiguió mejorar… Eso sí, fuera del navegador Safari del iPhone no conseguimos que los mapas funcionaran correctamente, ni en terminales con distintas versiones de Android y ni si quiera en el Safari de Mac(tenemos que ver que pasa exactamente, tras algunas pruebas, el sospechoso principal es jQTouch).

Gracias a que iPhone(y las últimas versiones de Android) soportan parte de HTML5, se ponían a nuestra disposición algunas de esas novedades que molan tanto (Flash, tiemblaaa!! ;) ):

  • La posibilidad de geolocalizar al usuario por medio del GPS del terminal (no es exactamente HTML5, pero parece que la mayoría lo ponemos en el mismo saco) muy fácilmente utilizando navigator.geolocation.
  • Para implementar los favoritos/acceso rápido estuvimos usando Web SQL Database, lo que supone guardar los datos en una base de datos embebida al navegador web(actualmente parece que en todos es SQLite, o al menos parece ser la implementación de referencia), que finalmente se quedó fuera por falta de 3/4 horas :S.

En fin, que debemos molar, porque nuestro proyecto es una pequeña colección de buzzwords: Cloud Computing vía Google App Engine, HTML5, iPhone… XD

Nuestra aportación en el Desafío AbreDatos 2010: DNDzgz.com

Tuesday, April 20th, 2010

Este fin de semana se celebró el Desafío AbreDatos 2010, desde las 00:00 de la noche del Viernes al Sábado hasta las 00:00 del Domingo al Lunes, 48 horitas trabajando para desarrollar servicios que utilizaran datos de fuentes públicas. El desafío lo convocaba la asociación Pro Bono Publico para tratar de concienciar de la necesidad de que se abran los datos generados con dinero público(o sea, el nuestro); y por lo que dicen, nos habíamos presentado 47 equipos de los que hemos conseguido algo funcional unos 30. Y como publiqué en el anterior post, estuve participando.

El equipo del que formaba parte era closin, donde he programado con Alberto Gimeno, la encargada de diseño es Mamen Pradel y el responsable de marketing y comunicación es Lucas Aisa. Aún con la desventaja de que sólo habíamos trabajado anteriormente juntos Mamen y yo, creo que hemos sido un equipo muy compensado y junto al buen rollo durante todo el fin de semana, se ha notado en el resultado final con DNDzgz(o Dónde en Zaragoza ;) ).

DNDzgz TEAM

La idea de DNDzgz, era principalmente crear una aplicación web móvil que mostrara servicios ciudadanos de Zaragoza geolocalizados y su información útil asociada, que además tuviera aspecto de aplicación nativa de iPhone(sin cerrarnos a que funcionara en otros terminales/navegadores, claro).

Nuestra idea inicial fue extraer los datos sólo de las fuentes que aparecen en datos.zaragoza.es, pero la información de servicios como el autobús urbano o el bizi no eran suficientes para nuestro objetivo:

  • En el caso del autobús, nos servía para posicionar las paradas y nos daba una url de la web de tuzsa, en donde aparecía una estimación para saber cuando tardarán en llegar los autobuses de ese poste, por lo que tenemos que hace scraping de ese HTML para poder consumir esos datos.
  • Sobre el bizi, sólo posicionaba las paradas sin ninguna información añadida… pero vimos que en la web de bizi se podía hacer scraping para obtener el número de bicicletas y aparcamientos libres en una estación bizi además de su posición, lo que es realmente útil.
  • La que sacamos íntegramente de la web de datos abiertos del ayuntamiento de Zaragoza, fue la de puntos wifi municipales(porque no necesitábamos más que la posición)

Tarde/noche del sábado #abredatos #t10 #dndzgz

Hay muchas cosas que seguramente se echarán de menos en la aplicación, a bote pronto: favoritos/acceso rápido para ver si hay bizis en mis estaciones habituales, conocer la parada del 30 más cercana a mi posición, la estación de bizi con aparcamientos libres más cercana a mi posición… además de añadir otros servicios ciudadanos.

Se puede pensar que muchas de estas funcionalidades no han sido posibles de añadirse a causa de la limitación de las 48 horas, pero la principal razón de no poder añadir más funcionalidades, fue el tener que perder tiempo haciendo scraping para hacernos con todos los datos que necesitábamos. Y hay que ser consciente que eso habrá pasado en casi todos(por no decir todos) de los 47 equipos que nos presentamos al desafío… con el nivel que se ve en los resultados, ¿que se hubiera conseguido con datos abiertos?

Y nada, sólo quería felicitar a la gente de Pro Bono Publico tras la organización del evento a los equipos por sus resultados, y por supuesto agradecer a todos los que se han presentado su esfuerzo por tratar de crear servicios que nos resulten de utilidad a los ciudadanos.

Ahora la segunda parte, para que haya valido la pena la paliza de este fin de semana, a intentar hacer llegar estos servicios a los ciudadanos! :)

Comida del domingo #abredatos #t10 #dndzgz

PD: Como ha quedado un tocho bastante largo, intentaré escribir durante la semana otro post sobre detalles más técnicos de las tripas de DNDzgz
PD 2: En mi flickr están disponibles las fotos que nos hizo Toño y hay por ahí algún video de @maitrella XD

El Real Zaragoza, twitter y Gaelyk(Groovy + AppEngine)

Tuesday, March 2nd, 2010

Este viernes noche después de cenar me puse a programar(o a jugar) uno de esos mini-pet-projects, lo suficientemente pequeño para no comprometerme a dedicarle más tiempo fuera del fin de semana y lo suficientemente grande para que sea algo más que un hello world. Y salvo a que tenga algún momento de aburrimiento en el que me de por mejorar o añadir alguna cosilla, así se va a quedar.

El proyecto es un agregador de twitts que hablan del Real Zaragoza(o #realzaragoza :) ). Y como uno no quiere hacerse de oro, no lo hace ni del Madrid ni del Barça :P .

Real Zaragoza

Hablando ya desde el punto de vista puramente técnico, es una aplicación muy sencillita que corre en la nube de Google, osea en App Engine (aquí voy a ahorrarme varios comentarios de lo que mola la nube, además de confundirlo con internet… No voy a dar nombres… ;) )

He utilizado un framework web ligero, hecho expresamente para correr en App Engine y muy sencillo llamado gaelyk, donde el código que escribimos es Groovy.

Gaelyk permite separar las vistas(Groovy Tempaltes) de las acciones(Groovlets). Inyecta en las acciones los elementos del SDK de GAE(datastore, memcache, mail, images…), y algunas variables para facilitar la vida y tener un código más escueto.

En mi caso he dejado la lógica de negocio en los mismos scripts de los Groovlets. Tan sólo hay tres: la home, la vista de un usuario(ej: @dani_latorre) y otro que es llamado cada 10 min para hacer una búsqueda en twitter e insertar los twitts nuevos.

Para la búsqueda de twitts, se hacen tan sólo dos peticiones cada 10 min y se parsea la respuesta atom de la búsqueda con XmlSlurper, se comprueba si no está duplicado y se crea y guarda una nueva Entity de GAE (gaelyk facilita su uso, para que sea más a la groovy).

Para recuperar lo que hemos persistido, por el momento no aporta novedades, a partir del datastore lanzaremos las queries. En el futuro es posible que surjan novedades en este apartado.

Para quien le interese conocer más detalles de gaelyk, le recomendaría pegarle una ojeada al tutorial.

Ver una presentación de Guillaume Laforge y Patrick Chanezon.

O un screencast de Pratik Patel(ojo, que a los elementos de GAE inyectados ya no se les llama loqueseaService, sólo loquesea)

Gaelyk & Groovy & Google App Engine – ATL2G from Pratik Patel on Vimeo.

Y aunque este año nos toca sufrir, aupa Zaragoza! XD

Empezando el año con buen pie

Friday, January 8th, 2010

En jobsket terminamos bien el año, lanzando las funcionalidades para empresas y apareciendo en varios medios de comunicación que se hicieron eco de ello (principalmente en las zonas de influencia de Martín, Jordi y mías; y también aparecimos en otros medios como Expansión), además de en varios blogs relacionados con tecnología y empleo.

Y este año parece que lo hemos cogido también con buen pie, el día 2 nos enterábamos que habíamos sido seleccionados para competir el BBVA Open Talent, donde ya he visto varios proyectos cercanos que también han sido aceptados como finalistas(suerte! ;) ). Y cómo no, si queréis, podéis votarnos aunque estemos lejos de los proyectos que lideran el ranking.

La segunda buena noticia nos llegó ayer, al ver que nos habían seleccionado entre los finalistas del Premio Joven Empresa Innovadora, convocado por la Fundación Zaragoza Ciudad del Conocimiento.

En fin, que estar en la pomada en dos concursos que son tan diferentes, le alegra a uno el día :)

Anunciada la Beca Alzado 2009

Wednesday, November 4th, 2009

Parece mentira que ya haya pasado un año desde que nos planteamos participar con Jobsket en la Beca Alzado 2008, que finalmente nos concedieron.

Pues resulta que hace unos días, en alzado han convocado la Beca Alzado 2009. Para el que no la conozca, es un concurso de ideas, donde al ganador se le dan 3000€ para ayudarle a que se pueda hacer realidad, sin ningún compromiso con alzado ni nada de letra pequeña.

Sólo puedo recomendar presentarse a todo el mundo que ande con un proyecto interesante entre manos. En nuestro caso, nos ha servido de ayuda a muchos niveles(los 3000€, ganar visibilidad, consejos…), además de ser una gran inyección de motivación :)

Y para los que queráis saber más acerca de Jobsket, tras convocar la Beca para este año, Eduardo Manchón ha publicado una entrevista a Martín, donde habla de un poco de todo: de donde venimos, hacia donde queremos ir, como trabajamos…

Primeros días de Jobsket en abierto

Sunday, June 21st, 2009

Como supongo que ya sabréis los que os pasáis por aquí(o deberíais :P ), hace un par de semanas que jobsket ha salido de la beta cerrada, durante este tiempo hemos recibido bastante feedback de los usuarios(muchas gracias a todos!).

Nos ilusiona mucho la repercusión que hemos visto por internet, y que incluso acabara nombrándose en la sección Espai Internet del Telenotícies cap de setmana de TV3(evidentemente, en catalán). Por otro lado, para los técnicos :) , también me hizo una pequeña entrevista Nacho Brito para groovy.org.es acerca de como usamos Groovy y Grails en Jobsket.

A seguir trabajando!

Jobsket en el podcast de debug_mode=on

Wednesday, April 22nd, 2009

Han publicado ya en debug_mode=on, la entrevista que nos hicieron para su primer podcast a Jordi y a mi para hablar de Jobsket.

Para grabar la charla-entrevista, aprovechamos que yo tenía previsto un viaje a Barcelona y lo grabamos en las oficinas del SeedRocket, que es donde está trabajando actualmente el equipo de debug_mode=on. El estar todos en la misma sala, excepto Jorge Rubira, hizo que poco a poco fuera más distendida la grabación(creo que se nota que también había confianza :) ).

Hablamos bastante de qué es Jobsket como proyecto, y mucho también de cuáles son nuestras herramientas de desarrollo: Java, Grails, Groovy, Lucene, Hudson, Eclipse… incluso un poco sobre microformats y, aunque fue muy por encima, hasta sobre Grails vs Ruby on Rails.

Una semana de Jobsket

Tuesday, March 24th, 2009

La semana pasada anunciamos en el blog de jobsket que empezábamos a enviar las invitaciones, Martín también lo hizo. Si todavía no has recibido la invitación para registrarte, hay una introducción de qué es jobsket.

Después de bastante tiempo trabajando, haciendo y deshaciendo, ya teníamos ganas de poder presentar jobsket bajo los focos, y de ver la respuesta que nos encontrábamos. Y hasta el momento estamos muy contentos con el feedback recibido, aunque todavía nos falta mejorar muchas cosas.

Es un proyecto que parece que está gustando a los primeros usuarios, de los que además estamos recibiendo ánimos para seguir trabajando, ideas para implementar nuevas funcionalidades, mejoras y avisos de bugs; ya sea vía uservoice, email, gtalk, twitter… o delante de una cerveza ;) . Muchas gracias a todos!

Nosotros seguiremos trabajando para que llegue a ser el mejor servicio posible y disfrutando del camino :)