curioso debugging

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

curioso debugging

a.furieri
Riuscite ad immaginare qualche tipo di relazione
tra Open Data CC-BY e debugging del codice ?
Sembrerebbe apparentemente che non ci sia nessuna
relazione, no ?

la storia
---------
come sicuramente avrete già visto, nelle scorse
settimane Regione Emilia Romagna ha rilasciato un bel
po' di dati (anche geografici) sotto licenza CC-BY:
e tra questi, un impressionante shapefile contente
circa 850.000 edifici
http://dati.emilia-romagna.it/dato/item/6-6-edifici.html

Mentre facevo un po' di test su questo dataset, mi sono
accorto che spatialite a volte andava in crash [avete
presente, il classico bug "errante", che qualche volta
colpisce a morte e qualche volta invece funziona bene ....]

Morale: c'era uno stupido bug sull'implementazione di
ST_Transform(), direttamente legato alla gestione dei
"buchi" interni ai poligoni; in pratica, una allocazione
sbagliata che causava (a volte) una grave corruzione
della memoria con conseguente crash.

Nota bene: il bug era presente fin dalla prima implementazione
del codice, e nessuno (me incluso) se ne era mai accorto in
oltre due anni :-D

Spiegazione: normalmente i poligoni hanno pochi "buchi",
e spesso i "buchi" sono abbastanza semplici (cioè hanno
un numero di vertici molto minore del numero di vertici
del bordo esterno).
Molti poligoni-edificio del dataset RER CC-BY invece hanno
la caratteristica opposta: un bordo esterno semplice (più
o meno, un rettanglo), e tanti "buchi" (cortili) che spesso
hanno un numero molto elevato di vertici (assai frastagliati).
e così finalmente il bug su ST_Transform() si è manifestato
in modo inequivoco in tutti i suoi effetti nefasti, ed è
stato quindi possibile identificarlo e correggerlo.

Conclusione: si, gli Open Data possono essere veramente
di enorme utilità per aiutare ad ottenere un codice migliore,
meglio collaudato, e quindi più stabile ed affidabile :-D

ciao Sandro

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011