Saturday live code: El típico bug que te lleva una hora y se resuelve con una línea de código

17th
dic. × ’11

El API de Citybik.es en JSON usa UTF-8 para codificar los caracteres. En el primer intento de hacer los mapas térmicos de bicing, las etiquetas de las estaciones con nombres con acentos o cedillas salían con “un garabato”.

El parsing del JSON lo hago con jQuery y al inspeccionar las variables podía ver que el garabato venía directamente del API:

… ¿o no?, ¿qué me devuelve el API antes de llamar a $.getJSON ?

Es decir, jQuery se está haciendo la picha un lío con el encoding de los caracteres. El API me devuelve UTF-8, que es perfectamente válido para JSON, pero me da a mi que jQuery espera Unicode.

Por cierto, el Mínimo Minimorum Que Todo Desarrollador De Software Positiva Y Absolutamente Debe Saber Acerca De Unicode Y Conjuntos De Caracteres. (¡Sin Excusas!).

La solución tras una hora de búsqueda es, como casi siempre, una sola línea de código, antes de llamar a getJSON:

 $.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});

Saturday live code: Primer pantallazo “enseñable”

17th
dic. × ’11

Sigo con mi misión Rodriguez del sábado: Adaptar Bisicalc a todas las ciudades españolas que exponen los datos de su red de bicicletas de alquiler.

Después de reducir el ámbito del problema, hacerlo todo en local y sin base de datos, y separar los datos de las funciones de dibujo, para que luego el trabajo sea más fácil al portar otras ciudades, ya tengo el primer pantallazo:

Los principales problemas han sido:

  • Diferencias entre el modelo de datos de Bisicalc, basado en “updates” y el de Citybikes, basado en “estaciones”
  • Siempre se me olvida que los callbacks de Javascript son asíncronos y no necesariamente se sigue un orden de ejecución lineal (fuera del callback)
Siguiente, hacer un poco de depuración de código y añadir estadísticas de uso globales.

Saturday live code: Divide y vencerás

17th
dic. × ’11

Una vez mirado el API de CityBikes veo que hay bastantes diferencias con el que uso yo, es decir, que voy a tener que adaptar la parte de proceso del modelo de datos.

En lugar de liarme con Ruby on Rails y todo a la vez, sigo la ‘estrategia del comedor de turrón duro (TM)’ y voy a partir el problema en trozos pequeñitos:

  • Primero Barcelona bicing
  • Páginas estáticas sin servidor (así elimino el Ruby on Rails y la base de datos de momento)
  • Separar la parte de configuración de latitudes y longitudes a un fichero Javascript separado

Saturday live code: Blogueando un programa

17th
dic. × ’11

Hace unos días vi las APIs de CityBikes, que dan acceso a las estadísticas de uso en vivo, no sólo de Valenbisi, sino de muchos otros sistemas.

Hoy me he levantado “faener” y, con eso de que soy mi propio jefe, y estoy de Rodriguez, voy a intentar añadir servicios de mapas de ocupación por colores para todas las ciudades de España que tienen los datos abiertos antes de que acabe el día.

Por aquí y por Twitter voy a ir retransmitiendo la jugada y como va progresando la cosa. De momento ya he preparado el entorno de programación: café y dulces de boniato a mano.

Encuesta

17th
dic. × ’11

En la página web de contacto de una organización, ¿qué prefieres?

View Results

Loading ... Loading ...

Nuevos colores e iconos en Bisicalc.com

10th
dic. × ’11

Mientras nos preparamos para los nuevos grandes cambios en la funcionalidad de bisicalc.com, el mapa de colores de la ocupación de Valenbisi, aquí os dejamos algunos cambios menores:

  • Carga de datos más rápida
  • Vuelve el verde y los colores para daltónicos se pueden activar desde un botón
  • Hay menos colores y más contrastados, con lo que es más fácil diferenciar las zonas
  • Nuevos iconos para las estaciones. Cuando una estación está llena o vacía el icono es un círculo, con lo que es más fácil identificar dónde no se puede aparcar o sacar bicis

Mejoras de accesibilidad y acceso con smartphones en bisicalc.com

7th
nov. × ’11

Seguimos haciendo mejoras poco a poco en bisicalc.com, un servicio para visualizar la localización de las bicis de alquiler, Valenbisi, en Valencia. Esta semana:

  • Cambio del esquema de colores, haciéndolo más accesible para daltónicos: Hemos substituido el verde por azul y, la verdad, queda más claro.
  • Localización en smartphones: Al acceder a la web con un smartphone, el mapa se centra automáticamente, y muestra, la posición actual.
  • Icono para los bookmarks en iPhones y Android: Al hacer un bookmark se añade un icono de una bicicleta al escritorio.

Algunas mejoras en bisicalc.com

28th
oct. × ’11

Llevamos dos días en el aire y ya estamos arreglando bugs. Gracias a Alex de biciv.com por su inestimable ayuda, no solo en señalar errores, sino también durante todo el desarrollo.

Las mejoras introducidas ayer:

  • Versión simplificada para smartphones: El menú con las estadísticas no permitía ver el mapa desde el navegador en un smartphone. Con los consejos de HTML5 Rocks se ha limpiado un poco y ya es usable.
  • Arreglado un bug al acceder con Firefox: El api de Google maps acepta colores CSS. Chrome y Safari aceptan un color en hexadecimal, pero en Firefox hay que ser correctos y poner una almohadilla delante.
  • Las fechas ya se ven correctamente en Firefox y Safari: Los navegadores no se ponen de acuerdo con el formato de fecha que prefieren. Finalmente con un poco de trasteo con los strings se arregló el tema (cambiar los “-” por “/” al leer el JSON)

Si veis algún bug suelto por ahí, me podeis enviar email a hola@pebbl.es.

Bisicalc, una nueva manera de ver la red de valenbisi

27th
oct. × ’11

Ayer hicimos pública la primera versión de Bisicalc, una web que permite visualizar la red de bicicletas de alquiler de Valencia, Valenbisi.

La web muestra un mapa de la ciudad de Valencia y la disponibilidad de bicicletas por áreas, al estilo de los mapas de temperaturas del pronóstico del tiempo.

Las zonas rojas se corresponden con una menor disponibilidad de bicicletas y por lo tanto son zonas en las que es más fácil encontrar aparcamiento. Las zonas verdes tiene una mayor cantidad de bicicletas disponibles.

Ruby on Rails, primeras impresiones

26th
sep. × ’11


Después de 4 años sin programar (profesionalmente), me he puesto a actualizarme. La “gente guay” está muy metida en el stack de Ruby on Rails y jScript. Llevo una semana en el ajo y estas son las primeras impresiones:

  • La curva de aprendizaje es pronunciada: No solamente hay que aprender Ruby. Encima de Ruby está Rails, un framework MVC, con un nivel de abstracción muy alto. Incluso con una aplicación sencilla, las herramientas automáticas crean muchos directorios, código y configuración que me han hecho perderme varias veces.
  • Ruby es un lenguaje denso: Estilo Perl, una línea de Ruby tiene mucho significado. La legibilidad del código se resiente inicialmente (aunque los Ruby-istas presumen de que es un lenguaje muy cercano al humano).
  • No todas las empresas de hosting soportan las ultimas versiones de Ruby: Había asumido, equivocadamente, que cualquier hosting soportaría RoR (Ruby on Rails). Para mi sorpresa, mi host actual, OVH, no soporta Rails 3 ni Passenger. Estoy buscando un host económico para poner mi aplicación.
  • Desarrollar en Ruby es rápido: En menos una semana ya tengo una aplicación que lee un XML, lo parsea y lo convierte en JSON.
    Aunque hay tutoriales y mucha información por la red, hay muchas maneras de hacer las cosas y todo el mundo compite diciendo “yo soy el mejor, usa mi programita/librería/herramienta”. Al final hay que hacer un collage para que las cosas funcionen.
  • “Solo se que no se nada, en comparación con lo que me queda por saber”: Cuanto más me meto, más cosas veo: Capistrano, Git, Passenger, Gems
  • -