mapfreely.org

Ho deciso di registrare un dominio nuovo per il blog. Da oggi sarà raggiungibile a questo indirizzo:

http://mapfreely.org

o più semplicemente

mapfreely.org

oppure

http://www.mapfreely.org

il vecchio “flaviorigolon.wordpress.com” è ancora attivo ma verrà reindirizzato.

un salutone

flavio

2010 in review

Mi è arrivata questa review sul blog dalla redazione di WordPress….la pubblico as is…. :-).

————————————————————————-

The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:

Healthy blog!

The Blog-Health-o-Meter™ reads Fresher than ever.

Crunchy numbers

Featured image

The average container ship can carry about 4,500 containers. This blog was viewed about 14,000 times in 2010. If each view were a shipping container, your blog would have filled about 3 fully loaded ships.

In 2010, there were 17 new posts, growing the total archive of this blog to 75 posts. There were 13 pictures uploaded, taking up a total of 1mb. That’s about a picture per month.

The busiest day of the year was February 2nd with 144 views. The most popular post that day was Conversione di uno SHP da coordinate WGS84 a Gauss-Boaga Fuso Ovest (GB Fuso Ovest -> WGS84 nel commento).

Where did they come from?

The top referring sites in 2010 were google.it, search.conduit.com, freegis-italia.org, it.wordpress.com, and esridipendente.it.

Some visitors came searching, mostly for coordinate wgs84, grass kml, formato gml, flavio rigolon, and conversione coordinate wgs84.

Attractions in 2010

These are the posts and pages that got the most views in 2010.

1

Conversione di uno SHP da coordinate WGS84 a Gauss-Boaga Fuso Ovest (GB Fuso Ovest -> WGS84 nel commento) March 2009
6 comments

2

Mapnik | un tiles cacher di dati OSM April 2009
2 comments

3

aggiornare data e ora di sistema su Debian February 2009

4

PHP | Gestione di “submit” multipli in un singolo form February 2009

5

Debian | creare un live CD March 2009

django! si, django!

In questo post tento di riassumere (nella maniera piu’ semplice possibile) i passi che ho seguito per creare il primo progetto con django. Da non sviluppatore e abbastanza ignorante nel campo dei linguaggi di programmazione se dovessi definire django con un aggettivo direi: disarmante!

Si ispira al principio DRY (Don’t Repeat Yourself) e la migliore definizione di django che ho trovato è quella fornita da Marco Beri nel suo ottimo libro “Sviluppare applicazioni web con django”: “Django è un ottimo tavolo da lavoro, con tanto di strumenti, per costruire siti dinamici e applicazioni web“. E io aggiungo: le “gambe” del tavolo sono costituite da Python!

Utilizzando Debian troviamo django già pacchettizzato. Purtroppo la versione disponibile non è la piu’ recente; ma basta scaricare i sorgenti dal sito http://www.djangoproject.com/download/ e seguire i 3 (anzi 4) semplici passi indicati:

– si scarica;

– si decomprime il tar.gz;

– ci si sposta nella directory ottenuta dalla decompressione;

– si “suda” per installare il pacchetto: fatto!

E qui comincia il bello. Andiamo per fasi (step):

– si crea una directory di lavoro (la possiamo creare nella nostra home; poi vedremo come fare per renderla visibile al server web).

$ mkdir django_work

– ci spostiamo nella directory creata:

$ cd django_work

– richiamiamo il modulo per la creazione del “progetto” (con django si crea prima un “progetto” e poi “n” applicazioni. C’è molta documentazione in rete che riguarda la strutturazione del framewok):

$ django-admin startproject energia

Questo comando genera nella directory corrente una sottodirectory che ha il nome del progetto indicato (nel nostro caso “energia”) che contiene alcuni file: __init__.py, manage.py, settings.py, e urls.py

NB: con l’installazione di django è stato installato anche un server web (diciamo “provvisorio”) utilissimo per fare i test durante la creazione e implementazione del progetto. Questo server si avvia mediante il comando:

$ python manage.py runserver

Se tutto è ok compare un messaggio simile a questo:

Validating models…

0 errors found….. ecc

Quit the server with CTRL-C.

– Modificare il file settings.py e indicare i parametri alla voce “DATABASES“:

‘ENGINE’:  ‘postgresql_psycopg2″ (se si usa database Posgresql)

‘NAME’:  ‘energia’ (il db si puo’ creare dopo; l’importante è dare questo nome :-))

‘USER’:  ‘sit’ (il proprietario del db creato)

‘HOST’: ‘localhost’

‘PORT’: ” (lasciare in bianco per assumere la porta configurata di default)

– Creare il nuovo database (con lo stesso nome indicato del file “settings.py“). PS: in questo post si assume di lavorare con DB Postgresql; per altre configurazioni (sqlite, mysql,…) vedere la ricca documentazione che si puo’ trovare in rete.

$ su

# su postgres

# psql

# CREATE DATABASE energia OWNER sit;

– lanciare il webserver (quello ausiliario fornito da django con il solo scopo di testare lo sviluppo dell’applicazione) posizionandosi all’interno della directory di lavoro.

$ ./manage.py runserver oppure

$ python manage.py runserver

Deve comparire un messaggio di “0 errors“.

– Puntare il browser alla pagina http://localhost:8000/

dovremmo ottenere una pagina con scritto “IT WORKED…..”

– Creare l’applicazione che chiameremo “manager“:

$ ./manager.py startapp manager

In questo modo viene creata la directory “manager”.

– Definire le tabelle del DB mediante il file “models.py“: le tabelle sono definite come classi python (vedi il tutorial on line)

– L’applicazione nuova chiamata “manager” deve essere attivata modificando il file “…../django_work/energia/settings.py” ed inserendo la voce ‘energia.manager’ nella sezione “INSTALLED_APPS

– Per applicare il modello appena definito cioé costruire la struttura del database lanciare il comando:

$ ./manage.py syncdb

Compare una sequenza di messaggi che indicano l’avvenuta creazione di alcune tabelle (comprese quelle di autenticazione) in quanto previste tra le “INSTALLED_APPS” del file “settings.py” (‘django.contrib.auth‘). Installando l’auth system viene chiesto se si vuole creare un superuser. Rispondere “yes“: viene proposto l’utente attivo. Dare” yes” e immettere un indirizzo e-mail e una password (l’email non è indispensabile).

– A questo punto si puo’ procedere al popolamento della/e tabella/e del db. Il tutorial propone di usare la shell di django ma si puo’ fare benissimo con vari client (io ho usato phppgadmin per Postgresql).

– Creazione delle “view“: si tratta delle viste ossia come devono essere presentati i dati. Prima di farlo definiamo gli URl delle varie pagine editando il file “…/django_work/energia/urls.py“.

Questi pattern associano le espressioni regolari ad un modulo python.

Le view vengono definite nel file “…/django_work/energia/manager/views.py” (sono tipiche dell'”applicazione”). Nelle view definite si fa riferimento a determinati template (file HTML).

– Definire la variabile ‘TEMPLATES_DIRS‘ all’interno del file “settings.py

Esempio: ABSOLUTE_PATH + ‘/home/sit/django_work/energia/manager/templates’

– Creare una directory “templates” all’interno di “manager” e procedere alla creazione dei template (base.html, index.html,…). Per una descrizione più dettagliata sui template si rimanda al tutorial on-line.

Supposto che tutto sia ok si puo’ passare alla pubblicazione vera e propria del nostro lavoro. Ricordiamoci che fino ad ora abbiamo lavorato “in casa” usando il server web ausiliario gentilmente offerto da django. Ma se dobbiamo “uscire” nel mondo dobbiamo usare un “vero” server web. Qui facciamo riferimento ad Apache.

– Nel file “settings.py” nella sezione “DATABASES” verificare che la voce ‘HOST‘ sia impostata a ‘localhost’.

– Modificare il file di configurazione di Apache che si trova in (debian :-)) “/etc/apache2/apache2.conf” aggiungendo:

<Location “/energia/”>

SetHandler python-program

PythonHandler django.core.handlers.modpython

SetEnv DJANGO_SETTINGS_MODULE energia.settings

PythonPath “[‘/home/sit/django_wotk/’,’/home/sit/django_work/energia/’] + sys.path”

PythonOption django.root /energia

PythonDebug On

</Location>

<Location “/media”>

SetHandler None

</Location>

Alias /media /home/sit/src/Django-1.2.1/django/contrib/main/admin/media

Quest’ultimo alias è necessario per caricare i file CSS, JS (modificare i template HTML inserendo “/energia/” a monte di ogni HREF).

NB: ricordarsi di riavviare il server web dopo ogni modifica:

# /etc/init.d/apache2 restart

Spero sia tutto corretto. Commenti benvenuti.

18-19 (20) novembre 2010, GFOSS DAY a Foligno

