Cos’è una VPN e perché è fondamentale usarla per proteggersi

Pur essendo nate per scopi aziendali, le VPN (Virtual Private Network, o reti private virtuali) vengono usate molto spesso anche dalle persone che hanno un po’ a cuore la sicurezza della propria navigazione in Internet.

Cosa consente l’uso di una VPN

Il funzionamento di base delle VPN, infatti, crea un tunnel virtuale tra il nostro computer e un server sicuro di proprietà del fornitore del servizio VPN. Tutto il traffico che effettuiamo passa in modo criptato dal computer al server, per poi uscire “normalmente” (quindi criptato per HTTPS e in chiaro per HTTP, FTP, e altro) su Internet.

In sintesi, questo permette di navigare in modo privato e sicuro anche nelle reti Wi-Fi pubbliche. Si tratta di reti dove normalmente chiunque potrebbe spiare quali siti stiamo visitando o le password che inseriamo in alcuni portali che non usano HTTPS.

Mai sottovalutare la privacy online
Mai sottovalutare la privacy online

Inoltre, consente di mitigare gli effetti della sorveglianza di massa. L’Italia è uno dei molti paesi europei che trattiene illegalmente traccia di tutte le comunicazioni (nel senso di data, ora, e soggetti coinvolti, non contenuto) dei cittadini italiani, senza che ciò richieda un’indagine e senza configurarsi come intercettazione. Questi dati rimangono disponibili almeno per un anno.

Come se ciò non bastasse, gli Stati Uniti e il Regno Unito possiedono molte delle infrastrutture di Internet e intercettano abitualmente il traffico:

[…] il Guardian ha scoperto che il GCHQ ha accesso direttamente alle grandi ‘autostrade’ delle telecomunicazioni: i cavi in fibre ottiche che trasportano le telefonate e il traffico internet mondiale, e ‘succhiando’ direttamente da questi, l’anno scorso è stato in grado di intercettare 600milioni di telefonate al giorno.

Mi fa piacere che il nostro governo “logghi” (tenga traccia nei file di log) tutta la navigazione degli italiani? Non tantissimo. È accettabile che lo facciano paesi esteri senza alcuna autorità sui cittadini italiani? Assolutamente no. :\

Usando un servizio VPN, la vostra navigazione Internet potrebbe andare a mischiarsi con quella di decine di altre persone e risulterà, per esempio, generata da un anonimo datacenter situato ad Amsterdam, vicino al Koninklijk Paleis (peraltro un magnifico posto!) invece che dall’indirizzo IP intestato a Mario Rossi, Via Tal dei tali 0, Milano. 😛

Certo, se la connessione stessa dovesse contenere informazioni personali in chiaro sarebbe teoricamente possibile correlare la trasmissione dei dati a una persona, ma solo quella in particolare, non tutte le altre (chissà di chi sono?).

Infine, un argomento che interessa a molti dei miei lettori: usare un servizio VPN ci permette di aggirare le barriere geografiche. Praticamente tutti i servizi VPN, specialmente quelli seri (quindi che richiedono un pagamento per coprire i costi del servizio, spesso comunque molto ragionevole) forniscono server in svariati paesi.

Quindi, voglio vedere un video sul sito della BBC? Teoricamente non potrei… ma poco male, mi collego al mio servizio VPN scegliendo un server nel Regno Unito e accedo al contenuto che era bloccato! 😀 Lo stesso vale per un sito negli Stati Uniti, o in Francia, o in Germania.

Se vogliamo consultare siti in nazioni particolari (per esempio piccoli stati non europei, mettiamo caso il Belize) è meglio verificare i server offerti dal provider VPN prima di abbonarsi, ma generalmente i principali paesi UE, gli USA, il Canada e l’Australia sono ben coperti.

Per i motivi finora esposti, è altamente consigliabile che tutti usino una connessione VPN sia a casa che fuori casa, sul PC e sullo smartphone (soprattutto fuori casa)! È una questione di privacy e sicurezza, due cose da non prendere mai sottogamba.

“Ma non ho nulla da nascondere”

Ci tengo ad aprire una piccolissima parentesi su questa cosa, perché ogni volta che la sento dire mi fa alzare il sopracciglio… Se avete pensato qualcosa come la frase qui sopra, vi vorrei chiedere un piccolo favore.

Gentilmente, lasciate un commento sotto a questo post contenente il vostro indirizzo email e la password di Facebook. Ah, per cortesia fate un grande archivio ZIP con tutte le foto e i documenti del vostro PC e caricatelo online, poi inviatemi il link tramite email. Sì, anche i documenti bancari. Casomai dovessimo incontrarci di persona, vi chiederò anche di lasciarmi il vostro telefono cellulare in mano per un’oretta, chiaramente mi darete anche il PIN.

Come? Avete cambiato idea? 😉 Bene!

Possiamo continuare la parentesi dicendo che il diritto alla privacy è tutelato dalle leggi italiane ed europee, e concludo con una citazione di Edward Snowden:

Dire che non t’importa del diritto alla privacy perché non hai nulla da nascondere è come dire che non t’importa della libertà di espressione perché non hai nulla da dire.

Proseguiamo.

Come scegliere un fornitore VPN

