Tag: software

Sam Williams – Codice libero – Richard Stallman e la crociata per il software libero

Libro che ho preso a caso in seguito ad una ricerca sui libri “informatici” disponibili nella biblioteca elettronica di Reggio Emilia. La prima cosa che mi ha colpito è che il libro proviene da Wikisource e che è soggetto alla licenza “Attribuzione – Condividi allo stesso modo 3.0 Unported (CC BY-SA 3.0)“. L’edizione elettronica del libro (è presente anche una normale versione cartacea) può essere pagata con l regole vigenti per il software libero. L’editore O’Reilly & Associates ha deciso di distribuire il volume sotto la licenza GNU Free Documentation License.

codice libero e richard stallman

Poi mi interessava l’argomento… ma mi spaventava l’idea di leggere una biografia.

Alla fine l’ho letto sotto l’ombrellone

Prima di trascrivere le prime epiche righe del libro, devo anticiparvi che è stata una lettura fondamentale per la mia crescita personale, umana, culturale, informatica e spirituale. E non sto scherzando. Mi si è aperto un mondo. Ecco come si apre il libro:
È successo raramente nella storia, ma è successo, che in un momento in cui sembrava che le regole del gioco fossero immutabili, che i vincitori fossero imbattibili e i perdenti senza alcuna possibilità di riscatto, un uomo solo, assolutamente privo di potere, ricchezze, fama, bellezza, amicizie, un uomo qualunque della specie innumerevole dei perdenti, riuscisse a sovvertire le regole del gioco e a far saltare il banco. La storia raccontata in questo libro è la storia di uno di quegli eventi rari ed è la storia di un uomo eccezionale che nasce perdente e diventa vincente, che non è bello ma affascinante, che non è simpatico ma è adorato come un dio; non ha amicizie vere ma conta migliaia di ammiratori; mette i lunghi capelli in bocca o nel piatto ove sta mangiando ma è conteso ospite alla tavola dei ricchi e dei potenti; non sorride mai ma si traveste da santo mettendosi in testa, a mo’ di aureola, la superficie attiva di un hard disk della prima generazione; non ha i soldi per pagarsi una cena al ristorante ma ha sconvolto un mercato da migliaia di miliardi di dollari.

In questo libro c’è la vera essenza degli hacker e del loro mondo, delle loro caratteristiche e della loro storia passata e presente… perchè il significato è cambiato con l’arrivo dell’informatica di massa e dei personal computer. E si può arrivare, per estrapolazione, alla terza definizione di “cracker”.
Nella mia cultura, il termine “cracker” poteva indicare:

  • l’utilizzo di attacchi “brute force” o comunque invasivi e distruttivi verso sistemi informatici;
  • una persona abile nello sproteggere i programmi come rimuovere il limite temporale nei programmi a tempo, creare keygen e fare crack in modo da bypassare la presenza di “dongle” da collegare al pc.

Ma poi scopro che “la cultura hacker è caratterizzata da un rigoroso senso morale, per cui un vero hacker non danneggerebbe mai un sistema informativo o un programma applicativo; e da una istintiva vocazione per la fraternità, la solidarietà e l’uguaglianza” e allora scopro che se non segui queste regole sei un “cracker”. E questa è la terza definizione di “cracker”. Alla luce di questo aspetto e leggendo la biografia di Stallman, possiamo dire che lui sia un grandissimo hacker… questo aspetto fa passare in secondo piano la sua incredibili capacità come programmatore.

Una cosa è certa… se indossi una cravatta non sei sicuramente un hacker perchè la cravatta viene definita come uno “strangling device” che riduce l’irrorazione cerebrale che si indossa insieme al “suit” che è uno scomodo abito da lavoro.

In questo libro c’è tutto. Non solo la vita di Stallman ma anche tutta l’evoluzione di un mondo che in pochi conoscono. C’è l’informatica degli albori, di quando i computer non erano “personal” e occupavano intere stanze nelle principali università americane, c’è la nascita del software libero, del movimento “open source”, di GNU, di Linus Torvalds e di Linux, c’è la vita e le azioni di altri hacker famosi, c’è la cattedrale e il bazaar, c’è la lotta contro le grandi multinazionali dell’informatica e c’è la libertà.

Inoltre sono contento di aver trovato all’interno dei Jagon Files la conferma di quello che ho appreso nelle mie ricerche e nelle mie immersioni nel mondo digitale… ovvero quali sono le definizione del termine hacker che non corrispondo al vero. Come, ade esempio, il fatto che derivi dal verbo “to hack”… tagliare, fare a fette.

Permanent link to this article: http://www.andrea.rustichelli.name/sam-williams-codice-libero-richard-stallman-e-la-crociata-per-il-software-libero/

Kodi 18.1 Leia su LibreELEC

kodi_18.1

Questo è lo spettacolare splash screen della nuova versione 18.1 Leia di Kodi (che gira su un sistema LibreELEC sul mio HTPC Asrock ION 330). La versione, al momento della scrittura di questo articolo, è già avanzata alla versione 18.3 (il nome in codice è ancora Leia, ma sono stati introdotte alcune migliorie minori). Questa versione di Kodi è dedicata alla Principessa Leia di Guerre Stellari interpretata dalla indimenticabile Carrie Fisher.

Permanent link to this article: http://www.andrea.rustichelli.name/kodi-18-1-leia-su-libreelec/

MusicBrainz Picard

Picard è un programma cross-platform scritto in Pyton per taggare i file musicali attingendo le informazioni dal sito MusicBrainz.

Come prima cosa è necessario installare il programma; da Linux Mint è possibile installarlo tramite riga di comando, tramite gestore delle applicazioni o, a partire dalla versione 18.3, anche tramite Flathub.

Una volta aperto Picard è possibile aggiungere un singolo file o una cartella… in questo caso ho caricato l’album Ok Computer dei Radiohead.

E’ possibile premere il pulsante Raggruppa per chiedere al programma di raggruppare i file (e quindi le canzoni) per Album. A questo punto è possibile premere il pulsante Analizza; in questo modo Picard trova (o meglio prova a trovare) le informazioni delle canzoni su Musicbrainz.

A questo punto, se l’analisi va a buon fine, l’album viene visualizzato nella parte destra della finestra (e contestualmente viene eliminato dalla parte sinistra) con l’icona del CD in colore giallo oro per confermare che l’analisi è andata a buon fine. Espandendo il CD è possibile vedere le canzoni che sono state etichettate con i TAG ricevuti dal portale Musicbrainz.

L’utilità di questo TAG è opinabile… aggiunge informazioni utili soprattutto se le canzoni vengono gestite con programmi, come ad esempio Kodi, che permettono di avere una gestione molto complessa e precisa dei file musicali presenti sul proprio computer.

Come ultima cosa è necessario selezionare il CD e premere il tasto Salva in modo da salvare le informazioni sui file di origine. L’operazione viene confermata dall’icona a forma di segno di spunta verde davanti ad ogni file salvato con successo.

Permanent link to this article: http://www.andrea.rustichelli.name/musicbrainz-picard/

Installare VirtualBox su Linux Mint

Non perdo tempo a spiegare cosa sia VirtualBox della Oracle .

Come prima cosa è necessario andare sul sito VirtualBox e scaricare l’ultima versione disponibile per il proprio sistema operativo. Alla data di questo articolo la versione disponibile è la 5.2.22. Ricordatevi di scaricare anche il VirtualBox Extension Pack per aggiungere funzionalità aggiuntive come il supporto USB 2.0 e 3.0, la crittografia dei dischi e il supporto alle schede Intel con tecnologia NVMe e PXE.

Per Linux Mint io ho scaricato la versione “All distrubutions” che scarica un file con estensione .run da eseguire da console. Il file ha estensione .run e occupa circa 68 MB, mentre il file con l’Extension Pack (unico per tutte le distribuzioni in quanto funziona com un plugin) occupa circa 20 MB.

Per eseguire l’installazione è necessario dare i permessi di esecuzione al file appena scaricato mediante il comando

chmod +x VirtualBox-5.2.22-126460-Linux_amd64.run

e successivamente digitare

sudo ./VirtualBox-5.2.22-126460-Linux_amd64.run

Quando VirtualBox è stato correttamente installato è necessario andare nel menù File – Preferenze – Estensioni e caricare l’Extensin Pack precedentemente scaricato.

Infine, come ultimo passo, è necessario dare accesso a VirtualBox al sottosisitema USB; per fare questo è necessario che l’utente che esegue VirtualBox appartenza al gruppo vboxuser. Per associare l’utente al gruppo è necessario aprire il terminale e digitare il seguente comando:

sudo usermod -aG vboxusers <USERNAME>

Dove, ovviamente USERNAME è il nome dell’utente che esegue VirtualBox.

Permanent link to this article: http://www.andrea.rustichelli.name/installare-virtualbox-su-linux-mint/

WordPress 5 e Gutenberg

Beh alla fine doveva succedere. Ho appena installato la versione 5.01 di WordPress e, come sponsorizzato da tempo, si è installato anche il nuovo editor “a blocchi” chiamato Gutenberg. Lascio perdere la diatriba che è nata nel modo degli utilizzatori di WordPress tra i favorevoli e tra i detrattori di questo nuovo editor e voglio abbracciare la nuova tecnologia con spirito positivo. Al momento ho deciso di utilizzare il nuovo editor e questo è il primo articolo scritto con Gutenberg. Sicuramente il fatto di dover (o potere) utilizzare meno plugin rappresenta un punto di forza del nuovo editor. Staremo a vedere quali saranno gli sviluppi futuri.


Permanent link to this article: http://www.andrea.rustichelli.name/wordpress-5-e-gutenberg/

Roger… il primo bot per Telegram scritto in Python

Partiamo con il primo bot per Telegram scritto in python.

Come prima cosa utilizzare il bot BotFather di Telegram per creare un nuovo bot e copiare il codice di attivazione che dovrà essere inserito nel codice del programma.

Questo bot farà una cosa molto semplice, ovvero analizza il formato del messaggio digitato e non farà altro che riproporlo nel formato:

Roger... TESTO DIGITATO SU TELEGRAM... passo...

Oltre ad interagire direttamente all’interno di Telegram, il programma visualizzaerà anche i messaggi digitati all’interno della finestra dove lo script è in esecuzione.

Anticipo che Telegram può essere scaricato per qualsiasi piattaforma compreso iOS e Linux… in questo modo è possibile utilizzare dispositivi più comodi rispetto al solito smartphone.

Qui di seguito è riportato il testo funzionante di questo primo e semplice bot.

import time
import telepot
import json
from telepot.loop import MessageLoop

def handle(msg):
content_type, chat_type, chat_id = telepot.glance(msg)
print(content_type, chat_type, chat_id)

if content_type == 'text':
text = msg['text']
bot.sendMessage(chat_id, 'Roger... ' + text + '...passo...')
print(msg["from"] ["first_name"] + " ha scritto " + msg["text"])

bot = telepot.Bot('COPIARE_CODICE_ATTIVAZIONE_BOT')
MessageLoop(bot, handle).run_as_thread()
print('BOT in ascolto ...')
# Questo ciclo itera il programma (agisce come un processo sempre attivo)
while 1:
time.sleep(10)

Questa è una schermata tratta da Telegram (questa è la versione per linux)

e questo è lo stesso output che si può leggere nella console.

Permanent link to this article: http://www.andrea.rustichelli.name/roger-il-primo-bot-per-telegram-scritto-in-python/

Facciamo un salto nel passato ed evolviamoci a 3-tier

Giusto per capirci, l’architettura a 3 livelli o “3-tier architecture” non è proprio un paradigma dell’ultima ora. Possiamo dire che si è affermata sul finire del XX° millennio e nei primi anni 2000 con la grandissima diffusione di internet (e quindi di applicazioni di rete con accesso ad un database) e con l’affermarsi del paradigma di programmazione OOP ovvero Object Oriented Programming. Grazie soprattutto all’espansione continua e inarrestabile del linguaggio Java e del pattern MVC (Model View Controller) tutto è stato separato in 3 livelli diversi, ciascuno con la propria specificità.

In particolare, come si può vedere dai file allegati, già nella versione 5 e 6 del JBuilder (epico IDE della Borland per lo sviluppo di applicazioni Java) si parla di architetture a 3 livelli e sono citate tecnologie e “best practice” per programmare architetture in formato “3-tier”.  Se consideriamo che il JBuilder 5 e 6 risalgono all’anno 2001 direi che è facile capire come questa architettura sia tutt’altro che recente.

Lo schema dell’architettura è tratto dal sito https://security.stackexchange.com ed è stata rilasciata con copyleft e quindi riutilizzabile.

Permanent link to this article: http://www.andrea.rustichelli.name/facciamo-un-salto-nel-passato-ed-evolviamoci-a-3-tier/

Telegram… vieni a me

Voglio programmare un Bot in Telegram usando il linguaggio Python. Queste sono le premesse.

Ovviamente occorre installare Python e un editor sulla macchina.  Successivamente è necessario installare la libreria TELEPOT (per interfacciarsi con le API di Telegram) e PPRINT per avere delle funzionalità aggiuntive sulla scrittura dei messaggi.

Entrambe le librerie le ho installate con il comando:

sudo easy_install3 telepot
sudo easy_install3 pprint

Per l’installazione delle librerie Python preferisco utilizzare il programma easy_install al posto di pip perchè con pip su Linux Mint 18.3 ottengo sempre dei messaggi di errore.

Apro IDLE (un veloce e leggero IDE per Python) e scrivo i seguenti comandi :

import telepot [con questa istruzione importiamo la libreria 'telepot' per gestire il bot]

bot = telepot.Bot('***** PUT YOUR TOKEN HERE *****') [richiamo il bot utilizzando 
il token associato al bot]

bot.getMe() [eseguo la funzione per visualizzare i dati principali del bot]

Ecco quello che viene visualizzato:

Se visualizziamo un testo come quello sopra riportato significa che ci siamo correttamente collegati al nostro Bot di Telegram che, in questo caso, si chiama zaccabot.

 

Permanent link to this article: http://www.andrea.rustichelli.name/telegram-vieni-a-me/

roBOTomizzati – Analisi di una mania robotica

Spesso accade che lo spunto per un nuovo post nasca dalla conversazione con un Mangiatore di Quiche. Questo post ne è la conferma.

Inutile dire nuovamente quanto mi faccia arrabbiare sentire persone “inesperte” farcirsi la bocca con termini tecnici o informatici cercando di passare per esperti di nuove tecnologie. In questi giorni il termine scelto dal Mangiatore di Quiche era “Bot”. Questa nuova tecnologia che sta sconvolgendo il mondo informatico e prospetta nuove e inaspettate applicazioni in qualsiasi ambito.

Facciamo un po’ di ordine.

I Bot sono la contrazione, prettamente in ambito informatico, di roBOT, ovvero entità software (o, ancora meglio, software agent) che agiscono come se fossero persone e eseguono delle attività in modo più o meno automatizzato e con o senza il continuo intervento umano.

I primi Bot utilizzavano per l’interazione con l’uomo una semplice logica di programmazione basata sulla presenza, nel testo o nel corso del dialogo, di particolari parole o frasi che poi innescavano la logica applicata nella programmazione. Ovviamente nei nostri giorni questa semplice logica ha lasciato sempre più spazio all’applicazione della IA (intelligenza artificiale).

Di Bot ne esistono tantissimi tipi, solo per citarne alcuni:
chatterbot
web crawler (o web bot, o www bot o internet bot)
IRC bot (Internet Relay Chat)
video game bot

Sostanzialmente, visto che con i Bot è possibile fare praticamente tutto, è possibile trovare una moltitudine di definizioni in base alla loro attività/scopo.

Chatterbot
Programmi che simulano una conversazione tra persone… il più famoso è sicuramente ELIZA (ma personalmente ho provato anche ALICE).

Web crowler
Non sono altro che Bot che “girano” per internet cercando di catalogare e indicizzare i contenuti delle varie pagine web per migliorare le ricerche su internet (come dimenticare il file robot.txt da inserire nelle cartelle di un sito web per aiutare Google nell’indicizzazione).

IRC bot
Erano agenti software che operavano sulla chat internet basate sul protocollo Internet Relay Chat e che agivano come amministratori per aiutare gli utenti o per evitare comportamenti non consoni all’etichetta.

Video game bot
Questi ovviamente sono i più evoluti (come tutte le cose che riguardano il mondo dei video giochi) e possono essere prevalentemente di due tipi, bot statici e bot dinamici. I primi sono come quelli utilizzati in Quake 3 Arena dove avevano lo scopo di fronteggiare il protagonista nei vari livelli di addestramento. I bot dinamici invece hanno la capacità di imparare dinamicamente i vari livelli e le varie mappe di gioco come realizzato in Counter-Strike con i RealBot.

I bot arrivano da lontano. Lasciando stare il Test di Turing, uno dei primi interessanti esperimenti con i bot è sicuramente rappresentato da Eliza, un bot creato nel 1966 al MIT dal professor Joseph Weizenbaum con lo scopo di simulare una chiacchierata con una psicoterapista di nome Eliza. Di questo bot ne sono state fatte varie versioni anche per ambiente MS DOS nel corso degli anni 90.
Eliza simulava la conversazione usando un sistema di ricerca e sostituzione dei termini presenti nelle frasi della persona dando l’illusione che il programma capisse veramente il contenuto delle frasi.
Una curiosità che riguarda ELIZA è MELIZA, una sorta di easter egg presente in Google Earth che si può attivare posizionandosi su Marte (vicino alla Face of Mars) dove si può trovare una icona che, premendola, fa partire una chat con un presunto alieno che implementa le stesse funzioni del bot originale Eliza.
Rimanendo sempre negli anni ’90 è necessario citare anche A.L.I.C.E. (Artificial Linguistic Internet Computer Entity) sviluppata in AIML (Artificial Intelligence Markup Language).

Arrivando ai giorni nostri i bot si sono arricchiti della capacità di interpretare la lingua parlata, rispondere vocalmente utilizzando dei sintetizzatori vocali per trasformare il testo in parole e utilizzando algoritmi per la machine learning per espandere autonomamente le proprie capacità.
Si arriva infatti nel 2012 a Google Now e nel 2015 a Alexa e Cortana. Nel 2016 sono arrivati anche i bot per la piattaforma Messenger di Facebook in risposta ai bot di Telegram.

Nel 2016 la Microsoft aveva rilasciato su Twitter il bot TAY (Thinking Bout You) ma a causa di tweet offensivi e dal contenuto polemico la Microsoft è stata costretta a chiudere il servizio dopo solo 16 ore dal lancio.

Infine, direi che merita una menzione d’onore il bot LSJBOT (codice sorgente)creato dal professore svedese Sverker Johansson per creare in modo autonomo delle pagine per la versione Svedese di Wikipedia. Il bot è in grado di generare fino a 10.000 articoli al giorno e questo ha portato l’edizione svedese ad essere la seconda edizione a raggiungere i 2 milioni di articoli.

Direi che ho detto tutto.
Quindi, i bot sono agenti software che arrivano da lontano, si sono evoluti utilizzando sempre di più l’intelligenza artificiale e imparando ad utilizzare l’udito e la parola e possono fare praticamente qualsiasi cosa.

Adesso che il Mangiatore di Quiche mi ha provocato, mi sta venendo voglia di provare a creare un bot per Telegram.
Le sue applicazione possono essere le più varie… il bot può gestire richieste di documenti da remoto, può essere utile per interfacciasi con il computer di casa e può fornire assistenza a 360°.

Un’ultima nota folkloristica… con tutti i chat bot ci scambi al massimo 10 frasi… dopo ti viene voglia di offenderli e il discorso degenera velocemente. Provare per credere.

Permanent link to this article: http://www.andrea.rustichelli.name/robotomizzati-analisi-di-una-mania-robotica/

Atom per la programmazione in Python

Ok, decido di iniziare a smanettare un po’ più seriamente con il Python. La prima cosa di cui ho bisogno (e qui rimembro i bei tempi andati quando la Borland sviluppava degli IDE fotonici) è un buon editor… completo ma non troppo complicato visto che voglio dedicarmi alla programmazione e non alla configurazione dell’editor.
Dopo un paio di installazioni fatte seguendo suggerimenti trovati su internet, decido di installare l’editor Atom.
La cosa migliore da fare è andare sul sito https://atom.io/ e scaricare il pacchetto di installazione .DEB… al termine del download viene eseguito il programma di gestione di questo tipo di pacchetti e l’installazione viene completata con successo.

Una volta terminata l’installazione, è necessario installare alcuni package per aggiungere delle funzionalità all’editor. Per installare i package è necessario andare nel menù Edit – Preferences e poi, nella finestra Settings che si apre nella parte centrale dell’editor, è necessario andare nella sezione Install.

Ho deciso di installare i seguenti package:
– atom-python-run: questo permette di eseguire il codice scritto in python. Ho scelto questo package perchè è veloce da configurare per l’utilizzo con il python3 (come da schermata sotto riportata) e consente di eseguire il codice tramite 2 tasti funzione (F5 e F6).

– autocomplete-python: per avere suggerimenti durante la scrittura del codice in python.

– minimap: per visualizzare sulla destra una anteprima del testo che è possibile scorrere per raggiungere velocemente la parte di programma selezionata. E’ molto comoda per i programmi molto lunghi, ma è comunque una figata anche per gli script più corti.

– file-icons: per visualizzare, nell’albero di progetto, i file con una icona che rappresenta il contenuto. Questa funzione, oltre a migliorare il look & feel permette di rendere più agevole individuare i file in progetti con molti file.

E adesso non rimane che iniziare a scrivere un po’ di codice.

Permanent link to this article: http://www.andrea.rustichelli.name/atom-per-la-programmazione-in-python/

Gestire e ripristinare backup in Thunderbird utilizzando i profili

Utilizzo Thunderbird come client di posta elettronica da parecchi anni e quindi ho spesso la necessità di trasferire tutti i dati e le mail (in una parola il mio profilo) da un sistema all’altro.
Anziché utilizzare programmi ad hoc o plugin appositamente sviluppati, è sufficiente copiare la cartella del profilo presente all’interno della apposita cartella di Thunderbird (il percorso dipende dal sistema operativo utilizzato) e copiarlo (ad esempio su una chiavetta USB) in modo da poterlo trasferire successivamente sul nuovo sistema. La cartella ha un nome che inizia con una stringa casuale (esempio “p62ktu03”) e poi termina con “.default”.

Al primo avvio di Thunderbird sul nuovo sistema operativo (nel mio caso Linux Mint, visto che non è ancora presente un profilo,  viene visualizzata la finestra per configurare un nuovo account.

Così facendo il programma crea la cartella di “.thunderbird” all’interno della cartella Home dell’utente dove sono presenti la cartella Crash report, la cartella che contiene tutti i dati (che avrà un nome illeggibile e casuale come anticipato prima) e un file di configurazione chiamato “profiles.ini” che contiene il riferimento ai profili utilizzabili.

Copio la cartella che contiene le mie precedenti configurazioni e mail (ovvero la cartella che contiene il mio precedente profilo) nella cartella “.thunderbird” e poi edito il file profiles.ini in modo da indicare a Thunderbird che profilo utilizzare all’avvio del programma. In questo modo lanciando nuovamente il programma sarà possibile utilizzare direttamente il vecchio profilo con tutte le mail e account precedentemente utilizzati. Questo permette di continuare a lavorare sui precedenti account e avere tutte le precedenti mail senza dover passare per programmi di backup o per plugin appositamente sviluppati. Tanto semplice quanto veloce.

E’ possibile modificare il file profiles.ini nel seguente modo:
[General]
StartWithLastProfile=0

[Profile0]
Name=default
IsRelative=1
Path=g0avwgca.default
Default=1

[Profile1]
Name=NON_USARE
IsRelative=1
Path=p62ktu03.default
Default=0

In questo modo ho chiamato “default” il profilo con gli account precedenti e ho rinominato in “NON_USARE” il profilo creato ex nova al primo avvio di Thunderbird sul nuovo sistema in modo da poter lo utilizzare in un secondo momento.
Inoltre, avendo impostato a 0 la variabile StartWithLastProfile (ed avendo inserito 2 profili), all’avvio di Thunderbird verrà visualizzata la seguente schermata:

Il gioco è fatto.

Permanent link to this article: http://www.andrea.rustichelli.name/gestire-e-ripristinare-backup-in-thunderbird-utilizzando-i-profili/

PGP – Pretty Good Privacy. It’s personal. It’s private. And it’s no one’s business but yours

Il PGP acronimo di Pretty Good Privacy è un programma sviluppato da Philip “Phil” Zimmermann tra il 1991 e il 2000 (anno più anno meno). Ho iniziato ad utilizzare il PGP verso il 1999/2000 più che altro per curiosità e per scambiare mail crittografate con gli amici. Ovviamente, quello che non ho ancora specificato è che il PGP è stato uno dei primi e dei più famosi programmi di crittografia.

Apro una breve parentesi sulla necessità di crittografare la mail… verso il finire degli anni ’90 si parlava di Echelon e del fatto che le comunicazioni fossero costantemente intercettate da avanzati sistemi posti in essere da Stati  Uniti, Canada, Regno Unito,  Australia e Nuova Zelanda (non ho mai capito cosa centrasse la Nuova Zelanda con le altre 4 Nazioni…). Ovviamente tutti dicevano che erano idee folli e che erano il frutto della fantasia di complottisti e cospiratori. Per fortuna sono arrivati i vari Snowden e Wikileaks a dirci che siamo sempre stati spiati e intercettati. Ma questa è un’altra storia.

La farò semplice e veloce, anche se su internet è possibile reperire un mare di informazioni a riguardo. Il PGP permetteva di creare due chiavi (che insieme formavano un ‘keyring’ o portachiavi), una pubblica e una privata che avevano una serie di caratteristiche tali per cui:

  • è possibile individuare se due chiavi fanno parte dello stesso ‘keyring’
  • data una chiave non è possibile generare l’altra

Ogni ‘keyring’ era associato all’unica cosa che all’epoca (e forse anche adesso) era univoca su internet,  ovvero l’indirizzo mail. Quindi venivano create due chiavi associate ad una determinata casella mail e, tramite alcuni plug in, era possibile inviare mail crittografate in automatico.

La chiave pubblica del destinatario del messaggio deve essere condivisa e deve essere utilizzata per cifrare il messaggio che si vuole inviare. La chiave privata serve per firmare il messaggio. Quindi se A vuole inviare un messaggio cifrato a B, A deve cifrare il messaggio utilizzando la chiave pubblica di B. Quando B riceve il messaggio cifrato usa la sua chiave privata per decifrare il messaggio e ottenere una copia leggibile. Alla chiave privata è anche associata una passphrase o parola d’ordine per aumentare la sicurezza e per permettere di attivare la decifratura tramite la chiave privata.

Fino al secondo governo Clinton (se la memoria non mi tradisce) era proibito esportare armi e munizioni fuori dagli Stati Uniti e il PGP era stato assimilato alle munizioni in quanto la sua impenetrabilità e sicurezza era considerata di livello militare. Infatti i programmi che utilizzavano chiavi di cifratura superiori ai 40 bit erano considerati alla stregua di munizioni… considerando ce le chiavi utilizzate da l PGP erano tutte superiori ai 128 bit, è facile capire il perchè di tale motivazione.

Adesso abbiamo la PEC che ha un funzionamento simile, solo che adesso ci sono le CA (Certification Autority) che fanno le veci di quello che un tempo era chiamato “trust” e che veniva rilasciato da altri utilizzatori del PGP che, teoricamente, dovevano conoscere personalmente e quindi garantire per la firma di un altro utilizzatore.

Per poter permettere ai miei amici di scrivermi email sicure utilizzando il PGP, avevo anche caricato la mia chiave pubblica sul server del MIT. All’epoca avevo una mail che si chiamava hybridum@inwind.it e potete trovare il mio certificato a questo link.

Di seguito sono riportate alcune schermate del programma. Era possibile trovare già caricate le chiavi pubbliche di Zimmermann e di altri collaboratori. Poi era possibile creare le proprie chiavi di cifratura come mostrato nella sequenza di immagini.

Qui potete provare alcune informazioni sulla versione 6.5.8 (che per me rimane una delle migliori e una delle ultime prima della commercializzazione e successivo declino del programma), mentre qui potete trovare informazioni sul creatore Philip Zimmermann.

Ho inserito la possibilità di scaricare le 2 migliori edizioni del PGP:

e i relativi manuali:

Un’ultima nota… nonostante questo post tratti sostanzialmente di un software, ho deciso di inserirlo nella categoria “Dissertazioni sulla tecnologia” perchè il PGP è molto più di un software. E’ un modo di concepire la privacy, i valori, la riservatezza in un mondo che più diventa digitale più diventa pubblico. E non ho paura di singoli individui, ma ho paura degli Stati e delle multinazionali che riescono sempre a trasformare oro in schifezza. Zimmermann si è fatto anche il carcere, ma alla fine era un precursore, un’avanguardia e un pioniere. Oltre che un uomo molto riservato.

Permanent link to this article: http://www.andrea.rustichelli.name/pgp-pretty-good-privacy-its-personal-its-private-and-its-no-ones-business-but-yours/

Ripartiamo dalla shell BASH

Considerato che ormai da molto tempo utilizzo un sistema operativo Linux, ho deciso di rispolverare la programmazione tramite shell. La mia preferita (come quella di molti) è la BASH – Bourne Again SHell) e, visto che è presente sulla distro Linux Mint, ho iniziato a riprendere un po’ di confidenza con questo potente strumento.

Come prima cosa aprire il proprio editor preferito, creare un nuovo file e inserire la riga :
#!/bin/bash
Ricordiamoci che tutto quello che inizia con il carattere # viene considerato commento e quindi non eseguito   dalla shell.
Inserire il comando:
echo Hello World!
che non fa altro che visualizzare la frase “Hello World!” sulla console.

Salvare il file con il nome “hello.sh” (senza i caratteri “).
Prima di eseguire il file è necessario dargli gli attributi per poterlo eseguire mediante il comando:
chmod +rx hello.sh
A questo punto è sufficiente digitare il comando:
./hello.sh

Ecco il risultato:

Hello World! nella shell BASH

Permanent link to this article: http://www.andrea.rustichelli.name/ripartiamo-dalla-shell-bash/

Quando i DRM degli eBook ledono la mia libertà

Compro un eBook su internet.  Si tratta di un libro in formato .EPUB protetto con il sistema DRM (Digital Rights Management) sviluppato da Adobe per i libri digitali. Il prodotto di Adobe per la gestione di questo tipo di file è Adobe Digital Edition. Serve ovviamente una utenza e una password in modo da poter leggere i libri protetti con questa tipologia di DRM. Quindi, ad esempio, sui vari lettori di ebook è necessario inserire le proprie credenziali ottenute con Adobe Digital Edition e diventa possibile leggere il libro.

Fin qui tutto bene, ma a volte gli eventi prendono strade impreviste e improvvise che ci costringono a scontrarci con il sistema…

Sono arrivato all’inizio del capitolo finale del libro (che mi sta prendendo benissimo e non vedo l’ora di leggere le pagine finali) quando, per uno spiacevole incidente, mi si rompe il lettore di eBook (come da foto).

l'eBook reader rotto

Ok nessun problema… il file è presente anche sul mio portatile con installato linux Mint e Calibre e lo posso leggere anche da lì. Sarà un po’ più scomodo ma alla fine mancano solo i capitoli finali e quindi ce la posso fare.

Apro Calibre, seleziono il file, attivo la modalità lettura… impossibile leggere il file perchè è protetto dal sistema DRM….

errore in Calibre per DRM

Bene. La mia rabbia sale oltre ogni limite. Maledetto Copyright… ma perchè non c’è il Copyleft sul mio libro?

Ma qual’è il problema?

Il motivo è semplice… Adobe non ha sviluppato la versione del programma Adobe Digital Edition per linux e quindi Calibre (ma nessun altro programma) è in grado di leggere in ambiente linux i file protetti da DRM.

Questa cosa è inammissibile. E’ come andare in libreria, comprare un libro cartaceo, pagarlo alla cassa e poi, sentirsi dire dal cassiere: “questo libro può essere letto  a casa, in ufficio ma non sui mezzi pubblici o nei parchi”.

Io pago. Io leggo dove voglio e su qualsiasi sistema operativo e con qualsiasi software.

Ovviamente la cosa non finirà qua. Io devo finire i libro e lo voglio leggere dove preferisco.

Permanent link to this article: http://www.andrea.rustichelli.name/quando-i-drm-degi-ebook-ledono-la-mia-liberta/

CompeGPS Land e gli e-roadbook

Sottotitolo: “come esplorare nuovi percorsi con un navigatore personale al proprio fianco”..

Gli e-Roadbook introdotti da CompeGPS/TwoNav derivano dallo strumento utilizzato da sempre in ambito rallystico dal navigatore per aiutare il pilota a destreggiarsi su percorsi mai provati prima.
Allo stesso modo gli e-Roadbook servono per caricare un percorso che sarà poi possibile utilizzare come traccia per la propria escursione o giro o viaggio beneficiando di informazioni aggiuntive che possano aiutare sia a navigare meglio (segnaletica, indicazioni di svolta, ecc) sia di avere maggiori informazioni sotto forma di testi o foto.

I dispositivi TwoNav possono gestire gli e-Roadbook nei seguenti formati:
– TRK
– BTRK

Come si vede dal formato dati supportato (TRK e BTRK) gli e-Roadbook non sono altro che file traccia con l’aggiunta di immagini e descrizioni più o meno approfondite. Ovviamente per poter creare un e-Roadbook è necessario avere a disposizione:
– CompeGPS Land
– un file traccia
– le informazioni e le foto da aggiungere alla traccia. Comunque è necessario dire che è possibile utilizzare anche solamente le icone già presenti all’interno di CompeGPS Land (che normalmente vengono utilizzate per i waypoint).

Aprire ComepGPS Land e creare una nuova traccia oppure crearne una nuova. Selezionare la traccia con il tasto destro del mouse per attivare il suo menù contestuale e selezionare la voce “Edita roadbook” o qualcosa di simile (dipende dalle versioni e dalla lingua utilizzata per il software). A questo punto si apre una nuova finestra “volante” che permette di editare i singoli waypoint che compongono il tracciato ed aggiungere le immagini o le descrizioni. Generalmente, visto che uso gli e-Roadbook come guida per le uscite in MTB, evito di utilizzare descrizioni troppo prolisse o immagini e utilizzo soltanto le icone già presenti all’interno del programma per indicare le svolte ai bivi o agli incroci in modo da non sbagliare strada rispetto alla traccia che voglio seguire.

Una volta finito salvo il mio e-Roadbook sia in formato .TRK sia in formato .BTRK. E’ bene sottolinare che il file .BTRK non è modificabile e qundi è buona norma non cancellare il file .TRK. Se vogliamo apportare modifiche all’e-Roadbook l’unico modo è quello di lavorare sul file .TRK e solo successivamente risolvarlo nel formato .BTRK.
Preferisco avere entrambe le estensioni solamente per un motivo di sicurezza (anche se nel nome del file metto sempre una sigla per identificare le traccie normali rispetto a quelle che contengono e-Readbook).
Sul dispositivo TwoNav Sportiva carico entrambi i file però poi utilizzo quello in formato .BTRK.

Navigazione di un e-Roadbook
una volta caricato il file .BTRK sul dispositivo TwoNav Sportiva, per iniziare a seguire la traccia è necessario seguire questi punti:
– Menù principale > Start!
– Elenco tracce: Selezionare l’e-Roadbook che si intende utilizzare e premere il pulsante ‘Naviga’.
– Finestra carta: Identificare l’e-Roadbook che si intende utilizzare, selezionarlo tenendo premuto per aprire il menù contestuale e premere ‘Naviga’.

Ulteriori informazioni possono essere trovate sui seguenti manuali ufficiali:

Ed ecco i file che potete utilizzare per testare l’utilizzo degli e-roadbook con il vostro software e il vostro dispositivo:

Permanent link to this article: http://www.andrea.rustichelli.name/compegps-land-e-gli-e-roadbook/