Archive for diciembre, 2011

Saturday live code: ¡Está vivo!

Bueno, justo a las doce de la noche y después de unos pequeños problemas de muerte prematura y fallos iniciales, he conseguido llegar a la meta que me había propuesto esta mañana: Sacar una versión de Bisicalc para todas las ciudades españolas que exponen los datos de las bicis de alquiler.

Esta semana pondré un par de artículos sobre las cosas que he aprendido, sobre todo de Rails routing y precompilación de assets (que no termina de convencerme).

Saturday live code: testing, testing, testing

Ya casi estamos. Al final he pasado más tiempo haciendo testing de la aplicación y arreglando bugs que programando. Buena señal. Aquí un pantallazo de la fase de testing con el simulador de iOS, para ver que la home page era visible y usable desde dispositivos móviles:

La mayoría de los problemas han sido causados porque soy un novato en Ruby on Rails y he tenido que estudiarme a fondo el tema del routing en Rails 3 con subdominios. O lo que es lo mismo, que las peticiones a barcelona.bisicalc.com, valencia.bisicalc.com, etc… sean procesadas por la misma aplicación.

Y ahora, hacer check in en GIT y a subir la aplicación al servidor, es decir… a romperlo todo, porque estas cosas nunca funcionan bien a la primera.

Saturday code live: el segundo bug del infierno

Debería haber subido ya la versión que os he estado enseñando a bisicalc.com… pero algo se ha interpuesto en mi camino: El bug del infierno de último minuto™.

Para resumir dos horas en dos minutos: El API de Citybik.es me devuelve la fecha y hora de actualización de cada estación en formato:

2011-12-17 00:16:51.335480

Pero Javascript en Firefox/Safari no tragaba, y en lugar de formatear la última fecha de actualización, me decía: NaN/NaN/Nan a las NaN:NaN (NaN = Not a Number). Por algún oscuro motivo en Chrome si que funciona.

La especificación de Javascript dice que el formato que viene de citybik.es no es ninguno de los dos aceptados. Lo que más se aproxima a lo que me pasan es un subconjunto de la norma ISO 8601:

2011-12-17T00:16:51.335480+01:00

Expresiones regulares al rescate:

var last_update_date = new Date(last_update[0].timestamp.replace(/(\S*) (\S*)/,"$1T$2+01:00"));

Queda por hacer:

  • Adaptar Bisicalc Valencia al nuevo formato, ahora no funciona
  • Añadir una página de bienvenida
  • Subir a servidores

Saturday live code: No os tengo olvidados

Estoy en ello, ahora viene la parte peliaguda… actualizar servidores. De momento os dejo con una foto de Sevici: