Modificare i metadati delle foto con EXIFTool e geolocalizzarle per prossimità con quelle dell’iPhone

Questa estate ho deciso di fare ordine di tutte le foto accumulato negli anni su iCloud e il mio fedele Synology.

Il primo problema che ho incontrato si è presentato ruotando delle vecchie foto del matrimonio.
Di fatto queste foto digitali alquanto datate, non avevano dati EXIF relativi alla data di scatto, quindi il catalogo del Synology utilizzava come riferimento la data del file, con il risultato che tutte le foto ruotate si sono spostate nella timeline ad oggi.

Ovviamente è possibile modificare i files uno ad uno, ma la cosa diventava alquanto tediosa, quindi mi sono messo alla ricerca di un tool per automatizzare la correzione di questo e di eventuali altri casi mi fossero capitati nelle modifiche in corso.

Ho subito individuato EXIFtool come lo strumenti definitivo per questo tipo di attività, è maturo, completo e molto efficace. Sebbene la complessità da riga di comando non sia delle più banali, dedicandoci un pò di tempo ho trovato delle soluzioni veramente interessanti.

Per prima cosa dovevo ripristinare la data del file. L’operazione è alquanto semplice, ma visto che c’ero ho impostato correttamente anche tutte le date in formato Exif.

exiftool.exe -FileModifyDate="2002-09-28 00:00:00" -DateTimeOriginal="2002-09-28 00:00:00" -CreateDate="2002-09-28 00:00:00" -FileCreateDate="2002-09-28 00:00:00" -modifydate="2002-09-28 00:00:00" -datetime="2002-09-28 00:00:00" -P -overwrite_original *.jpg

In questo modo anche se le foto erano vecchie, ho corretto sia la data del file che tutti gli attributi interni. Nulla di più efficace per tornare allo stato iniziale ed evitare futuri casini.

Attenzione ad aggiungere sempre il parametro “-overwrite_original” altrimenti vi troverete la cartella piena di duplicati con i file originali in copia.

Arrivato a questo punto, visto che c’ero ho deciso di completare i tag Exif relativi alle date di tutti i file che ne fossero stati sprovvisti.

EXIFTool è molto potente, ma qui la cosa diventava più complicata. Intanto dovevo aggiornare la data del file in modo dinamico prendendola da un dato certo e poi applicarla solo nei casi in cui questa fosse stata valida.

Il comando corretto per fare questa modifica in un colpo solo è il seguente:

exiftool.exe -if "$CreateDate lt '0001:00:00'" -p "$directory\$FileName" "-DateTimeOriginal<FileModifyDate" "-CreateDate<FileModifyDate" "-FileCreateDate<FileModifyDate" "-modifydate<FileModifyDate" "-datetime<FileModifyDate" -overwrite_original -q -f .

In sostanza utilizzando l’attributo -if si possono applicare dei filtri condizionali e con < si possono copiare attributi su altri attributi. Problema risolto, ora tutte le mie vecchie foto sono taggate indipendentemente dalla data del file.

Proseguendo con il lavoro di pulizia, ho realizzato che per diversi viaggi, mi trovo nella situazione di aver fotografato sia con la mia Sony che con il cellulare. Il risultato è che le foto fatte con il cellulare sono geo-localizzate alla perfezione, mentre quelle prese con la reflex, no.

Solitamente le selezionavo tutte dall’archivio del Synology e impostavo una posizione di massima della città visitata, ma sono pignolo e la cosa non mi piaceva troppo. Anche qui ci viene in aiuto EXIFTool, con le importanti capacità di geotagging. Immaginiamo di avere nella stessa cartella sia foto dell’iPhone che foto della reflex.

Per prima cosa dobbiamo estrarre tutto il percorso fotografico prendendo la posizione di tutte le foto del iPhone e creando un bel file GPX con tutti i punti. Questa operazione è molto semplice, ma bisogna stare attenti ai dettagli. Il comando che ho usato è:

exiftool -r -if "$gpsdatetime" -fileOrder gpsdatetime -p gpx.fmt . &gt; out.gpx

Prima di tutto vi serve un file template per il formato GPX, che inserisco in fondo al post.

Gli altri parametro sono la verifica che esista il tag gpsdatetime altrimenti i dati estratti non avrebbero senso e il programma va in crash, e il parametro fileOrder per avere una traccia ordinata per data e non in ordine sparso che ne impedirebbe la corretta interpolazione.

Una volta generato il file di traccia, possiamo applicarlo a tutte le foto che non sono geo-localizzate, e questa operazione si fa eseguendo il programma con questi parametri:

exiftool -r -if "not $gpsdatetime" -geotag out.gpx "-geotime&lt;DateTimeOriginal" -api GeoMaxIntSecs=7200 GeoMaxExtSecs=7200 -overwrite_original .

Qui c’è qualche trick che ci ho messo un bel pò a capire, nello specifico Geomaxintsecs permette di essere più flessibili in quando a time span temporale tra le foto, per me anche un ora è buona pur di localizzare più foto possibili.

Un altro trucco è impostare di forza il tag geotime, altrimenti molti degli aggiornamenti falliscono.

Per il resto il risultato è ottimale e non avrei saputo come ottenerlo cosi velocemente e gratis.

EXIFTool è uno strumento fondamentale per il fotografo puntiglioso che vuole tutto in ordine, ma prevede anche una buona dose di pazienza e ricerca per capire come si usano le miglia di comando che mette a disposizione.

Segue il template per il file di traccia GPS in formato GPX. Copialo in un file.
#----------------------------------------------------------------------
# File: gpx.fmt
#----------------------------------------------------------------------
#[HEAD]<?xml version="1.0" encoding="utf-8"?>
#[HEAD]<gpx version="1.0"
#[HEAD] creator="ExifTool $ExifToolVersion"
#[HEAD] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
#[HEAD] xmlns="http://www.topografix.com/GPX/1/0"
#[HEAD] xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
#[HEAD]<trk>
#[HEAD]<number>1</number>
#[HEAD]<trkseg>
#[IF] $gpslatitude $gpslongitude
#[BODY]<trkpt lat="$gpslatitude#" lon="$gpslongitude#">
#[BODY] <ele>$gpsaltitude#</ele>
#[BODY] <time>${gpsdatetime#;DateFmt("%Y-%m-%dT%H:%M:%SZ")}</time>
#[BODY]</trkpt>
#[TAIL]</trkseg>
#[TAIL]</trk>
#[TAIL]</gpx>

Il dilemma del curriculum. Memories.

L‘altro giorno, ho realizzato che da parecchi anni non aggiorno più il mio curriculum. Davvero tanti. D’altronde non mi è mai servito, e quando lo ho preparato la prima volta, il layout che andava di modaera ben diverso da quelli che vedo quotidianamente.

Devo dire che non apprezzo molto il “formato europeo”. E’ evidente che chi riceve migliaia di curriculum e deve scegliere velocemente preferisce un formato omogeneo e stringato per non può perdere tempo a leggere dei romanzi e che l’attenzione va colta con poche frasi ben strutturate.

Però se mi fermo a pensare a tutti i curriculum che ho letto, quello che mi è rimasto più impresso è uno ricevuto una decina di anni fa, dove un dipendente di HP mi ha mandato la storia della sua vita, fin troppo dettagliata, dove si poteva ben evincere le competenze al di là degli incarichi.

Non mi sembra una cosa proponibile per rivedere il mio curriculum, ma intanto ho deciso di scrivere le mie memorie professionali qui, sul mio blog per poi vedere cosa ne viene fuori.

Parlerò solo di informatica, partendo dell’inizio, e vediamo fino a dove ho voglia di arrivare e fino dove avrete voglia di leggere…

Stay Tuned…

Missing in action…

E’ da più di un anno che non scrivo più sul blog, e devo dire ce mi dispiace, ma il tempo è tiranno e non riesco a dedicargliene più.

Tra il lavoro, la famiglia e lo “studio” per tenermi aggiornato sulle ultime tecnologie, di tempo ne rimane ben poco.
D’altronde bisogna scegliere a cosa dedicarsi, e ultimamente mi sto rendendo conto che il tempo per imparare è sempre troppo poco, e di cose nuove da sapere ne escono più di quante è umanamente possibile apprendere.
Quindi per il momento il mio sforzo è tutto incentrato sulla ricerca e sviluppo più che sulla divulgazione.
Mi dispiace caro Blog, devi avere pazienza, prima o poi torno.

Alla ricerca di un termine che non esiste in Google… “stastonner”

Il caso vuole che digitando “stastonner” nella ricerca di Google, questo non dia alcun risultato. Cosa ormai rara per un termine che si può considerare grammaticalmente plausibile.

Quindi ho deciso di inserire questo, inutile, post per vedere in quanto tempo il nostro motore preferito lo inserirà nell’indice.

Lo so che questo dipende da quanto il mio sito è considerato interessante da Google; ma anche questo fa parte della prova.

Ecco un bel link per verificare se il motorone di Mountain View ha indicizzato questo termine:

http://www.google.it/search?q=stastonner

Update: Alla fine il 25 è stato inserito nei risultati di ricerca, la cosa curiosa, è che la cache riporta invece la data del 15, quindi già due giorni dopo questo post era stato navigato e salvato, ma ci sono voluti altri 10 giorni per l’inserimento nell’indice.

Difendiamo il FREE a costo della libertà

Questa mattina, leggendo un articolo sulle scaramucce in casa Mozilla-Google relative alla poca privacy fornita da quest’ultimo (http://punto-informatico.it/2769966/PI/News/mozilla-bing-meglio-google.aspx), mi sono meravigliato, che, essendo stata proposta come valida alternativa Bing, tutti i commenti all’articolo erano incentrati sul denigrare Microsoft più che sul discutere il problema.

Il tutto nasce dalle affermazioni di un Dotzler, un veterano di Mozilla Foundation, che rispondendo a delle affermazioni poco chiare di casa Google ha detto:

“Bing ha una politica per la privacy migliore di quella di Google” e ha ribadito una sua precedente affermazione:

“Google è essenzialmente un’azienda di advertising, è così che fanno soldi. (…) Più informazioni sono in grado di conoscere sui loro utenti, più efficacemente sono convinti di propinare pubblicità, più soldi credono di poter fare. Questo è il dato fondamentale”.

Come tutti sappiamo Google si pone come il paladino del gratis e della libera scelta, ma sotto sotto è una piovra che si insinua profondamente in ogni aspetto della nostra vita che riescono a catturare online.

Purtroppo, pur apprezzando i servizi di Google, sono d’accordo con Dotzler, e resto meravigliato di quanta fiducia venga profusa verso Google, mentre Microsoft viene bollata come spiona e inaffidabile pur avendo un interesse limitato nel sapere vita morte e miracoli dei suoi utenti.

Bisogna ricordare che Google non è una fondazione benefica, ma un’azienda aggressiva e  fortemente intenzionata a mantenere il suo dominio. Se le cose non dovessero andare come hanno previsto, chissà cosa prevede il loro piano B e come potrebbero sfruttare il patrimonio di informazioni che hanno su di noi?

La privacy è un bene inalienabile, conservatelo con cura perché una volta dato via non vene più restituito.

Tutto, subito e gratis!

Continua la corsa ai servizi gratuiti. Quotidianamente i grandi player del mercato, quali Google e Microsoft, ci bombardano di servizi gratuiti per strappare consensi e portare gli utenti sulle loro piattaforme.

In particolare nell’ultimo periodo c’è stato un susseguirsi di novità più o meno interessanti, che non tutti hanno avuto la fortuna di scoprire:

– Google ha lanciato l’ennesimo servizio di DNS pubblici (ma ne avevamo proprio bisogno?), garantendo innovazione e velocità, ma da una rapida prova che ho eseguito, niente di stupefacente. http://code.google.com/intl/it-IT/speed/public-dns/

– Microsoft ha rilasciato da qualche settimana il suo antivirus gratuito “Security Essentials”. Questo promette bene, è leggero, gratuito e trova pure qualche virus. E’ finita la pacchia per i produttori di antivirus? http://www.microsoft.com/Security_Essentials/

– Sempre Microsoft, questa volta per gli sviluppatori, ha reso definitivamente pubblico il suo webservice per la traduzione in tempo reale. Un po’ scopiazzato da Google, ma per gli sviluppatori .Net è sicuramente una cosa interessante e molto comoda. http://msdn.microsoft.com/en-us/library/dd575235.aspx

– Parlando di piccoli e sconosciuti, è molto interessante il JQueryTools, una suite di componenti per gli sviluppatori web che promette molto bene e invaderà velocemente migliaia di nuovi siti web standarizzandoli. http://flowplayer.org/tools/index.html

– Infine ci ha lasciato Mininova, il sito che ha dominato la scena Torrent negli ultimi anni, o meglio si è convertita alla legalità totale diventando l’ennesimo sito inutile e di prossima chiusura. Comunque c’è già chi si sta organizzando per prenderne il posto, quindi non rimarrete a secco. Non preoccupatevi.

Sembra che la cosa più importante sia colonizzare il web con tutti i servizi possibili, per non lasciare il minimo spazio a concorrenti o nuovi ingressi. E quando sul web non ci sarà più nulla da regalare? Speriamo che non si mettano a far concorrenza a McDonald elargendo panini per strada, altrimenti gli unici a farsi pagare rimarranno i dietologi…

Windows 7 e le date italiane

Ormai Windows 7 è stato rilasciato, e tutti i partner Microsoft hanno già avuto modo di provarlo sui loro PC. Per non essere da meno, la settimana scorsa appena è arrivato il CD in azienda, ho deciso di installarlo subito per vedere come si comportava.

Devo dire che hanno fatto dei bei passi avanti e parecchi passi indietro, ripristinando delle logiche di Windows XP molto care all’utente esperto. Ma questa è un altra storia.

La sorpresa la ho avuta qualche giorno dopo, quando un collega mi ha segnalato che il nostro CRM aveva dei problemi con le date. Anche lui aveva installato Windows 7 sul suo PC e sullo stesso faceva girare Mago.Net e Tustena CRM per fare le demo presso i clienti.

Ho avvisato il nostro supporto tecnico, che in prima battuta ha verificato sui server di test e non risultava esserci alcun problema. Quindi ho fatto 2 + 2 e sono andato a provare su una macchina con Windows 7. Ed infatti una volta modificata una data, ecco che l’applicazione mi da un errore di cast relativo al formato dell’ora.

Alquanto incuriosito dall’anomalia, ho iniziato a fare alcuni esperimenti, finché non sono giunto ad una soluzione, ovvero istruire il programma a non considerare il profilo utente di Windows per quanto concerne le localizzazioni impostate dall’utente.

Per farla breve, i quei geniacci della Microsoft, hanno impostato come profilo predefinito per la lingua italiana una ora breve nel formato H.mm e un’ora estesa nel formato HH:mm:ss.

Con il risultato che scrivendo la data correttamente nel formato italiano, il sistema non era in grado di comprenderla generando un errore.

Ora il nostro CRM è indenne da questo problema, oltre al fatto che di solito l’applicazione si installa sul server e non sul client, ma mi chiedo quali altre anomalie si potranno riscontrare in altri programmi se non risolvono rapidamente questo problema con un aggiornamento.

Il Nobel per l’inutile

Girovagando per internet in una giornata uggiosa ho scoperto una cosa molto curiosa: Il Premio Ig Nobel, una parodia del Premio Nobel patrocinata dall’università di Harvard e assegnata due settimane prima di quest’ultimo per ricerche scientifiche di dubbia utilità.

Vale la pena dare un’occhiata alle ricerche premiate negli ultimi anni, perché fanno capire quanto tempo hanno da perdere certi ricercatori, e in particolare quanti soldi vengono sprecati per delle idiozie.

Il corriere.it ha inoltre stilato una lista dei più significativi, assolutamente da non perdere.

Identità digitale post mortem?

Oggigiorno la nostra vita ha una controfigura online. Con Facebook, GMail, Flickr, Twitter e altri social media, parte della identità digitale è contenuta in questi archivi che potrebbero benissimo sopravviverci.

Cosa succede in questo infausto caso? Chi avrà accesso alle nostre risorse e quali vogliamo realmente che vengano “ereditate” dagli aventi diritto?

Un interessante articolo sul Time riporta alcuni casi e offre lo spunto per delle interessanti opzioni.

E voi cosa ne pensate?