Vai al contenuto

Importare Geolite2 in PostgreSql

Geolite2 è un database utilizzabile per aggiungere IP geolocation alla tua applicazione.
Per importarlo in PostgreSql scarica qua i file CSV utili per la tua applicazione. Le differenze tra le due versioni ‘Country’ e ‘City’ le trovate in questa pagina. In questo esempio utilizzerò il file City.
Crea due tabelle in PostgreSql utilizzando i seguenti comandi SQL:

CREATE TABLE geolite2_city_blocks_ipv4 (
id serial primary key,
network inet NOT NULL,
geoname_id integer,
registered_country_geoname_id integer,
represented_country_geoname_id integer,
is_anonymous_proxy boolean NOT NULL,
is_satellite_provider boolean NOT NULL,
postal_code character varying(126),
latitude numeric,
longitude numeric,
accuracy_radius integer
);


CREATE TABLE geolite2_city_locations_en (
geoname_id integer primary key,
locale_code character(2) NOT NULL,
continent_code character(2) NOT NULL,
continent_name character varying(126) NOT NULL,
country_iso_code character(2),
country_name character varying(126),
subdivision_1_iso_code character varying(3),
subdivision_1_name character varying(126),
subdivision_2_iso_code character varying(3),
subdivision_2_name character varying(126),
city_name character varying(126),
metro_code smallint,
time_zone character varying(126),
is_in_european_union boolean NOT NULL
);

Utilizzando pgAdmin, clicca con il pulsante destro del mouse su una delle tabelle appena create e poi clicca su “Importa”. Nel menu “File Options” seleziona il file da importare, poi in “Format” seleziona “csv” e in “Encoding” “UTF8”.
Nel menu “Colums” deseleziona “id”. Nel menu “Misc. Options” seleziona “Header” e in “Delimiter” seleziona “,”. Clicca poi sul pulsante “Importa”.

geolite2

Annunci

Plugins per digital morphological image processing

E’ possibile scaricare a questo link un nuovo plugin basato su algortmi utilizzati su immagini satellitari, principalmente nel campo della landscape ecology (ecologia del paesaggio), ma non solo. Il plugin è stato sviluppato per Qgis, R e ArcGis. Gli algoritmi sono quelli implementati all’interno del tool MSPA (Morphological Spatial Pattern Analysis), e permettono l’analisi della frammentazione, pattern recognition e molto altro.

Apache Jena/Fuseki su CentOS 7

Apache Jena è un framework per lo sviluppo di applicazioni orientate al Semantic Web. Una delle funzionalità fornite da Apache Jena è quella di triple store, un particolare database in grado di memorizzare triple RDF (espresse ad esempio in Turtle o Json-LD) sotto forma di soggetto-predicato-oggetto. SPARQL viene utilizzato per memorizzare e interrogare triple RDF. Le query SPARQL possono essere eseguite in modo semplice attraverso il web service Apache Fuseki.

1) Scaricare Apache Jena e Apache Fuseki

2) Decomprimere gli archivi e muovere le cartelle in /opt. Poi nano ~/.bashrc e aggiungere:
JENAROOT=/opt/apache-jena-3.3.0
PATH=$PATH:$JENAROOT/bin

Ricaricare bashrc: source ~/.bashrc
Verificare che l’installazione sia riuscita: sparql --version

3) Il modo migliore per utilizzare Fuseki è forse installandolo come servizio, così che venga avviato automaticamente all’avvio di Linux. Per fare questo bisogna avviare Fuseki tramite lo script fuseki.sh. Accedere la cartella contenente lo script: cd /opt/apache-jena-fuseki-2.6.0 e poi eseguire, da riga di comando: ./fuseki start

Per verificare l’installazione, avviare la pagina http://localhost:3030 in un browser.

apache jena

Mosquitto MQTT su Debian Wheezy e Ubuntu 14

Message Queuing Telemetry Transport (MQTT) è un protocollo “binario” di messaggistica basato su TCP/IP. Disegnato per le situazioni in cui è richiesto un basso consumo e dove la banda è limitata, MQTT richiede un broker publish/subscribe per l’invio dei messaggi ai client destinatari. MQTT è molto utilizzato nell’ambito dell’Internet of Things.
Mosquitto è un broker open source che implementa il protocollo MQTT.

1) Installare i prerequisiti:
sudo apt-get install cmake libssl-dev build-essential libc-ares-dev libc-ares2 uuid-dev xsltproc docbook-xsl

2) Scaricare e installare Libwebsockets

Decomprimere il file, entrare nella cartella “libwebsockets” ed eseguire:
mkdir build
cd build
cmake ..
make
sudo make install

3) Scaricare Mosquitto MQTT

Decomprimere l’archivio e modificare il file “config.mk”, aggiungendo la seguente riga:
WITH_WEBSOCKETS:=yes

Dopodichè:
make
sudo make install

Infine:
sudo ldconfig

mosquitto

Installazione di R ed RStudio su Debian Wheezy, Jessie e Ubuntu 14

Prima di tutto bisogna installare, se non lo si è già fatto, il pacchetto build-essential:
sudo apt-get install build-essential
Questo pacchetto contiene:
– libc6-dev – C standard library;
– gcc – C compiler;
– g++ – C++ compiler;
– make – GNU make utility;
– dpkg-dev – Debian package development tools.

Altri pacchetti indispensabili:
sudo apt-get install libX11-dev libxt-dev liblzma-dev libbz2-dev
sudo apt-get install gfortran libreadline-dev libpcre3 libpcre3-dev libcurl4-openssl-dev

Download di R: http://cran.r-project.org/mirrors.html – file R-3.3.1.tar.gz
Decomprimere il file e poi entrare, da terminale, nella cartella R-3.3.1. Dopodichè:
./configure --enable-R-shlib
make
make check
sudo make install

Scaricare RStudio: http://www.rstudio.com/products/rstudio/download
Dopodichè, nel terminale, eseguire:
sudo dpkg -i rstudio-0.98.1103-amd64.deb

r

Conversione da ECW ad altro formato raster con GDAL in Ubuntu 14

Per la conversione tra formati raster è possibile utilizzare il comando gdal_translate, disponibile in GDAL.
ECW è un formato proprietario, per cui non è disponibile nativamente in GDAL. Bisogna perciò installare il plugin ERDAS ECW/JP2 SDK.
Istruzioni di installazione:
– scaricare ERDAS ECW/JP2 SDK e decomprimere lo zip file
– aprire il terminal ed eseguire chmod +x ERDAS_ECWJP2_SDK-5.2.1.bin
– eseguire ./ERDAS_ECWJP2_SDK-5.2.1.bin
– viene avviata una serie di schermate. Alla prima schermata digitare 1 (Desktop Read-Only); alla seconda schermata viene proposta la lettura della licenza: cliccare sulla barra spaziatrice per scorrere verso il basso, dopodichè scrivere YES e premere invio
– il software viene decompresso in home/user (cartella “hexagon”). Muovere la cartella “hexagon” a usr/local: sudo cp -r hexagon /usr/local/
– creare un symlink: sudo ln -s /usr/local/hexagon/ERDAS-ECW_JPEG_2000_SDK-5.2.1/Desktop_Read-Only/lib/x64/release/libNCSEcw.so /usr/local/lib/libNCSEcw.so
– eseguire sudo ldconfig
– installare libgdal-ecw-src. Non esiste una versione di questo software per Ubuntu Trusty, per cui bisogna installare la versione per Raring. Doppio click sul file scaricato, verrà avviato Ubuntu Software Center che installerà il pacchetto
– eseguire sudo gdal-ecw-build /usr/local/hexagon/ERDAS-ECW_JPEG_2000_SDK-5.2.1/Desktop_Read-Only per compilare il software
– se sul vostro pc non è installata la versione 1.10 di gdal (controllate la versione digitando gdal-config --version nel terminal), dopo la compilazione dovete eseguire un altro passo, in quanto il plugin è stato installato nella cartella usr/lib/gdalplugins/1.10. Rinominate la cartella: sudo mv /usr/lib/gdalplugins/1.10 /usr/lib/gdalplugins/1.11
– controllate che tutto funzioni correttamente digitando il seguente comando: gdalinfo --formats | grep -i ECW
La risposta deve essere questa:
ECW (rw+): ERDAS Compressed Wavelets (SDK 5.2)
JP2ECW (rw+v): ERDAS JPEG2000 (SDK 5.2)

A questo punto è possibile utilizzare gdal_translate, ad esempio: gdal_translate -of PNG -ot UInt16 -co "WORLDFILE=YES" file_ecw.ecw file_png.png

gdal

Inkscape e SVG

Con Inkscape è possibile esportare le proprie creazioni nei formati grafici vettoriali più diffusi, come SVG, PostScript, XAML, e nell’unico formato raster per il web che supporta la trasparenza, cioè PNG. E’ possibile inoltre esportare in PDF. Inkscape, comunque, viene generalmente utilizzato in ambito web, e in ambito multimediale in genere, per creare ed esportare grafica vettoriale nel formato SVG. Per aiutare il processo di “interattivizzazione” è stato quindi incorporato in Inkscape un editor XML. Si accede all’editor cliccando, nella barra dei menu, su Modifica —> Editor XML. L’editor si presenta così:

inkscape svg editor

Per una formazione di base sulla specifica SVG è necessario leggere le pagine relative a SVG sul sito web del W3C.
Il codice SVG presente nell’editor nell’immagine sopra è relativo a un semplice rettangolo blu con all’interno la scritta “Tutorial Inkscape”. Va evidenziata la sua struttura ad albero, tipica del linguaggio XML, costituita da nodi rappresentanti i vari oggetti presenti nell’immagine, strutturati in nodi padre e nodi figlio.

inkscape e svg

Volendo ad esempio fare in modo che la scritta “Tutorial Inkscape” diventi un link a una pagina web, dovremo aggiungere il tag svg:a per creare il link. Per fare questo bisogna innanzitutto evidenziare all’interno del file SVG il nodo text che si vuole trasformare in un link. Nel nostro caso sarà evidentemente il nodo svg:text id = “text2987”. Selezionarlo cliccandoci sopra. Si deve poi creare un nuovo nodo all’interno del documento, cliccando, nella barra dei comandi, sulla prima icona a sinistra (“Nuovo elemento nodo”). Nella piccola finestra che appare, scrivere svg:a. Viene così creato il nuovo nodo svg:a, che andrà posizionato all’interno del nodo gruppo. Spostare a questo punto il nodo svg:a al di sopra del nodo svg:text, selezionare poi il nodo svg:text e cliccare, nella barra dei comandi, sulla freccia verso destra, in modo tale da farlo diventare figlio del nodo padre svg:a. I nodi dovranno quindi essere disposti come segue:

svg editor

A questo punto andranno aggiunti i valori relativi al link. Mantenendo selezionato il tag svg:a selezionare, nella parte destra della finestra, la riga con attributo “id” e valore “a2986”. Nel campo testo sottostante, vicino al pulsante “Imposta”, scrivere target, e nel campo testo sottostante scrivere _blank. Cliccare a questo punto sul pulsante “Imposta”. Allo stesso modo, per aggiungere il link, scrivere xlink:href nel primo campo testo, e il link, ad es. http://www.w3.org, nel secondo campo testo, cliccando poi ancora sul pulsante “Imposta”. Non resta che chiudere l’editor e salvare. A questo punto, aprendo l’immagine in un browser, il testo sarà diventato un link.