Questo è un argomento che ho brevemente accennato nel mio post sul download dei video dalla BBC, ma vorrei estendere un po’ la trattazione. Le esigenze personali possono variare, ma gli aspetti che vi consiglio di valutare sono:

  • Disponibilità di paesi → Di più è meglio, sostanzialmente. Diciamo che un numero tra 25 e 50 va bene, ovviamente verificate che ci siano quelli “principali” che molti utilizzano: Stati Uniti, Regno Unito, Germania, Paesi Bassi. Meglio se vi danno anche un server in Italia, perché potreste voler navigare in sicurezza ma guardare i video della Rai, ed eventualmente scaricarli anche quando siete all’estero.
  • Numero di dispositivi collegabili → Fidatevi, non volete comprare un servizio per poi rendervi conto che vi permette di collegare solo 1 o 2 dispositivi alla volta. Contando che in famiglia potreste avere un paio di PC e un paio di smartphone, 5 è il numero minimo a cui puntare. Se vi offrono meno, guardate altrove.
  • Supporto OpenVPN → Non voglio scendere nei dettagli tecnici, ma non tutti i tipi di crittografia sono ugualmente sicuri. PPTP non è granché sicuro e va evitato. OpenVPN è uno standard aperto e finora si è rivelato molto valido. Per fortuna molti fornitori offrono sia OpenVPN che altre possibilità.
  • Politica di logging → Verificate le condizioni sulla privacy del fornitore e controllate che garantiscano una zero logging policy (politica di registrazione nulla).
  • Sede legale dell’azienda → Io francamente eviterei provider americani. Certo, ce ne sono anche alcuni che lavorano bene… però sono sempre sottoposti alle leggi statunitensi, dove l’intercettazione non solo è praticamente sempre legale ma è anche una prassi standard. Provider di paesi europei (specialmente nordici), australiani o di Hong Kong in genere vanno bene.
  • Costo → Sarà scontato dirlo, ma se confrontate diversi provider guardate anche il prezzo. Quasi tutti richiedono un pagamento mensile (pochi euro, tra i 5 e i 10 solitamente) o annuale. Però spesso in rete si trovano offerte che consentono di pagare una volta sola. 🙂

Perché non quelle gratuite? Semplice, sono utili per usi sporadici, per esempio guardarsi un video su un sito americano ogni tanto, ma offrono pochi server, una scarsa velocità e assolutamente nessuna assistenza se qualcosa non va. Solitamente poi loggano tutto il vostro traffico.

A loro il servizio VPN costa tempo e denaro, se per voi è gratis significa che da qualche parte i soldi li devono recuperare… Meglio evitare di chiedersi come e pagare qualcosa di valido. Poi, come vedremo tra poco, si può spendere davvero poco e avere un servizio di qualità che comunque tuteli la privacy.

Riguardo alle offerte, se volete vi segnalo quelle che ho linkato anche nell’altro post, e che personalmente trovo valide e affidabili, con un account a vita davvero conveniente:

  • VPNSecure per 35$: È quella che uso più spesso e posso testimoniare sulla qualità dei server, la prontezza del supporto tecnico e il fatto che offra 5 dispositivi collegabili in contemporanea. Sede legale: Australia.
  • Ivacy per 40$: Offre una rosa di server niente male e il prezzo è piuttosto competitivo. Consente l’uso di 5 dispositivi contemporaneamente. Sede legale: Singapore.
  • KeepSolid VPN per 40$: Va tenuto presente che l’azienda ha una sede negli USA e consente 5 dispositivi in contemporanea, che però vanno “linkati”. Sede legale: Ucraina.
  • FastestVPN per 40$: Ha server in una ventina di nazioni diverse e fornisce accesso a ben 10 dispositivi in contemporanea. Sede legale: Isole Cayman.
  • RealVPN per 20$: Una soluzione un po’ più basilare e economica, con 5 dispositivi in contemporanea. Sede legale: Estonia.

In pratica si paga circa il costo di un solo anno di abbonamento, solo che dura per sempre (o per 20-30 anni, verificate le singole offerte). Chiaramente non siete obbligati a scegliere queste, sono solo spunti per iniziare.

Valutate secondo la vostra coscienza qual è il provider migliore, verificando online anche altre fonti e altri pareri. Ricordate che scegliere una VPN significa affidare le proprie connessioni a un altro provider oltre a quello che fornisce l’ADSL o il collegamento wireless. È una questione di fiducia, perciò scegliete ciò che ritenete più giusto.

Una volta comprata, rimane la domanda su quale paese usare come nodo di uscita. Posto che per siti particolari non c’è scelta (BBC significa Regno Unito, Hulu significa USA, France 3 significa Francia, eccetera) in genere la normale navigazione la farete sempre dallo stesso server.

Per una navigazione “normale” evitate server negli Stati Uniti. Vari paesi possono essere buone scelte. Per quanto riguarda quelli europei, sarebbero da preferire:

  • Paesi Bassi, praticamente l’unico paese UE senza data retention attualmente (Gennaio 2016)
  • Svezia, una tra le nazioni con le migliori norme sulla privacy in tutta l’UE
  • Islanda, non fa parte dell’UE e ha ottime leggi sulla privacy
  • Lussemburgo e Romania, sono altri due paesi che vengono spesso consigliati da moltissimi provider VPN

Maggiori dettagli su questo argomento li trovate in questo articolo del sito BestVPN.

Come collegarsi alla VPN

Generalmente, molti provider offrono una app per smartphone che consente un accesso facile dai dispositivi mobili. Qualora così non fosse, è comunque possibile configurare OpenVPN for Android in modo simile a quanto si fa con un PC. Io uso questo client anche se il mio provider fornisce la propria app, lo preferisco.

Riguardo ai computer, è bene sottolineare come gli utenti che ci tengono alla propria privacy dovrebbero indubbiamente usare Linux. È un po’ un controsenso usare le VPN se poi ci pensa Windows a spedire tutti gli affari propri a Microsoft. OS X Yosemite fa qualcosa di simile, e comunque la sicurezza è una delle ragioni per cui Linux è meglio di altri sistemi operativi.

Insomma, fate come volete… ma rifletteteci. 😉

Sulle più diffuse distribuzioni Linux in genere c’è un programma chiamato Network Manager, che è l’icona da cui ci si collega alle reti wireless o cablate. È possibile installare un plug-in per configurare con facilità la rete in modo grafico. Su Ubuntu e derivate si installa con il comando:

sudo apt-get install network-manager-openvpn

Il provider VPN in genere fornisce un archivio ZIP con dentro tanti file di configurazione OpenVPN, uno per paese. Ci sarà poi un certificato crittografico e delle chiavi.

Quello che dovete fare è semplicemente aprire il client OpenVPN e importare il file di configurazione (inserendo la password se richiesto). Da Network Manager si fa cliccando su:

[Icona NM] → Modifica connessioni → Aggiungi → Importa configurazione VPN salvata…

Questo passaggio va ripetuto per ogni server che si intende utilizzare, ma solo la prima volta. Le successive, la configurazione sarà già memorizzata nel proprio client e basterà un solo click per connettersi. Per esempio, ecco la lista di server che ho importato nel mio Network Manager:

Lista delle reti VPN importate in Network Manager

A questo punto è sostanzialmente fatta, perché possiamo navigare sapendo che le nostre connessioni avvengono attraverso la VPN in modo criptato, anche se ci troviamo in un bar con il Wi-Fi aperto! 😀

C’è però un piccolo dettaglio che bisogna tenere a mente se si usa Network Manager, ovvero il DNS leak. Pertanto, se usate questo programma per collegarvi al vostro servizio VPN, leggete questo mio articolo per saperne di più su come sistemare il problema.

Buona navigazione, sicura e privata!

Navigare su Pinterest senza registrazione

Pinterest è un sito web in cui gli utenti iscritti possono creare delle bacheche virtuali dove mettere metaforicamente una “puntina da disegno” (pin, appunto) per memorizzare immagini o pagine web su un certo argomento.

Io non ho un profilo, perché non mi appassiona molto, e così molte altre persone. Le difficoltà però iniziano quando si tenta di aprire l’home page del sito:

pinterest-home
Home  page di Pinterest

Si potrebbe pensare «poco male»… il problema è che molto spesso si ritrovano link a pagine Pinterest quando si cerca qualcosa su Google Immagini. Prendiamo ad esempio questo pin di un bel Tux (la mascotte di Linux) da costruire con il cartoncino. A prima vista sembra tutto normale, ma cosa succede se si fa scroll verso il basso?

pinterest-modal
Cominciano i problemi…

Appare ben presto una finestra modale che invita a registrarsi. Basta scorrere ancora un pochino e presto ci si ritrova con una schermata analoga alla home page. È pieno di contenuti interessanti ma sono coperti da un velo nero e impossibili da vedere. Anzi, su alcune pagine non si può neppure scorrere in basso. Ma in realtà i contenuti sono tutti lì.

Per quale motivo un utente del web dovrebbe farsi un account (seppur gratuito), con un’ulteriore password da ricordare e un ulteriore sito web a cui dare i propri dati, se i contenuti ci sono? Nessuno, chiaramente. 😉

Per questo ho sviluppato uno user-script per il browser, cioè un piccolo programmino che “ritocca” alcune pagine che visitate (in questo caso Pinterest).

Il risultato sarà questo:

pinterest-senza-login
Navigazione completa, senza fare storie

Il mio script si occupa di fare alcune correzioni alla pagina che avete aperto, in particolare:

  • rimuove finestre modali e richieste di registrazione
  • sblocca lo scorrimento nelle pagine dove è bloccato
  • rimanda alla pagina delle categorie (nella schermata) se si visita la home page di Pinterest
  • mostra una barra di ricerca basilare, visto che Pinterest l’ha rimossa per gli utenti non registrati

L’installazione richiede pochi click ed è molto semplice. 🙂

Se è la prima volta che installate uno script, dovete aggiungere una estensione al vostro browser:

Fatto ciò, potete passare al secondo passo, ovvero cliccare sul pulsante per aprire la pagina dove ho pubblicato lo script. Poi vi basterà premere Installa:

La cosa che mi ha sorpreso di più è il successo di questo script, senza che io ne abbia mai parlato nel blog! In particolare, ho rilasciato poco fa la versione 1.5, che aggiunge l’ultima funzionalità relativa alla ricerca.

Lo script, a partire dal primo rilascio, è online da circa un anno ed è stato già scaricato oltre 6000 volte. Gli è stato anche dedicato un articolo su Ghacks ma già prima suscitava un discreto interesse. Pur essendo uno dei più semplici tra tutti quelli che ho creato, è anche quello che mi ha fatto ricevere più donazioni in assoluto.

Insomma, pare proprio che la gente detesti le insistenti e pretestuose richieste di Pinterest, perciò spero che vi possa tornare utile. 😀

Vi è piaciuto l’articolo?

Scrivere software e guide come questa richiede tempo. Se avete trovato queste informazioni utili e vi è piaciuto il post, potete offrirmi un caffè cliccando sul pulsante. 🙂 Se lo fate, per favore lasciate una nota indicando che è per questo articolo.


Aggiornamento del 5 dicembre 2021: lo script, precedentemente caricato su GreasyFork, è stato ripubblicato su OpenUserJS.

Aggiornamento del 9 gennaio 2021: lo script è tornato disponibile anche su GreasyFork, a un nuovo indirizzo.

I migliori metodi per estrarre automaticamente notizie, ricette e altre informazioni dai siti web

Il web è una miniera di informazioni, il cui contenuto cresce a dismisura ogni giorno. Una necessità che ci troviamo ad avere frequentemente è quella di estrarre e salvare contenuti e dati. In passato ho trattato l’estrazione dei contenuti audio e video, ma esistono anche moltissimi contenuti testuali, come notizie, ricette o tabelle con dati numerici.

Inoltre è molto utile essere notificati quando il contenuto di un sito cambia, per esempio pubblicando un nuovo articolo o aggiungendo delle foto a una galleria. Tuttavia, non tutti i siti offrono dei feed RSS già pronti.

Vi avevo anticipato che avrei trattato questo argomento al Linux Day 2015 e finalmente è pronto il filmato del mio intervento. 🙂 Riporto qui la descrizione e il video del talk:

Il web è pieno di informazioni utili: non solo dati numerici, ma anche notizie, tutorial, ricette e gallerie di immagini. Tuttavia, spesso i siti web rendono complicato estrarre le informazioni che ci interessano per poi elaborarle o convertirle. Inoltre, a volte è utile tenere traccia degli aggiornamenti che vengono pubblicati su una certa pagina.

In questo talk vengono analizzati strumenti e tecniche per risolvere efficacemente questo problema tramite il web scraping.

Clicca qui per mostrare contenuto da YouTube.
(leggi la privacy policy del servizio)

Siamo stati costretti ad usare una telecamera di riserva, per problemi tecnici con quella principale. Per questo il video è di scarsa qualità, ma ci sono le slide in sovrimpressione che compaiono quando necessario, quindi è tutto leggibile.

Se volete, potete scaricare le slide in PDF dal sito del GrappaLUG, cliccando qui.

Le dirette Mediaset ora si possono vedere e registrare senza Silverlight, anche con Linux

Ho pubblicato la versione 6.0 del mio script per guardare e scaricare i video dal portale Video Mediaset. La novità più importante di questa versione è il supporto ai canali in diretta. 

Per via di come è stato fatto il sito, le dirette dei canali sono normalmente visibili solamente con Silverlight, oppure con Google Chrome (ma non Chromium) tramite Widevine. Il nuovo script indica, sotto al player, due flussi M3U8 che si possono guardare (o registrare) con VLC o avplay:

Rilevamento dei flussi per i canali in diretta

Un’altra novità è la migliore gestione delle richieste di login. Ora dovrebbe essere visualizzabile qualsiasi video o diretta senza che il sito costringa l’utente a iscriversi. Se così non fosse, segnalatemelo.

Colgo l’occasione per ringraziare Daniele Giudice che mi ha suggerito l’idea e con cui ho discusso alcuni dettagli tecnici. Vi consiglio di visitare il suo sito web, contiene anche un utile script per il download dei video da Dplay. 🙂

Se avete già installato lo script, l’aggiornamento dovrebbe installarsi in breve tempo. Se invece non lo avete, o siete impazienti, correte subito a installarlo dalla pagina di download. 😉

Convertire una presentazione in immagini, includendo le animazioni intermedie

Ieri ho iniziato il lavoro di montaggio video del mio intervento sull’estrazione di dati dalle pagine web. Come gli anni scorsi, anche quest’anno ho parlato utilizzando una presentazione Impress per accompagnare il discorso.

Dato che il video di me che gesticolo è di secondaria importanza, l’intento è mettere in risalto le slide. Per questo ho pensato di convertire tutte le slide in immagini per poi usarle in fase di montaggio. Le slide verranno mostrate a schermo pieno al posto del video, specialmente nei passaggi più importanti, mentre si sentirà la traccia audio per la mia voce.

In linea di principio, avrei potuto creare un PDF della presentazione e convertire quello in tante immagini, una per pagina. Tuttavia, in diverse slide ci sono alcuni punti che compaiono uno alla volta e questo viene perso durante la conversione in PDF.

Animazione del testo all'interno della stessa pagina
Animazione del testo all’interno della stessa pagina

Per questo motivo, ho deciso di seguire un approccio diverso:

  1. mostrare la prima slide
  2. catturare la schermata
  3. andare alla prossima slide
  4. ripetere il procedimento

Tutto questo in modo completamente automatico, ad eccezione dell’atto di terminare la procedura dopo l’ultima slide. Per ottenere il risultato desiderato, ho creato un brevissimo script in Python che utilizza il modulo pyautogui per automatizzare la pressione dei tasti, come suggerito qui. Un’altra funzionalità utile di questo modulo è la facoltà di catturare screenshot, così abbiamo tutto il necessario! 🙂

Prerequisiti

Il modulo pyautogui è sostanzialmente multipiattaforma, in quanto fa tutto il “duro lavoro” di adattamento per eseguire le stesse operazioni sui vari sistemi operativi, le quali normalmente richiederebbero modi diversi di essere compiute.

Tuttavia, è necessario installare anche alcuni componenti aggiuntivi per Linux che verranno utilizzati dal modulo per portare a termine ciò che ci serve. Pertanto, installiamo il modulo nel nostro profilo utente e i pacchetti necessari nel sistema con i comandi:

sudo apt-get install python-xlib python-tk python-pil
pip install --user pyautogui
sudo apt-get install scrot

Il primo pacchetto serve per la simulazione dei tasti e in generale il funzionamento base del modulo. Il secondo pacchetto sarebbe opzionale, ma per noi è necessario perché vogliamo anche che vengano catturati gli screenshot.

Catturare le schermate

A questo punto potete creare una nuova cartella screen con dentro uno script Python, chiamato ad esempio cattura.py. Il contenuto è questo:

#!/usr/bin/env python

import pyautogui
import time

# Attesa iniziale
time.sleep(10)

numero = 1

# Premere Ctrl+C alla fine della presentazione
while True:
    im = pyautogui.screenshot()
    im.save('screen_%03i.png' % numero)
    pyautogui.press('right')
    # Attesa transizione/animazione
    time.sleep(3)
    numero += 1

L’idea di base è semplice. Quando lo script parte, sta fermo per 10 secondi, così potete cambiare finestra e avviare la presentazione con LibreOffice (oppure Calligra Suite). Passato questo tempo, inizia la cattura delle schermate con il nome screen_001.png.

Tra una schermata e l’altra c’è una pausa di 3 secondi, in modo da far finire eventuali effetti di transizione (ad esempio le dissolvenze). Avviate lo script con il terminale, cambiando directory e lanciando il file Python appena creato:

cd /percorso/di/slide/cattura.py
python cattura.py

Poi avviate subito la presentazione e attendete senza toccare nulla. 😉 In poco tempo inizierete a vedere il computer che “va da solo” cambiando slide e attivando le animazioni fino all’ultima pagina.

Vi ricordo che, al posto di digitare tutto il percorso della directory che contiene lo script, potete fare drag’n’drop dell’icona della cartella slide dentro al terminale, dopo aver digitato il comando cd seguito da uno spazio. 😉

Quando la presentazione arriva alla fine, tenete conto che lo script continuerà a premere freccia destra ogni 3 secondi, catturando screenshot. Perciò riaprite il terminale ridotto ad icona e premete i tasti Ctrl+C per terminare il ciclo infinito.

Troverete le schermate (in formato PNG) nella cartella precedentemente creata.

Schermate ottenute con il procedimento descritto
Schermate ottenute con il procedimento descritto

Ritocchi finali

È probabile che, alla fine delle schermate ottenute, ci sia qualche file in più che mostra il vostro desktop dopo aver finito la presentazione ma prima di aver terminato lo script. In questo caso, è sufficiente cancellare le immagini di troppo. 😉

Nel mio caso, ho notato che la funzione di presentazione di LibreOffice lasciava un leggero margine nero in basso e a destra:

Margine nero lasciato da LibreOffice
Margine nero lasciato da LibreOffice

Il margine, misurato con GIMP, risultava di 1 pixel in basso e 2 pixel a destra. Per correggere questo problema ho usato ImageMagick. Il comando, che modifica direttamente le immagini originali, è questo:

mogrify -crop -2-1 screen_*.png

Attenzione che ciò crea delle copie di backup nascoste nella stessa cartella, ad esempio il file screen_001.png verrà copiato con il nome di screen_001.png~ e solo in seguito modificato. Se usate una cartella solo per le slide e poi la eliminate tutta, anche le copie nascoste saranno ripulite. In caso contrario, fate attenzione a non lasciare tracce inutili. 🙂

Il mio intervento al Linux Day — Sabato 24 Ottobre 2015

evento LD 2015

Come di consueto, anche quest’anno collaborerò con il GrappaLUG alla realizzazione del Linux Day 2015 a Bassano del Grappa (VI).

Avete mai sentito parlare di data scraping? Se vi ricorda un po’ il suono del ghiaccio quando viene grattato via dal frigorifero, una mezza idea già ce l’avete… 😛

In pratica si tratta degli strumenti e delle strategie che si usano per estrapolare informazioni dalle pagine web. Pensate ad esempio al mio script per scaricare i video da Rai Replay, oppure Video Mediaset o La7.

Ma non è tutto, perché la tematica è molto più generale. Potete immaginare di avere un sito dove sono inserite delle ricette che volete estrarre e stampare, oppure a delle tabelle con dei numeri di telefono.

Se vi ponete delle domande come queste:

  • Come faccio a salvare velocemente le 45 foto di questo album online?
  • In che modo posso estrarre le tabelle di questo PDF?
  • Come creo un avviso che mi mandi un’email ogni volta che viene pubblicata una notizia su questo sito?

…allora siete interessati al data scraping.

Estrarre notizie, ricette e altre informazioni dai siti web
Ore 17.00–17.40 — Relatore Andrea Lazzarotto

Il tempo a disposizione sarà un po’ limitato (40 minuti) perciò mi concentrerò su qualche esempio essenziale, probabilmente saltando cose troppo difficili. 🙂

In ogni caso penso che ne verrà fuori un talk interessante. Tenete conto che quest’anno si sta valutando se riusciremo a filmare gli interventi oppure no… potrebbe anche non esserci un video disponibile online. Meglio venire di persona! 😉

Infine, come spiegato nella pagina ufficiale dell’evento:

L’ingresso è libero, tuttavia i posti a sedere sono limitati. Pertanto consigliamo la prenotazione facoltativa tramite Eventbrite:

Prenota ora!

Vi consiglio pertanto di prenotare il vostro “biglietto” gratuitamente se desiderate partecipare. Nel caso i posti riservati finissero non preoccupatevi, potrete comunque accedere al Linux Day, la prenotazione serve solo per i posti a sedere.

Ovviamente ci saranno anche altri talk e sono tutti gustosi, perciò vi suggerisco di andare a leggere il programma completo.

Vi aspetto a Bassano! 😀

Sorgente: Linux day 2015 | GrappaLUG

Estrarre la rubrica da un BlackBerry con software danneggiato

Un’amica mi ha sottoposto un dispositivo BlackBerry 9780 per un’analisi. Lo scopo era quello di recuperare il contenuto integrale della rubrica contatti, in quanto il software di sistema era pesantemente danneggiato e il dispositivo faticava ad accendersi. Dopo alcuni minuti di inattività, crashava improvvisamente con un messaggio di tipo App Error.

La prima cosa da fare, in questo caso, è rimuovere la batteria e reinserirla, per effettuare un reset. Dopo diversi tentativi in cui il dispositivo sembrava bloccato all’avvio, ho verificato che effettivamente il sistema si avviava, mettendoci però 11 minuti. Alla fine del caricamento, comparivano numerosi messaggi di errore relativi al software basato su Java.

Schermata di caricamento ed errori del software
Schermata di caricamento ed errori del software

In questi casi è possibile premere ripetutamente OK per raggiungere il menu del telefono. Dopo aver effettuato questa operazione, sono iniziate le difficoltà reali:

  • la rubrica mostrava la lista dei contatti (nomi) ma non era possibile aprirli per visualizzare i numeri
  • le impostazioni di sistema non erano accessibili e facevano crashare il dispositivo
  • non si riusciva ad effettuare un accoppiamento via bluetooth
  • il programma BlackBerry Desktop Manager, oltre a essere solo per Windows o Mac, non riusciva a connettersi al dispositivo

Il fatto di non poter aprire le impostazioni di sistema significava non potersi collegare al Wi-Fi per tentare di esportare i contatti tramite qualche app. I problemi col bluetooth lasciavano il collegamento USB come unica speranza.

Il mio piano infatti era quello di effettuare un backup con il software ufficiale di BlackBerry e poi esportare la rubrica. Dopotutto è possibile usare Windows in macchina virtuale (come quelle fornite da Microsoft sul sito Modern.ie) oppure creare una USB avviabile tramite le varie Release Candidate per sviluppatori. Peccato solo per l’errore nefasto restituito da BlackBerry Desktop Manager per Windows:

BlackBerry® Desktop Manager non è in grado di comunicare con il dispositivo BlackBerry connesso. Se il dispositivo si sta riavviando oppure la batteria è completamente scarica, fare clic su Riprova per tentare di ristabilire la connessione una volta completato il riavvio. In caso contrario, per risolvere il problema potrebbe essere necessario aggiornare BlackBerry® Device Software.

Come spesso accade, mi sono reso poi conto che Linux poteva venire in aiuto e salvare la situazione. Per evitare di installare troppo software sul mio portatile, ho creato una chiavetta USB avviabile con Xubuntu 14.10, assicurandomi di attivare la persistenza per poter salvare i dati recuperati. Ad ogni modo, qualsiasi distribuzione dovrebbe andare bene.

Per evitare problemi, ho effettuato nuovamente il reset del BlackBerry. Nel frattempo ho fatto partire Xubuntu. Una volta avviato il sistema, ho installato Barry, un software open source per gestire i dispositivi BlackBerry:

sudo apt-get install barrydesktop

Ho collegato il BlackBerry col cavo USB e ho avviato il programma con i permessi di amministratore, per evitare errori di accesso negato:

sudo barrydesktop

Barry ha individuato il dispositivo senza batter ciglio e mi ha chiesto di dargli un nome. Ho cliccato su Config… e poi sul primo tasto Configure… (quello relativo al backup) per selezionare tutti i campi disponibili. In realtà era di fondamentale importanza recuperare soltanto la rubrica, ma ero curioso di vedere quanto si potesse effettivamente estrarre.

Selezione degli elementi da estrarre
Selezione degli elementi da estrarre

Dopo aver salvato le mie scelte, ho dovuto solo premere il tasto Backup nella finestra principale:

Barry durante l'operazione di backup
Barry durante l’operazione di backup

Il processo si è interrotto “brutalmente” al 42%, probabilmente a causa degli errori software. Barry ha mostrato un messaggio di errore indicando quali campi non erano stati estratti. Ha quindi provveduto a salvare quello che era stato recuperato, incluso il contenuto integrale della rubrica. Il BlackBerry è poi crashato nuovamente.

Dato che il processo era stato avviato come amministratore, è stato necessario copiare i file dalla cartella dei backup alla home dell’utente che stavo utilizzando:

sudo cp /root/.barry/backup ~
sudo chmod a+r ~/backup

L’obiettivo finale era esportare i contatti in un formato “universale” che si potesse agevolmente aprire e magari importare su Gmail. Dato che Barry effettua il backup in un formato proprietario, ho utilizzato un comodo script chiamato BlackBerry-Address-Book-to-CSV.

È sufficiente scaricare il file ZIP, estrarlo ed eseguirlo sul file di backup. Si tratta solo di dare pochi comandi:

wget https://github.com/mintern/BlackBerry-Address-Book-to-CSV/archive/master.zip
unzip master.zip
cd BlackBerry-Address-Book-to-CSV-master
./bbab2csv ~/backup/[PIN]/[NOME].tar.gz

Al posto di [PIN] e [NOME] vanno inseriti il PIN del dispositivo e il nome dell’archivio creato da Barry, che varia di volta in volta. L’output in formato CSV viene mostrato nel terminale, se volete salvarlo su un file potete ripetere l’ultimo comando ridirezionando l’output:

./bbab2csv ~/backup/[PIN]/[NOME].tar.gz > ~/contatti_BB.csv

Il file risultante si trova nella home e si può aprire tranquillamente con LibreOffice oppure importare in un account Gmail, per sincronizzarlo con un dispositivo Android. Ovviamente va salvato in un posto sicuro, specialmente se si sta usando Linux su una live USB.

Il procedimento di recupero con Linux, alla fine, è stato molto veloce. La maggior parte del tempo è stata persa nei vari riavvii del dispositivo e tentando di far funzionare il software ufficiale di BlackBerry, che non è stato di alcun aiuto per estrarre i dati.

Tuttavia, BlackBerry Desktop Manager si è rivelato utile perlomeno per far tornare funzionante il telefono. Una volta collegato il cavo USB e ricevuto il messaggio di errore, ho cliccato su Aggiorna. Alla proposta di fare un backup ho risposto di no (altrimenti si sarebbe bloccato di nuovo) e ho confermato di voler formattare il dispositivo.

Alla fine del processo, il BlackBerry era perfettamente funzionante e tristemente vuoto. Avviando di nuovo Linux, con Barry ho potuto ripristinare la rubrica di cui era stato fatto il backup in precedenza.

La morale che si può trarre da questa esperienza è che da un BlackBerry con software danneggiato a volte si possono recuperare dei dati. Inoltre, non sempre l’applicazione ufficiale è la scelta migliore. Anzi, Barry consente di accedere almeno a una parte delle informazioni in casi in cui BlackBerry Desktop Manager non è in grado di collegarsi al dispositivo, con l’ulteriore vantaggio di non essere costretti a usare Windows.

Inserire link ad altre note in Evernote Web

A mio parere, Evernote è un ottimo strumento per prendere note e ritagliare pagine web. Eppure ha una grave mancanza: sebbene esista il client ufficiale per due discutibili sistemi operativi proprietari (Windows e Mac OS X), non c’è quello per Linux. Tuttavia, è possibile usare il servizio tramite Evernote Web direttamente nel browser.

Ciò ha alcuni vantaggi. Innanzitutto, è disponibile tramite qualsiasi PC collegato a Internet. In secondo luogo, è possibile andare a modificare direttamente il codice HTML per le note, utilizzando il mio script.

Una funzione importante che ufficialmente manca in Evernote Web è la possibilità di generare i collegamenti in-app alle note. Questo tipo di link consente di creare collegamenti ipertestuali che fanno “saltare” direttamente da una nota all’altra e sono compatibili con tutte le versioni di Evernote (incluso Evernote Web e i client per dispositivi mobili).

Tali link, inoltre, mostrano una comoda anteprima nell’interfaccia web, quando ci si passa il mouse sopra. Sul blog ufficiale del servizio c’è un ottimo articolo su alcuni utilizzi interessanti di questa funzione. Inoltre, potete vedere questo video per maggiori informazioni:

https://www.youtube.com/watch/?v=bX-b9lftwqc

Avendo la necessità di usare questa funzionalità, ho deciso di creare uno script per il browser che fornisca in automatico l’indirizzo in-app della nota corrente. Il link rispetta le specifiche fornite dalla documentazione di Evernote (che in realtà contiene un errore) e usa il protocollo evernote://. La figura mostra un esempio con una nota in cui sto scrivendo proprio questo post:

Collegamento in-app generato dallo script
Collegamento in-app generato dallo script

Il link può essere copiato col tasto destro del mouse e inserito in alte note usando il solito pulsante a forma di catena nell’interfaccia di Evernote Web. Come sempre, prima di installare lo script dovete procurarvi l’estensione corretta per il vostro browser:

Dopodiché potete scaricare lo script su GreasyFork cliccando questo bottone:

Evernote Web in-app note link

Spero che vi possa essere utile. 🙂 Sono sempre interessato a nuovi modi per essere più organizzato e produttivo usando Evernote. Avete qualche trucco personale che volete condividere? Fatemi sapere nei commenti!

Chiusura del servizio di download dei video da Rai.TV e Rai Replay

Ho iniziato il mio lavoro sul sito Rai nel 2010, con lo scopo di mettere a disposizione il mio aiuto a tutti coloro che desiderassero registrare i video del portale Rai on-demand e, dopo altri due anni, anche Rai Replay.

Lo sviluppo di questo software per me è stata sempre un’attività hobbistica, dandomi molte soddisfazioni personali. Dopo 5 anni di lavoro, si tratta senza dubbio del mio user-script più scaricato, contando oltre 35000 download.

Oggi è un giorno importante, in quanto la mia attività si trasforma in un impegno professionale. Sono infatti entrato a far parte del team di Rai — Direzione Web, con il ruolo di consulente video. Rai acquisirà integralmente lo script da me sviluppato e la piattaforma server che veniva utilizzata per fornire i link diretti ai video. Io continuerò a lavorare mettendo a disposizione la mia competenza per la prevenzione dei download.

Stiamo infatti sviluppando un nuovo sistema che consentirà a Rai di avere un maggior controllo sull’accesso ai contenuti. Il software di protezione prenderà il nome di Rai Charles e servirà a impedire la visione dei filmati a chi tenterà di accedere con modalità non previste dall’azienda.

Logo del nuovo servizio di protezione per i siti delle reti Rai
Logo del nuovo servizio di protezione per i siti delle reti Rai

Sono entusiasta di partecipare in questa nuova avventura e non vedo l’ora di sviluppare a pieno questa nuova tecnologia. L’interruzione del servizio avverrà nel giro di pochi giorni.

Se siete utenti dello script, vi consiglio di leggere l’annuncio ufficiale sul sito Rai. Lì potete trovare una spiegazione dettagliata sul funzionamento del nuovo sistema di protezione. Inoltre è prevista una sezione commenti per porre domande in merito.

Con affetto,
Andrea

Modificare l’HTML delle note in Evernote Web

Evernote è un ottimo servizio dove poter memorizzare note, appunti, scansioni, file allegati e ritagli di pagine web. È qualcosa di molto più versatile di un semplice insieme di note testuali, avendo funzioni di ricerca e organizzazione ottime. Ne avevo già parlato anche in un articolo dedicato alle applicazioni per studenti:

Non è solo un sito web dove poter scrivere note, ma include anche il software client per Windows e Mac (su Linux io uso l’interfaccia web e mi trovo bene), applicazioni per cellulari e tablet ed estensioni per il browser. Le note possono essere divise in taccuini — per esempio uno per la documentazione e uno per ogni corso che seguite — e etichettate con dei tag.

Insomma vi consiglio decisamente di provarlo! Potete creare un account gratutito e attivare un mese di funzioni aggiuntive Premium gratis cliccando qui.

Proprio la funzione di ritaglio di parti di pagine web, seppur estremamente versatile, a volte può creare dei piccoli problemi. Infatti l’editor visuale di Evernote Web consente delle modifiche basilari. A volte alcune cose sono piuttosto complicate, come ad esempio:

  • rimuovere lo sfondo di un elemento
  • cancellare un pezzo di un ritaglio senza scombinare il resto
  • semplificare la struttura della pagina ritagliata

Naturalmente questi problemi non si presentano (o in maniera estremamente ridotta) con le note scritte di proprio pugno. Tuttavia, per i ritagli da pagine web sarebbe molto comodo poter modificare direttamente il codice HTML in modo da togliere o aggiungere elementi.

Evernote purtroppo non fornisce questa possibilità.

Questo è il motivo per cui mi sono imbattuto nel blog di Seb Maynard, uno sviluppatore che ha creato un bookmarklet per Evernote Web che consente di modificare l’HTML. Il bookmarklet funziona bene, però richiede di essere attivato ogni volta che si vuole fare una modifica e se si usa Evernote Web in modalità app (per esempio con Chromium) risulta molto scomodo.

Grazie alla gentilezza di Seb, che ha rilasciato il proprio codice sotto una licenza libera, ho creato uno user-script che permette di modificare il codice HTML con un bottone sulla barra degli strumenti. Insomma, un piccolo esempio di come il software libero sia di fondamentale aiuto per consentire il progresso e l’innovazione tecnologica. 🙂

La figura mostra lo script in azione proprio sulla nota che ho ritagliato con una versione precedente dell’articolo dedicato al bookmarklet.

Nuovo pulsante
Nuovo pulsante “HTML” inserito nella barra degli strumenti
Pulsante in azione nella nuova versione dell’interfaccia di Evernote Web

Ho aggiunto alcune funzioni rispetto alla versione “base” di Seb. In particolare:

  • Il bottone sulla barra degli strumenti, per un’attivazione immediata
  • Ace Code Editor per facilitare le modifiche, con auto-completamento e evidenziazione della sintassi
  • Rimozione degli attributi non-standard di TinyMCE
  • Semplice formattazione automatica del codice HTML, per renderlo più leggibile

Gli ultimi due punti in particolare semplificano molto il lavoro di modifica. Come sempre, prima di installare lo script dovete procurarvi l’estensione corretta per il vostro browser:

Potete quindi scaricare lo script che ho pubblicato su GreasyFork, cliccando questo bottone:

Evernote Web HTML editor

Per attivarlo, non vi resta altro che premere il pulsante HTML sulla barra di modifica di una nota. Vi accoglierà un editor molto comodo e di bell’aspetto. 😀

Ace Code Editor in azione su una nota
Ace Code Editor in azione su una nota