Archivio per la categoria ‘OS’

1 marzo, 2010

Era da un po’ che avevo in mente di dedicare un articolo a jQuery, finalmente – complici l’influenza che mi ha tenuto a riposo forzato e l’ispirazione tratta da Linfiniti – sono riuscito nell’intento.

Per chi non lo sapesse, jQuery è un framework Javascript open source molto potente, caratterizzato da una sintassi snella e di facile comprensione.
Il framework è rilasciato con doppia licenza: MIT e GPL.
I motivi per usare jQuery nei propri progetti non mancano di certo: comunità attiva, disponibilità di molti temi e ottimi plugin, compatibilità e leggerezza sono i primi che mi vengono in mente.

In questo articolo vedremo come costruire una mappa online sfruttando jQuery UI e OpenLayers.
Il risultato della “fusione” è un client dotato di funzionalità di base come zoom, pan, misurazione delle distanze e vari layer di sfondo intercambiabili.
Si tratta, in pratica, di un template da cui partire per sviluppare applicazioni di web-mapping vere e proprie.

jquery_openlayers

Per creare il client dell’esempio abbiamo bisogno di:

Ho già raccolto il tutto in questo archivio .zip. Qui dentro, oltre alle librerie, si trova la totalità dei file che compongono il client. Vi basta quindi cliccare sul link per avere il template sul vostro computer, pronto all’uso e/o ad essere trasformato come volete.
Vi invito però a dare lo stesso un’occhiata alla pagina di download di jQuery UI: noterete che è possibile modificare radicalmente il pacchetto prima di scaricarlo. Potete includere le sole componenti utili ai vostri scopi e scegliere tra vari temi già pronti o uno composto da voi con ThemeRoller.
Io ho fatto solo qualche semplice modifica al tema UI-Darkness (in questo periodo non mi piacciono i bordi arrotondati…) ma, come dicevo, si può fare molto di più. Provare per credere.

Ora un po’ di anatomia.
Scompattato l’esempio, è bene posare lo sguardo su alcune delle directory e dei file compresi al suo interno.

jsLib

E’ la directory contenente tutte le librerie elencate in precedenza, necessarie al funzionamento del template.

index.html

Nella sezione header sono referenziate le librerie utilizzate, i fogli di stile e i file javascript.
Nel body è possibile notare che l’attributo class di molti degli elementi della pagina (div, button, span, ecc.) è parecchio popolato. Questo è il metodo con cui jQuery UI e jQueryUI.Layout si “ancorano” alla pagina web.
Per comprendere meglio vi rimando alla pagina degli esempi di jQuery UI.Layout e a questo articolo che spiega in maniera egregia la composizione della toolbar e dei suoi pulsanti.

jsFunc/mappa.js

Contiene la mappa realizzata con OpenLayers.
Nella funzione di inizializzazione (initMap) richiamata al caricamento della pagina, ci sono, tra le altre cose, i controlli collegati ai bottoni della toolbar.

jsFunc/layout.js

In questo script, con poco più di 40 righe di codice, jQuery UI e i suoi plugin definiscono Il layout dell’applicazione, il tema, il comportamento e l’aspetto di bottoni e tooltip.

Css/style.css

A parte qualche piccola “frivolezza” come queste (a mio giudizio) bellissime icone, in questo foglio di stile sono descritte le regole fondamentali per la corretta presentazione del layout e della toolbar creati tramite jQuery UI.

Ecco, questo è grossomodo ciò che bisogna sapere per iniziare a studiare i mille modi di mescolare le potenzialità di jQuery a quelle di OpenLayers.
Fondamentale, come sempre, è il ricorso alla documentazione ufficiale dei vari progetti e al supporto offerto dalla comunità.
Per chiudere segnalo anche due guide in italiano, estremamente ben fatte ed utilissime per avvicinarsi a jQuery e jQuery UI. Entrambe sono firmate HTML.it:
Guida a jQuery
Guida a jQuery UI

24 ottobre, 2009

Si è appena conclusa a Sidney la Conferenza annuale sul Free and Open Source Software for Geospatial (FOSS4G 2009). Da feed e canali vari (ad esempio, il canale FOSS4G su Twitter, di cui Andrea ha parlato nel suo ultimo post) abbiamo appreso del momento probabilmente più entusiasmante della conferenza, solo per il quale sarebbe valsa la pena di volare da quell’altra parte del mondo. Si sta parlando del keynote di Paul Ramsey dal titolo: ”Beyond Nerds Bearing Gifts: The Future of the Open Source Economy”, in cui – non a caso – è ottimamente rappresentata una visione chiara e competente circa l’attuale evoluzione del mondo open source (… e non solo!), secondo il punto di vista di uno che ci è dentro fino al collo.

We are just at the start of a transformation in the software market, where purchasers recognize that they have the option to buy the whole product and get the software for free.

whole_productsIn particolare, il direttore di OSGeo sostiene che, al fine di accedere al mercato che conta, le giovani società che sviluppano open source non dovrebbero “vendere” esclusivamente software, bensì un “intero prodotto” (software + servizi), analogamente a quanto fanno già i giganti del mercato. Ma è qui che il DNA dell’open source si dimostrerebbe particolarmente vincente alla lunga nel processo di selezione naturale imposto dalle leggi di mercato, rovesciando il classico modo di intendere il software: sono i servizi ad esso collegati a determinare quel valore aggiunto tale da consentire di oltrepassare l’abisso esistente tra il mercato di nicchia, popolato da entusiasti della tecnologia e visionari, e quello tradizionale, più rilevante dal punto di vista economico. Aggiunge, poi, che ora stiamo assistendo non ad una rivoluzione dell’open source, ma all’evoluzione dell’open source. Si tratta di un processo lento, ma inesorabile, in cui ci si sta muovendo partendo da un modello aziendale chiuso, dove il codice sorgente è privato, verso un modello collaborativo aperto, dove il codice sorgente è condiviso.

evolution

Si segnala al lettore il link al blog clever elephant, tramite il quale è possibile “rivivere” l’atmosfera dell’evento e farsi una propria idea sull’argomento. Buon Linux Day a tutti!

Nota di redazione: questo post è scritto da Antonio Falciano. Stamattina mi ha “inviato” (e contagiato) per email il suo entusiasmo per la presentazione di Paul Ramsey, e gli ho proposto di trasformarlo in un post. Ringrazio molto Antonio per avere accettato  ;-)
20 ottobre, 2009

Oggi è iniziata a Sidney la conferenza annuale Free and Open Source Software for Geospatial (FOSS4G). Sognando di essere lì, ho provato ad avvicinarmici “virtualmente” ed il canale ufficiale su Twitter è stato (come mi aspettavo) una bella sorpresa.

Notevole ad esempio la segnalazione sul workshop dedicato al bellissimo MapFish. Si tratta di un framework open source basato su ExtJs e OpenLayers, grazie al quale è possibile realizzare delle belle e funzionali applicazioni di webmapping; Alessio Di Lorenzo ha scritto a riguardo un bel post.
Il workshop è  una guida passo-passo molto ben strutturata, che vi guiderà alla creazione di un’applicazione MapFish ed alla sua personalizzazione.

Qui sotto ho inserito il il canale di Twitter della conferenza, che vedrete evolvere in real-time (credo si vedrà soltanto sul post originale e non sul canale RSS o sulla newsletter di TANTO). Twitter è lo strumento ideale per questo tipo di eventi, sia dal lato utente che da quello redazionale.

Buon lavoro a tutti i presenti al FOSS4G 2009.

21 settembre, 2009

pencilUltimamente mi è stato richiesto un applicativo di webmapping che mettesse chiunque (o quasi…) in condizione di gestire agevolmente un geodatabase, aggiornando nel tempo le informazioni contenute, comprese le feature geografiche. In due parole: un gestionale web, ma con delle funzionalità proprie dei GIS desktop.
Il committente ha richiesto una soluzione open source ed io sono stato ben contento di proporre il rodato quartetto composto da UMN-Mapserver, PostGIS, PHP e MapFish.
In passato avevo già realizzato qualcosa di simile, ma si trattava di inserire dei punti a partire da una coppia di coordinate, operazione semplicissima grazie a PostGIS. Questa volta era necessario che l’utente disegnasse le geometrie online, direttamente nella finestra del browser, ed ho colto l’occasione per dare finalmente un’occhiata alle funzioni di editing vettoriale di OpenLayers 2.8. Ne sono rimasto estremamente soddisfatto, come sempre avviene quando si tratta di OpenLayers.
Scorrendo la pagina degli esempi ed inserendo il filtro “vector”, ci si rende subito conto della potenza dei controlli dedicati all’editing.

Grazie agli esempi, che coprono quasi tutto lo spettro delle possibilità, è stato facile produrre la parte client del mio lavoro.
L’editor ottenuto è adattabile a qualsiasi back-end “spatial enabled”, è indipendente dal mapserver scelto per pubblicare i dataset online, dal geodbms usato per contenerli e dal linguaggio di programmazione lato server.
Il cuore del client è costituito dalle funzioni presentate in questo esempio, che consentono di disegnare una feature da serializzare sotto forma di stringa in ben 6 formati standard differenti. Ottenuta la stringa, il gioco è fatto: uno script lato server si occupa di recuperarla e lanciare una query di inserimento nel geodabase (ci sono, come sempre, anche altre soluzioni).
L’operazione inversa, vale a dire deserializzare una stringa ed ottenere una feature, è ugualmente possibile e può essere molto utile.
Per esempio, volendo rifinire degli shapefile su una base Google Maps o Openstreetmap, basta trasformarli KML (o in uno degli altri 5 formati supportati), aprire il file con un editor di testo e, infine, copiare ed incollare il contenuto dentro la textarea del nostro editor. A questo punto si è liberi di modificare a piacimento le feature importate.
Questo è solo un esempio grezzo di import, dispobile “out of the box”, ma una volta collegato l’editor ad un back-end spaziale si può dare sfogo alla fantasia e creare delle funzioni di importazione più raffinate.

vector editing con openlayers

Cliccando qui potete vedere una versione super-generica del client di editing da me realizzato. Ho usato MapFish 1.1[1] per dare un aspetto un po’ più carino[2] al tutto ed ho modificato il codice degli esempi affinché le diverse funzioni di editing potessero essere attivate da una toolbar invece che da una serie di checkbox e radiobutton. I commenti nel codice dovrebbero essere abbastanza esplicativi.

[1] Si tratta di una versione leggermente modificata in cui ho sostituito OpenLayers 2.7 con OpenLayers 2.8

[2] Qualcuno potrebbe cimentarsi con Dojo o jQuery… sono sicuro che non verrebbe affatto male ;)

Nota
Devo scusarmi con i lettori di TANTO iscritti al feed RSS.
Stamattina ho accidentalmente cliccato sul bottone “Pubblica” mentre scrivevo la bozza e nonostante mi sia precipitato a recuperare, non sono riuscito ad evitare che l’articolo incompleto finisse nel feed. Per farmi perdonare mi sono incollato al computer ed ho fatto il possibile per finire l’articolo e la demo alla svelta! In futuro starò più attento a dove clicco e soprattutto non inizierò a scrivere bozze di domenica mattina prima di colazione! :)

30 agosto, 2009

A Novembre si terrà a Bolzano la “Seconda Conferenza Italiana sul Software Geografico Libero“.

Nei giorni 11 e 12 novembre 2009 si terrà a Bolzano la Seconda Conferenza Italiana sul Software Geografico Libero.

L’evento costituirà un appuntamento ideale per aziende, professionisti e pubbliche amministrazioni di tutta Italia attive sia nel settore del Software Libero Geografico, che di soggetti che desiderano avvicinarsi ad esso.

Durante la Conferenza sono previsti workshop, sessioni di presentazioni tematiche ed eventi paralleli a carattere applicativo, divulgativo e di sviluppo.

Per chi fosse interessato a proporre argomenti per le presentazioni, segnaliamo sin da ora che il termine per l’invio degli abstract è il 15-9-2009.

Seguiranno inoltre a breve indicazioni relative all’iscrizione agli workshop e ad altri aspetti organizzativi.

È possibile consultare le informazioni più aggiornate relative all’evento alla pagina http://www.gfoss.it/drupal/gfossday

La conferenza è organizzata dall’Associazione italiana per l’informazione geografica libera (GFOSS.it) in collaborazione con R3 GIS, Hydrologis, Free Software Center e Provincia Autonoma di Bolzano (Ufficio Coordinamento Territoriale) e si terrà al TIS – Techno Innovation Park di Bolzano.
Il giorno 13 Novembre si terrà nella stessa sede la Free Software Conference dell’Alto Adige, appuntamento annuale sul tema dei software liberi.


TANTO non rappresenta una testata giornalistica ai sensi della legge n. 62 del 7.03.2001, in quanto non viene aggiornato con una precisa e determinata periodicita'. Pertanto, in alcun modo puo' considerarsi un prodotto editoriale.