Articles for enero 2014

Gestor de rutas: La Sària servicios turísticos

Hace un par de semanas que hemos programado un gestor de rutas con mapa para La Sària servicios turísticos, que ahora han abierto al público. Al igual que hicimos en la web de la Asociación Serra Mariola, cuenta con un mapa de Google Maps donde los visitantes podrán echar un vistazo a las rutas que La Sària ofrece por todo el territorio valenciano.

Gestor de rutes amb integració de Google Maps i WordPress per a La Sària serveis turístics

Gestor de rutas con integración de Google Maps y WordPress para La Sària servicios turísticos

La nueva sección de la web de La Sària te permite consultar sus rutas turísticas, excursiones e itinerarios de forma fácil, sobre un listado o sobre el mapa. Además, la gestión es también muy sencilla, que era uno de los requisitos del cliente.

Detalles técnicos
Coding
  • La web cuenta con una guía de rutas sobre mapa en la que los usuarios pueden ver la oferta.
  • Además, los resultados que se muestran sobre el mapa se almacenan en una cache temporal para aumentar el rendimiento de la web, minorar el tiempo de respuesta y evitar la sobrecarga.
  • La edición de las rutas también es muy sencilla. De hecho este era uno de los requisitos del cliente.
Web design
  • El mapa y gestor de rutas se ha integrado en el diseño web que ya tenía La Sària.

Problema con el BOM

Cuando programamos aplicaciones web aparecen una serie de complicaciones que no tenemos habitualmente cuando programamos aplicaciones de escritorio. Una de ellas está relacionada con el BOM (Byte Order Mark). Seguro que muchos hemos tenido malas experiencias con WordPress por ejemplo, diciéndonos cosas como HTTP header have been already sent. El BOM son unos caracteres especiales que se pueden colocar al principio de un archivo para indicar si es Little o Big Endian. Actualmente, en UTF-8 por ejemplo, no es obligatorio ponerlo (de hecho se recomienda no hacerlo), pero algunos editores de texto lo ponen por defecto y de aquí vienen los problemas.

Esta entrada ha estado motivada por un extraño problema causado por el BOM, cosa que supe a posteriori.

Cuando el frontend de la aplicación enviaba una petición AJAX (desde jQuery), ésta llegaba correctamente al servidor. El servidor procesaba correctamente la petición y retornaba la respuesta JSON. A pesar de eso, del lado de jQuery la acción no seguía.

Primero pensé que la respuesta JSON estaría mal formada, así que la comprobé con un JSON checker, como es JSONLint. La respuesta JSON estaba bien formada.

Después pensé que habría algún error jQuery-Javascript cuando se ejecutaba la acción success, pero no era así. Simplemente la acción success no se ejecutaba nunca. Eso me hizo pensar de nuevo en que había algún error con la respuesta JSON. Pero, ¿cómo? si la había comprobado con un checker.

Resulta que la respuesta venía con un BOM al principio, cosa que hacía que jQuery no ejecutase la acción success, aunque la respuesta era un JSON bien formado. El problema ahora era… tengo un proyecto web con cerca de dos mil archivos PHP… ¿cómo puedo encontrar el archivo en el que se ha incluido el BOM?

Habitualmente he usado un editor que te indica si el archivo tiene BOM o no, y te permite quitarlo o cambiar la codificación, como es Notepad++, pero se habían editado demasiados archivos como para revisarlos a mano. Pensé en programar una pequeña aplicación o script para detectar archivos con BOM, pero alguien se había preocupado de hacerlo y publicarlo gratuitamente: File BOM Detector. Sencillo y efectivo. Problema resuelto.