Vi giro l'email apparsa sulla ML Spaghetti Open Data
(per chi non fosse iscritto) da parte di Gugliemo
Celata - una delle menti che c'e' dietro lo sviluppo
di opencoesione

------------------------------------------------------------
Ciao a tutti,
ecco un pò di dettagli molto tecnici, per i più curiosi, sull'applicazione OpenCoesione, che ho contribuito a realizzare.

Lo stack software usato è riassunto brevemente nelle faq (http://www.opencoesione.gov.it/faq/).

L'applicazione è basata su Django e i dati sono in un DB postgres, con estensione postgis per la gestione delle info georeferenziate. Il DB contiene una versione relazionale e normalizzata, dei dati flat scaricabili.

I dati sono indicizzati attraverso Solr (Tomcat + Lucene), per la navigazione a faccette nelle sezioni progetti e soggetti.
Django e Solr si interfacciano attraverso Haystack.

Le mappe sono generate con TileStache.
I boundaries vengono letti direttamente dagli SHP file dell'ISTAT (quelli semplificati), mentre la tematizzazione coropleth a scala di grigio è fatta attraverso django, che genera dinamicamente un file XML mapnik con le definizioni di stile (i colori), dato in pasto a TileStache.

Per darvi un'idea, la generazione di un xml mapnik, può arrivare a richiedere trenta secondi.

Lo sfondo delle mappe, con i confini marittimi a 12 miglia è preso da cloudmade.com e proxato dal nostro server. Ovviamente i dati dei confini nautici sono OSM, grazie per la segnalazione.

L'algoritmo di classificazione divide i dati in 5 gruppi è indicato nelle faq (Jenks optimisation) ed è già implementato in python in una libreria (pySal, dal package numPy/sciPy),

Tutte le tiles PNG prodotte sono cachate su disco.

Sfondo e tematizzazione sono sovrapposti in pagina su leaflet, attraverso chiamate ajax al TileStache.

La generazione di molte delle pagine html richiede anche più tempo della generazione dei mapnik (fino a 3 minuti), quindi l'html risultante è spedito su memcached e c'è una procedura di pre-generazione delle cache, che purtroppo non può essere lanciata mentre il sito è live. Ecco perché la correzioni alcuni errori (veneto in menu principale),
richiederà un pò di tempo prima di apparire online.

Le applicazioni django e tilestache sono deployate su uWSGI, con nginx che intercetta le richieste statiche e le serve direttamente.

Su tutto c'è Varnish, come reverse proxy, per ottimizzare le risorse a disposizione lato server.


I commenti e i feedback sono preziosissimi, in genere chi programma non riesce a testare un granché bene.
Grazie a tutti.
_______________________________________________
Gfoss@lists.gfoss.it
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.
605 iscritti al 10.7.2012

Rispondere a