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/

Ottenere info sul sistema linux tramite un programma Bash

Mi capita a volte di avere la necessità di recuperare informazioni sul sistema operativo linux e su altre informazioni legate al sistema e alla rete. Visto che non mi ricordo sempre tutti i comandi (considerato che lo uso solo nel tempo libero) ho scritto un programma bash da lanciare. Un volta eseguito (se non vengono forniti parametri in input) il programma visualizza le tipologie di informazioni e poi, una volta fatta la scelta, vengono mostrate le informazioni richieste. E’ anche possibile eseguire il programma passando direttamente il numero corrispondente all’opzione desiderata. Fin che c’ero ho cercato di utilizzare i principali costrutti come l’if e il case.

#!/bin/bash

if [ $# -eq 0 ]; 
then 
#se non è stato passato il parametro viene visualizzato il menù con
#le opzioni
echo "################################################"
echo "# Visualizza le info del sistema e dell'utente #"
echo "# 1 - Informazioni dal 'printenv'              #"
echo "# 2 - Informazioni generiche sul sistema       #"
echo "# 3 - Informazioni di rete                     #"
echo "# 4 - Informazioni sulla release               #"
echo "# 5 - Informazioni sulla CPU                   #"
echo '# 6 - Varie                                    #'
echo "################################################"
read -p "Scegli l'opzione:" OPZ
else 
#altrimenti il parametro passato viene messo nella varibile di scelta
OPZ=$1
fi

case $OPZ in
1) 
clear 
echo "---===] Informazioni dal 'printenv' [===---"
printenv|grep SHELL
printenv|grep USER
printenv|grep DESKTOP_SESSION
printenv|grep LANG
printenv|grep CINNAMON_SESSION
printenv|grep HOME
;;
2) 
clear
echo "---===] Informazioni generiche sul sistema [===---"
echo "Nome host: "`uname -n`
echo "Sistema basato su: "`uname -s`
echo "Sistema operativo: "`uname -o`
echo "Kernel release: "`uname -r`
echo "Kernel version: "`uname -v`
;;
3)
clear
echo "---===] Informazioni di rete [===---"
echo "Nome host: "`hostname`
echo "Indirizzo IP: "`hostname -i`
echo "Indirizzo IP internet: "`hostname -I`
;;
4)
clear
echo "---===] Informazioni sulla release [===---"
echo "Distribuzione: "`lsb_release -is`
echo "Descrizione: "`lsb_release -ds`
echo "Numero di release: "`lsb_release -rs`
echo "Nome in codice della release: "`lsb_release -cs`
;;
5)
clear
echo "---===] Informazioni sulla CPU [===---"
cat /proc/cpuinfo|grep vendor_id |uniq
cat /proc/cpuinfo|grep 'model name' |uniq
cat /proc/cpuinfo|grep 'cache size' |uniq
lscpu|grep Architecture
lscpu|grep 'CPU op-mode'
lscpu|grep 'CPU(s)'|head -1
;;
6)
clear
echo "---===] Varie [===---"
ls -l /usr/share/xsessions/
;;
esac

Permanent link to this article: http://www.andrea.rustichelli.name/ottenere-info-sul-sistema-linux-tramite-un-programma-bash/

Una introduzione alla crittografia… dove tutto ebbe inizio

Uno dei documenti fondamentali per capire la crittografia, i sistemi e le tecniche di cifratura, i certificati, le certification authority, le firme digitali e la PEC.

Imprescindibile.

Permanent link to this article: http://www.andrea.rustichelli.name/una-introduzione-alla-crittografia-dove-tutto-ebbe-inizio/

John Titor e l’esemplare di IBM 5100

Post tratto dal blog borotalcol.org.

Forse per qualcuno di voi la storia di John Titor è roba vecchia, ma forse molti di voi non sanno neppure chi sia. Per cui prima di partire per le mie ferie (e lasciare il sito incustodito per almeno un paio di giorni…) vi lascio un argomento da approfondire: la storia di John Titor, il presunto viaggiatore nel tempo…

e mi raccomando di credere ciecamente a tutto quello che leggete.

Permanent link to this article: http://www.andrea.rustichelli.name/john-titor-e-lesemplare-di-ibm-5100/

Il blog 2.0 di borotalcol.org

Qualche anno fa (anche se non ricordo quanti anni esattamente) nasceva il sito www.borotalcol.org. Blog 2.0 sulla falsariga dei molti blog che non facevano altro che linkare e commentare contenuti di altri siti. I più famosi all’epoca erano StuffAZ e AttuSeeAll. Io e ReadOnlyMaio ci eravamo divisi i giorni in modo che uno pubblicava i giorni pari e uno i giorni dispari. Grazie a CMS come WordPress e Serendipity si erano diffusi i siti personali, i così detti blog, dove le persone tenevano una sorta di diario digitale. Poi con il passare del tempo erano nati i blog 2.0 che, anzichè pubblicare articoli originali e personali, rimandavano a contenuti presenti su internet. E’ un po’ quello che sta succedendo a FAcebook, dove le persone tendono a linkare articoli e informazioni e sempre meno a produrre “post” personali.

Permanent link to this article: http://www.andrea.rustichelli.name/il-blog-2-0-di-borotalcol-org/

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/

Stadio Mapei – vecchia ferrovia – Correggio

Dopo aver sperimentato gli e-Roadbook con CompeGPS Land, ho messo in pratica quanto appreso e ho seguito l’itinerario che dallo Stadio Mapei di Reggio Emilia conduce a Correggio passando per Bagnolo, il tracciato della vecchia ferrovia e per Fosdondo.

Come potete notare dalla prima immagine (che visualizza la schermata di CompeGPS Land) la traccia seguita realmente nel corso del giro in MTB (in rosso) differisce di pochissimo rispetto al tracciato editato con CompeGPS Land (in verde) e che è stata utilizzata come guida.

dav
dav
dav
dav
dav

Qui potete trovare i file del giro:

Permanent link to this article: http://www.andrea.rustichelli.name/stadio-mapei-vecchia-ferrovia-correggio/

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/

Post su Facebook del 2017

Andrea Zacca Rustichelli 13 novembre 2017
Trapped under ice
Marcello T. Succi Sento già la batteria romboare
Andrea Zacca Rustichelli cortina d’ampezzo… ho comprato una villa con vista sul ripetitore per spendere meno…

Andrea Zacca Rustichelli 2 agosto 2017
La metempsicosi è la palingenetica obliterazione dell’io cosciente che si infutura nell’archetipo prototipo dell’antropomorfismo universale.
cit. Gianni (Geminiano) Dazzi (che mi vanto di conoscere)
Nicola Kal-El Vascotto Sicuramente siamo oltre il 4 negroni
Stefania Beltrami Grande Gianni🏆
Alberto Beneventi TOP
Andrea Zacca Rustichelli Dobbiamo smetterla con questi luoghi comuni…

Andrea Zacca Rustichelli 20 luglio 2017
Dato un lasso di tempo abbastanza lungo, per tutti la percentuale di sopravvivenza precipita a zero.
Possa non essere mai completo.
Possa non essere mai soddisfatto.
Possa non essere mai perfetto.
Tyler Durden
Marcello T. Succi Tocco ferro
Andrea Bargiacchi Le cose che possiedi ti possiedono. Tu zacca possiedi del nocino

Andrea Zacca Rustichelli 13 luglio 2017
E dopo questa serata cosa possiamo trarre come conclusione?
1. la bici è un mezzo fantastico.
2. popolo di piazza fontanesi… abbassatevi i risvoltini… e allargate le vostre vedute…
Marcello T. Succi Ti hanno negato un cocktail o é semplicemente il popolo di Veggio Centvo?
Andrea Zacca Rustichelli Saucius sai che io non prendo cocktail in centro ma solo nelle vie laterali…

Simone Scaglioni è con Marcello Cavazzoni, Andrea Zacca Rustichelli e Alessandro Verzani 12 luglio 2017 · Reggio nell’Emilia
Se fossimo belli… ma siamo in 4 e allora siamo fantastici…
Emil Manzotti …i figa no…😉😜
Andrea Zacca Rustichelli era nascosta… borlo mi cadi su queste cose da principianti?
Emil Manzotti era la fotografa indaffarata vero?
Silvia Penserini Serata gay.
Elia de Giovannini Quello con la maglietta bianca con scritto Bitch non mi convince…

Simone Scaglioni si trova qui: Carpi con Andrea Zacca Rustichelli 23 giugno 2017
Quando uno è bello … e’ bello !

Andrea Zacca Rustichelli 20 maggio 2017
Schengen e le frontiere aperte non sono un problema per la sicurezza, però in occasione del G7 può essere fatta una eccezione. Evidentemente devono sentirsi sicuri. Due pesi e due misure. Stupido io che ancora mi stupisco.

Andrea Zacca Rustichelli 7 maggio 2017
Nel vedere dal vivo l’assolo di Petrucci alla fine di Take the time mi sono sentito come una adolescente ad un concerto di Justin Bieber…

Andrea Zacca Rustichelli 5 maggio 2017
Ci siamo….

Enrico Straminato Pignagnoli congelato con Jennifer Bonacini e Andrea Zacca Rustichelli 26 febbraio 2017
Pranzo a 2000
Andrea Zacca Rustichelli potrei mettere il “mi piace”… però non mi piace affatto…

Permanent link to this article: http://www.andrea.rustichelli.name/post-su-facebook-del-2017/

Post su Facebook del 2016

Andrea Zacca Rustichelli 3 dicembre 2016
Questa sera nella nebbiosa terra di mezzo si sono affrontate in una sanguinosa guerra le seguenti orde:
Da nord il popolo di Nani
Da sud le sanguinarie orde degli orchi
Da est le armate degli elfi
Da ovest gli hobbit.
Nel centro era situta la pacifica compagnia dei Lesi (in rigoroso ordine alfabetico):
Erro
J
Jesus
Maffo
Mattio
Naso
Saucius
Zacca
Dopo aver constatato il livello di ignoranza, le quattro ondate hanno porto i loro omaggi e si sono silenziosamente ritirate.
Marcello T. Succi Can Zacca e hai avuto pure il coraggio di scrivere tutta sta roba, ieri sera?
Andrea Zacca Rustichelli la frase l’ho scritta mentre fumavo 200 metri lineari di asfalto dell’A1
Marcello T. Succi Tzè…il prozio Bruno ha fatto la guerra ed è morto a 90 anni dopo aver fumato per oltre 70 le nazionali senza filtro…
Andrea Zacca Rustichelli ero ispirato
Simone Jesus Davoli Dovremmo farla un pò più spesso!!
Marcello T. Succi La fumata di asfalto o la cena?
Andrea Zacca Rustichelli La cena…
Marcello T. Succi Esatto!dobbiamo mantenere il peso forma!

Andrea Zacca Rustichelli 8 novembre 2016
In bocca al lupo Trump. Ho sempre avuto un debole per i perdenti soprattutto quando tutti ti sono contro. E non penso che Hillary sia così migliore.
Marcello Cavazzoni Il Brunello ti ha dato alla testa… Fuck off Trump!
Marcello T. Succi E noi che ci lamentavamo dei politici in Italia..
Alberto Nanni Sono un maschio bianco non mussulmano e non ho nulla da temere…
Pam Ferrari io condivido il tuo pensiero!
Fabio Soncini Di la verità Zacca. Tu hai accesso a informazioni riservate
Marcello T. Succi Zacca, prima o poi l’Fbi ti becca con le mail che ti scambi con la Clinton foundation

Andrea Zacca Rustichelli 29 ottobre 2016
Thank’s (ignorant) folks

Andrea Zacca Rustichelli 29 ottobre 2016
Ultimamente non esco tanto di sera… col 100 grammi ho freddo…
Alberto Beneventi Ma è’ colmar ? 😂
Silvia Fornaciari “È ora di ubriacarsi! Per non essere schivi martirizzati del Tempo, ubriacatevi, ubriacatevi sempre! Di vino, di poesia o virtù, come vi pare.
C.Baudelaire
Andrea Zacca Rustichelli Ma “virtù” o “vizi”? Sei sicura che la citazione sia giusta?
Andrea Zacca Rustichelli Vorrei tranquillizzare tutti che si tratta di una citazione. Non c’è nessun colmar 100 grammi nel mio armadio.

Andrea Zacca Rustichelli 29 ottobre 2016
Ti spenno e ti scotenno… era dagli anni ’80 che non sentivo una simile frase…

Andrea Zacca Rustichelli 29 ottobre 2016
Il jazz é come le sc@@@@ge, piace solo a chi lo fa.

Andrea Zacca Rustichelli 29 ottobre 2016
SPSS: Statistical Package for Social Science
Marcello Cavazzoni Strada provinciale, strada statale…
Marcello T. Succi #1

Andrea Zacca Rustichelli 12 giugno 2016
Grazie della serata. Anche se sono le 4. È un onore…

Andrea Zacca Rustichelli 12 giugno 2016
Salvami barzotti

Andrea Zacca Rustichelli 12 giugno 2016
Binny???

Andrea Zacca Rustichelli 27 febbraio 2016
ho un po’ di amici da ringraziare.

Permanent link to this article: http://www.andrea.rustichelli.name/post-su-facebook-del-2016/