L’associazione Italiana per l’Informazione Geografica Libera GFOSS.IT (Geospatial Free and Open Source Software) organizza, per i giorni 18 e 19 novembre 2010, a Foligno, la 3a conferenza italiana sul software geografico libero, per fare il punto sullo stato dell’arte del software geografico libero ed Open Source in Italia, ponendo particolare attenzione alle applicazioni nel campo delle pubbliche amministrazioni e delle aziende.

L’associazione GFOSS.IT (http://www.gfoss.it), costituita nel febbraio 2007 da docenti universitari, ricercatori e professionisti provenienti da diverse regioni italiane, ha, tra gli altri, gli obiettivi di:
– favorire lo sviluppo, la diffusione e la tutela del software esclusivamente libero ed open source per l’informazione geografica;
– promuovere gli standard aperti per l’informazione geografica e il libero accesso ai dati geografici.
Il Gfoss Day, tenutosi in precedenza nelle città di Pontedera e Bolzano (http://www.gfoss.it/drupal/convegno e http://www.gfoss.it/drupal/gfossday ), rappresenta uno dei momenti in cui l’associazione GFOSS.IT riunisce soci, aziende, professionisti e pubbliche amministrazioni attive nell’applicazione, sviluppo, promozione e diffusione di software libero geografico.

L’evento sarà aperto e gratuito per tutti i partecipanti. La prima giornata sarà dedicata a momenti formativi durante i quali esperti di fama nazionale ed internazionale terranno corsi mirati su Software GIS (Geographic Information System) e/o WebGIS.

La seconda giornata della conferenza sarà orientata a discutere aspetti tecnologici e legali relativi alla circolazione dei dati geografici. Sono previsti interventi orientati a fare il punto sul processo di adeguamento delle PA italiane alla direttiva Europea INSPIRE (http://inspire.jrc.ec.europa.eu/ – anche alla luce del decreto legislativo 27 gennaio 2010 , n. 32) e sulla promozione di servizi di distribuzione di dati in rete secondo standard condivisi ed internazionali – OGC e ISO (Web Services).

Per questo saranno ospitati interventi di pubbliche amministrazioni che illustreranno i loro progetti ed il loro stato di avanzamento.

Il terzo giorno sara’ dedicato ad una attivita’ di mappatura della citta’ di Foligno (mapping party) coinvolgendo i ragazzi di alcune scuole. I dati raccolti mediante ricevitori GPS saranno poi riversati nel database libero mondiale di OpenStreetMap.

Maggiori informazioni: http://www.gfoss.it/drupal/gfossday2010

L’unita’ di tutte le scienze e’ trovata nella geografia

Colgo la bellissima proposta di Andrea Borruso (che ringrazio!) di divulgare questo post in maniera coordinata ad altri blogger.

La riforma della scuola in approvazione in questi giorni, ed in particolar modo delle scuole superiori, releghera’ la geografia ad un ruolo marginale e sempre piu’ debole. Per questo ci uniamo all’AIIG (Associazione Italiana Insegnanti di Geografia) che ha lanciato una raccolta di firme.

L’unità di tutte le scienze è trovata nella geografia. Il significato della geografia è che essa presenta la terra come la sede duratura delle occupazioni dell’uomo. (John Dewey)

Alle elementari avevo un maestro che insegnava geografia e che tirava giù una carta geografica del mondo davanti alla lavagna. Avevo un compagno di classe al sesto anno che un giorno ha alzato la mano e ha indicato la costa orientale del Sudamerica; poi ha indicato la costa occidentale dell’Africa e ha chiesto: «Sono state mai unite?». E il maestro ha risposto: «Certo che no, è una cosa ridicola!». Lo studente cominciò a fare uso di droghe e sparì. L’insegnante è diventato consigliere scientifico dell’attuale amministrazione (ndr Bush). (dal film documentario statunitense del 2006 “Una scomoda verità”,  diretto da Davis Guggenheim).

Nella mia geografia ancora sta scritto che tra Catanzaro e il mare si trovano i Giardini delle Esperidi. (George Robert Gissing, da Sulle rive dello Jonio).

L’arma del giornalista è la penna o la macchina da scrivere. L’arma del giornalista sotto vetro smerigliato è la bacchetta o la carta geografica. (Sergio Saviane).

Lungo la costa dell’Africa del Sud-Ovest, delimitato da montagne di origine vulcanica da una parte e dall’Atlantico dall’altra, si stende uno dei più antichi e selvaggi deserti della terra. I geografi chiamano questa zona la Costa degli Scheletri, perché le sue spiagge sono disseminate dei relitti delle navi che vi hanno fatto naugùfragi. (Ronald Schiller da “Nel mondo dei diamanti”).

Insieme a: