Articles for gener 2014

Gestor de rutes: La Sària serveis turístics

Fa un parell de setmanes que hem programat un gestor de rutes amb mapa per a La Sària serveis turístics, que ara han obert al públic. Igual que vam fer amb la web de l’Associació Serra Mariola, compta amb un mapa de Google Maps on els visitants podran fer una ullada a les rutes que La Sària ofereix per tot el territori valencià.

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

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

La nova secció de la web de La Sària et permet fer una ullada a les seues rutes turístiques, excursions i itineraris de forma fàcil, sobre un llistat o sobre el mapa. A més, la gestió és també molt senzilla, que era un dels requisits del client.

Detalls tècnics
Coding
  • La web compta amb una guia de rutes sobre mapa on els usuaris podran vore tota l’oferta.
  • A més, els resultats que es mostren sobre el mapa s’emmagatzemen en una cache temporal per augmentar el rendiment de la web, minorar el temps de resposta i evitar la sobrecàrrega.
  • L’edició de les rutes també és molt senzilla. De fet això era un dels requisits del client.
Web design
  • El mapa i gestor de rutes s’ha integrat en el disseny web que ja tenia La Sària.

Problema amb el BOM

Quan programem aplicacions web apareixen una sèrie de complicacions que no tenim habitualment quan programem aplicacions d’escriptori. Una d’elles és relacionada amb el BOM (Byte Order Mark). Segur que molts hem tingut males experiències amb WordPress per exemple, dient-nos coses com HTTP header have been already sent. El BOM són uns caràcters especials que es poden col·locar al principi d’un arxiu per indicar si és Little o Big Endian. Actualment, en UTF-8 per exemple, no és obligatori posar-lo (de fet es recomana no fer-ho), però alguns editors de text el posen per defecte i d’aquí vénen els problemes.

Aquesta entrada ha estat motivada per un extrany problema causat pel BOM, cosa que vaig saber a posteriori.

Quan el frontend de l’aplicació enviava una petició per AJAX (des de jQuery), aquesta arribava correctament al servidor. El servidor processava correctament la petició i retornava la resposta JSON. Tot i això, del costat de jQuery l’acció no seguia.

Primer vaig pensar que la resposta JSON estaria mal formada, així que la vaig comprovar amb un JSON checker, com JSONLint. La resposta JSON estava ben formada.

Després vaig pensar que hi havia algun error jQuery-Javascript quan s’executava l’acció success, però no era això. Simplement l’acció success no s’executava mai. Això em va fer pensar de nou que hi havia un error amb la resposta JSON. Però, com? si l’havia comprovada amb un checker.

Resulta que la resposta venia amb un BOM al principi, cosa que feia que jQuery no executara l’acció success, tot i que la resposta era un JSON ben format. El problema ara era… tinc un projecte web amb prop de dos mil arxius PHP… com puc trobar l’arxiu on s’ha inclòs el BOM?

Habitualment he usat un editor que t’indica si l’arxiu té BOM o no, i et permet llevar-lo o canviar la codificació, com és Notepad++, però s’havien editat massa arxius com per a revisar-los a mà. Vaig pensar en programar alguna xicoteta aplicació o script per a detectar arxius amb BOM però algú s’havia preocupat de fer-ho i publicar-ho gratuïtament: File BOM Detector. Senzill i efectiu. Problema solucionat.