venerdì 24 marzo 2017

Come leggere le pagine man nel browser

Anzitutto, installiamo il pacchetto groff

sudo apt-get install groff

E poi basta scrivere

$ man --html=x-www-browser + [nome pacchetto]

Esempio:

 man --html=x-www-browser ls

Per evitare di scrivere ogni volta la riga di comando di cui sopra, creiamo un alias, che chiamiamo bman (browser man)

 alias bman='man --html=x-www-browser'

A questo punto, per leggere il man di ls nel browser, basta scrivere:

 bman ls

Alla prossima!

mercoledì 23 novembre 2016

libavcodec may be vulnerable or is not supported...[Solved]

Salve!

Dalla versione n. 50, Firefox, su alcuni siti (ad esempio, Twitter) non mi lasciava più vedere i filmati.

E, inoltre, compariva il seguente errore:

"libavcodec may be vulnerable or is not supported, and should be updated to play video."

Per ovviare al problema:

1. Nella barra degli indirizzi digitate: about:config e premete invio.

2. Accettate i rischi. :)

3. Cercate la stringa "libavcodec change media.libavcodec.allow-obsolete"

4. Cliccateci sopra affinchè si passi dal valore false al valore true.


 5. Non resta che riavviare Firefox.

Alla prossima.


martedì 11 ottobre 2016

PWGEN, random password generator

Pwgen genera password casuali, senza significato ma pronunciabili. O quasi :)

Consente di creare password in vario modo, di diversa lunghezza e con un set di caratteri normale o con caratteri speciali.


Per installarlo

$ sudo apt-get install pwgen


Per creare una pw alfanumerica:

$ pwgen -s -1


Per creare una pw alfanumerica, con la scelta del numero di caratteri (nel nostro caso 12)

$ pwgen -s -1 12

Per creare una pw contenenti anche caratteri speciali.

$ pwgen -s -1 12 -y

Ora immaginiamo di avere su un file di testo (lista_utenti.txt) il nome di cinque utenti e di voler creare per ognuno di esso una pw, in un colpo solo.



#!/bin/bash
#name: creapw.sh

for i in $( cat lista_utenti.txt ); do

       pwgen -s -1 12 -y | sed "s/^/$i /" 

done

exit 0

Ecco il risultato.


Alla prossima!

venerdì 23 settembre 2016

I nostri dati al sicuro con RSync.


Ciao a tutti,

bentornati dopo le meritate vacanze estive.

Anche io ricomincio le attività e quindi eccomi qui con un nuovo post che spero risulti utile e che possa aiutarvi ad evitare momenti di "difficoltà" :)

La prima regola quando si lavora al PC, a mio avviso, è la SICUREZZA per i nostri dati che faticosamente abbiamo prodotto e accumulato nel tempo.

Quale momento più indicato di questo per fare un po' i conti con le copie di backup e magari automatizzarle? Mettere ordine in quello che spesso è il caos dei files ripetuti e sparsi nelle varie directory?

Chiarisco subito che la soluzione descritta in questo articolo non è la più completa ,esistono sistemi più avanzati, nè questo post vuol essere una guida esaustiva per il backup dei dati.

Lo strumento che andiamo ad utilizzare per fare tutto il lavoro si chiama RSync; è un programma utilizzabile a linea di comando ed è già disponibile nella vostra distribuzione Linux, in particolare in questo post userò Lubit (tanto per non fare nomi :) ).

Contrariamente a quanto potrebbe sembrare RSync è uno strumento molto potente con molte funzioni che possiamo combinare per ottenere il risultato  desiderato, in particolare permette di sincronizzare i files con un backup anche incrementale, comprimerli in tempo reale per minimizzare i dati da trasferire, copiare ricorsivamente le cartelle e molto altro.

In fondo all'articolo metterò il link per chi volesse approfondire l'argomento, è comunque sempre disponibile il prezioso man quindi, in caso, usiamolo :)

Iniziamo!

Cominciamo col dire che nel programmare il backup dei nostri dati  abbiamo due possibilità:

1) copiare i dati in locale;

2) copiare i dati in remoto.

Analizziamo le due possibilità cominciando col backup in locale, che tra l'altro è delle due la soluzione più semplice.

Come ogni programma che si rispetti RSync ha la tipica sintassi :

rsync opzione  sorgente  destinazione

innanzitutto vediamo alcune semplici opzioni di uso comune:

-v : abilita l' output dell'operazione in corso ed eventuali errori

-r : copia ricorsivamente i files contenuti all'interno delle directory

-h : scrive in forma più umanamente leggibili le cifre

-a : copia ricorsivamente i files e ne mantiene inalterati gli attributi, i permessi e tutte le caratteristiche

-z : attiva la compressione dei dati in tempo reale

-- delete : cancella i files che sono stati concellati nel PC sorgente

-- exclude : esclude singoli tipi di files

-- existing: sincronizza solo i files già presenti nel PC destinazione

1 - Backup locale

Vediamo quindi come copiare i dati in locale , cioè con sorgente e destinazione diverse ma stesso PC.
 Questa e' la modalità più semplice e veloce, basta creare la cartelle destinazione e dare in pasto a rsync i parametri che abbiamo visto in precedenza, per es.


rsync -vrhz /home/utente /copiadati


questo comando effettua la copia di tutta la cartella home dell'utente in modo incrementale, ricorsivo con compressione dati nella cartella copiadati, da notare che la compressione dati non crea file compressi ma utilizza algoritmi di compressione solo per il trasferimento dati.

Per automatizzare la procedura è possibile creare uno script per eseguire la copia all'avvio del PC o programmare con il comando cron l'esecuzione.

2 - Backup remoto

La seconda opzione è fare il backup di directories locali su PC remoto e viceversa, possiamo avere un PC che contiene le copie aggiornate di tutti i dati sparsi sui vari computers che utilizziamo.

Una caratteristica di RSync, sempre a proposito della sicurezza, è la trasmissione dei dati su rete in modo cifrato utilizzando una connessione SSH tra sorgente e destinazione in modo da essere sicuri che nessuno possa intercettare e leggere i nostri dati.

Qualora il PC destinazione non avesse installato il demone server ssh sarà necessario installarlo , digitando:


sudo apt-get install openssh-server


fatto questo possiamo procedere al backup.

Creiamo una directory che conterrà le nostre copie dei dati con


mkdir /home/utente/copiadati


e dal pc sorgente digitiamo la stesso comando che abbiamo visto nel primo caso ma specificando come destinazione il server ssh :



rsync -vrhz /home/utente  nomeutente@ip_host:/home/utente/copiadati


a questo punto ci verrà chiesto di confermare la connessione e accettiamo, successivamente alla richiesta digitiamo la password di nomeutente e il gioco è fatto!

Naturalmente il gioco funziona anche al contrario, cioe' copiare dati remoti su un pc locale, basta invertire i parametri.



Per adesso e' tutto,

alla prossima!


Per approfondimenti è possibile consultare il link https://www.samba.org/ftp/rsync/rsync.html

lunedì 28 marzo 2016

Se ci sei, batti un colpo


Salve,
rieccomi ancora qui, dopo una lunga pausa, a scrivere ancora qualche riga e un po' di codice nella speranza che possano essere di aiuto a qualcuno come è  stato per me.
Come al solito parto da una mia esigenza, un piccolo problema che, non conoscendo una soluzione altrettanto semplice e veloce di questa, ho risolto con uno script in python.

Quando si hanno dei pc connessi alla rete, specialmente quando questi offrono dei servizi e quindi fanno da server, può essere utile avere un quadro della situazione e conoscerne in modo automatico la raggiungibilità sulla rete.

Il codice che ho scritto parte dal presupposto che i pc/server da tenere sotto controllo rispondano al ping, così come  avviene normalmente se non si interviene manualmente per disattivare i pacchetti ICMP.

Per farla breve posto subito il codice e poi un breve commento.



#!/usr/bin/env python

import os
import time

# elenco di host da processare in formato nome (host : indirizzo ip)
myservers = {
'Server A' : '192.168.1.10',
'Server B' : '192.168.1.20',
'Server C' : '192.168.1.30',

}

count=0 # contatore dei check

while True:
 print('------------------')
 print('--- Up or Down ---')
 print('------------------')
 count+=1 # conta i check
 print 'Check:',count
 print 'Orario: ',time.strftime("%H:%M:%S")
 print('')
 for nomehost, indirizzoip in myservers.items(): 
     # esegue il ping per ogni host e memorizza in test il risultato dell' operazione
  test = os.system("ping -c 1 " + indirizzoip+" >> /dev/null") 
  if test == 0:
   # se il ping ritorna il valore 0 allora l' host e' raggiungibile
   result = nomehost+' - '+indirizzoip+' --  ONLINE' 
  else:
   # ogni valore diverso da 0 vul dire che l' host e' irraggiungibile 
   result = nomehost+' - '+indirizzoip+' ---------  OFFLINE' 
  print(result)
 
 time.sleep(600) # un po di riposo
 os.system('clear') # pulisce lo schermo del terminale e ricomincia



Iniziamo col definire l' elenco dei servers da controllare, nel dizionario che ho chiamato myserver sono presenti le coppie (nome host : indirizzo ip) che dovrete modificare inserendo i dati dei vostri pc.

Fatto questo il resto non è da modificare, e funziona così:

viene inizializzata una variabile count che servirà per contare i check e quindi stamparli a video così da controllare come procede il ciclo while, un ciclo infinito che controlla costantemente tutti i servers mediante un ciclo for.
Per ogni item presente del dizionario definito in precedenza viene effettuato un ping sull'indirizzo ip, se il risultato è uguale a 0 vuol dire che il ping è riuscito ad arrivare al server che ha risposto correttamente, viceversa se il valore è diverso da 0 vorrà dire che il server non ha risposto e quindi non sarà raggiungibile sulla rete.
Da notare che ho inserito di proposito nella stringa dei servers non raggiungibili dei trattini in più, proprio per metterli in evidenza qualora qualcosa non andasse a buon fine nel ping.

Questo è tutto,

Alla prossima!

domenica 27 marzo 2016

Catturare lo schermo con import



Import è un tool di imagemagick preposto a catturare lo schermo o parte di esso e salvare l'immagine in un file. Su Lubit trovate già installato il programma istantanea per realizzare le screenshot, tuttavia il tool import è assai interessante, soprattutto se si pensa che può essere inserito in uno script. Comunque, per farla breve, per catturare l'intero schermo, apriamo un terminale e spostiamoci in una cartella. Nel mio caso,

$ cd Prova

 Ora, per catturare l'intero schermo, digitiamo
$ sleep 5; import -window root screenshot.png

Ho aggiunto un ritardo di cinque secondi in modo da poter minimizzare o chiudere qualche finestra.

Nel caso volessimo catturare solo una porzione dello schermo,
$ import screenshot.png

A questo punto non resta da fare altro che indicare con il mouse l'area dello schermo da immortalare.

 Ovviamente si presume che abbiate già installato imagemagick. In caso contrario

$ sudo apt-get install imagemagick

Alla prossima.


sabato 26 marzo 2016

Una filigrana per ogni pagina di un pdf


Talvolta diventa necessario aggiungere una filigrana, un watemark, per ogni pagina di un file pdf.

Il procedimento è abbastanza semplice.

Anzitutto dovete creare la filigrana. In genere uso Gimp, Inkscape, Imagemagick oppure è possibile crearla online, ci sono svariati siti preposti allo scopo.


Avevo una filigrana in un file png. Per prima cosa l'ho converto in pdf

$ convert filigrana.png filigrana.pdf

Poi ho scaricato il tool pdftk

$ sudo apt-get install pdftk

Infine ho messo nella stessa cartella sia il pdf_da_modificare  che il file filigrana.pdf.

Mi sposto con il terminale nella cartella contenenti i due file, nel mio caso

$ cd Prova

Non resta che lanciare il seguente comando

$ pdftk pdf_da_modificare background filigrana.pdf output pdf_con_filigrana.pdf

Ecco il risultato:

Alla prossima e Buona Pasqua.

giovedì 24 marzo 2016

Lubit, la pasqua e le fasi lunari


La Pasqua è una festa mobile e dipende dalla luna.

Un anno arriva alta, un anno arriva bassa. Di sicuro cade di domenica tra la fine di marzo e il 25 aprile.

Il calcolo della Pasqua è sempre stato, nel corso della storia, una fonte di discussione.

Solo nel 325, con il concilio di Nicea, fu stabilito un modo per calcolare la data della Pasqua che valesse per tutto il mondo cristiano.

Ancora oggi valgono quelle disposizioni.

La Pasqua cade la prima domenica successiva al plenilunio che segue l'equinozio di primavera.

Quindi
  • prima l'equinozio di primavera (+/- il 21 marzo)
  • poi il plenilunio
  • la domenica successiva al plenilunio è Pasqua

Calcolare la data della Pasqua su Lubit è estremamente semplice;

basta digitare nel terminale

$ ncal -e (anno)

ad es., per conoscere la data della Pasqua del 2016, basta digitare:

$ ncal -e 2016

Per conoscere la data della Pasqua del 2017,

$ ncal -e 2017


Per conoscere, invece, le fasi lunari dobbiamo installare il pacchetto bsdgames

$ sudo apt-get install bsdgames

Ora, per sapere la fase lunare di una determinata data, ad es., del 24-03-2016, basta aprire il terminale e digitare:

$ pom 16032410

pom sta per phase of moon, 16 è l'anno, 03 è il mese, 24 è il giorno e 10 sono le ore.

Ecco il risultato:

Thu 2016 Mar 24 10:00:00 (CET):  The Moon was Waning Gibbous (99% of Full)

Quindi la Pasqua non può essere che domenica 27, prima domenica dopo il plenilunio, successivo all'equinozio di primavera ;)

Intanto...

mercoledì 23 marzo 2016

Da rosa rossa a rosa blu, con Tintii

 Dai, come si fa a stare senza tintii? :)

Tintii acquisisce le foto a colori e le elabora trasformandole in bianco e nero
con alcune regioni selezionate evidenziate a colori. La tecnica è
conosciuta come "cut-out" o colorazione selettiva.

Vabbe', vi mostro un esempio.

Rosa rossa. 


Elaborazione con Tintii

Rosa blu.


Per installare tintii

$ sudo apt-get install tintii

e poi lanciarlo dal terminale

$ tintii

Alla prossima!

martedì 22 marzo 2016

Steganografia su Lubit. Parte prima.



La steganografia è una tecnica di sicurezza che viene di solito confusa con quella della crittografia.

Lo scopo della crittografia è quello di nascondere il contenuto di un messaggio. Non mi interessa che venga intercettato il messaggio, a me interessa che lo stesso risulti illeggibile agli occhi di colui che lo intercetta.

Lo scopo della steganografia è invece quello di nascondere proprio l'esistenza del messaggio.
Si pensi ad esempio ad un soldato che venga sorpreso a scambiare messaggi cifrati con uno Stato nemico: indipendentemente dal contenuto del messaggio, il solo fatto che vengano scambiati messaggi cifrati desta ovvi sospetti.

Le origini della steganografia non sono affatto recenti.

La parola steganografia deriva dall'unione dei due vocaboli greci stèganos  (nascosto) e gràfein (scrivere) ovvero scrittura nascosta o meglio ancora l'insieme delle tecniche che consente a due o più persone di comunicare in modo tale da nascondere l'esistenza della comunicazione agli occhi di un eventuale osservatore, tradizionalmente denominato "nemico".

Erodoto racconta la storia di un nobile persiano che fece tagliare a zero i capelli di uno schiavo fidato al fine di poter tatuare un messaggio sul suo cranio; una volta che i capelli furono ricresciuti, inviò lo schiavo alla sua destinazione, con la sola istruzione di tagliarseli nuovamente.

In questa serie di post avremo modo di parlare ampiamente di steganografia su lubit, analizzando nei dettagli un po' di tools preposti allo scopo. Tools ad interfaccia grafica, ma anche a riga di comando. Magari ne creeremo qualcuno ricorrendo a bash e a Python.

Iniziamo da un tool abbastanza semplice: Outguess

Outguess è uno strumento di steganografia a riga di comando, che permette l'inserimento di informazioni nascoste nei bit ridondanti di una sorgente dati; nel nostro caso nasconderemo un messaggio segreto in un'immagine jpg (cuore.jpg)

Per installarlo

$ sudo apt-get install outguess

Spostiamoci nella cartella Documenti, dove avremo già posizionato un'immagine nel formato jpg.

$ cd Documenti

Ora creiamo il file di testo contenente il nostro messaggio segreto

$ echo "io uso lubit come sistema operativo" > secret.txt

A questo punto incorporiamo il file secret.txt nell'immagine

$ outguess -k "lubit linux" -d secret.txt cuore.jpg output.jpg

Il flag -k sta per key, che nel mio caso è lubit linux. Se dimenticherete la chiave, non riuscirete più a recuperare il messaggio segreto, eh. ;)

Per scorporare il messaggio segreto dall'immagine

$ outguess -k "lubit linux" -r output.jpg messaggio_segreto.txt

Alla prossima!

mercoledì 3 febbraio 2016

Se Lubit 64 bit non si connette più ad internet...

Salve!

Se state usando Lubit 5 o 6 a 64 bit e avete aggiornato il sistema, sicuramente non solo è scomparsa l'icona del network-manager del pannello, ma non non riuscite più a connettervi ad internet.

Purtroppo ci sono alcune librerie che sono "buggate", ragion per cui bisogna reinstallare quelle precedenti.

Per ovviare al problema fate così:
  • Scaricate questi tre pacchetti: 1, 2, 3. (Ovviamente da un pc connesso ad internet :D)
  •  Stoppate il processo di network-manager: 
           $ sudo stop network-manager
  • Nella directory Scaricati create una cartella di nome "net", dove andrete a posizionare le tre librerie scaricate.
  •  Spostatevi dal terminale nella cartella net:
            $ cd Scaricati/net
  • Installate i pacchetti: 
           $ sudo dpkg -i *.deb
  •  riavviate il network-manager
          $ sudo start network manager

 Per qualche giorno evitate di aggiornare il network-manager.

Alla prossima.


lunedì 14 dicembre 2015

Salvataggio automatico file corrente - Gedit. [Se lo avessi saputo prima]

Talvolta le cose sono così semplici che sfuggono. È quello che è successo a me, proprio oggi, dopo aver scritto uno script in bash; pochi secondi prima di salvarlo, è andata via la corrente elettrica e ho perso tutto.

Mi sarebbe bastato andare su Modifica -> Preferenze -> Editor 

E poi aggiungere il segno di spunta su salvare automaticamente il file corrente ogni tot minuti. Mah! Vabbe' ;)

Alla Prossima.

giovedì 19 novembre 2015

Sox e la funzione repeat

Salve!

Premessa.

SoX è un'utilità a riga di comando che può convertire vari formati di file audio. Può anche applicare svariati effetti a tali file al momento della conversione. Inoltre SoX può riprodurre e registrare file audio.

Per riprodurre un file audio, anzitutto installiamo tutte le librerie Sox.

$ sudo apt-get install libsox-fmt-all

Ora per riprodurre un brano con la funzionalità repeat si fa così:

$ cd Musica

$ play Cammino_nella_notte.mp3 repeat 2

In tal modo lo stesso brano sarà eseguito per due volte.




Alla prossima.

sabato 14 novembre 2015

Solidarietà al popolo francese

Solidarietà al popolo francese da parte del Lubit Project e dell'Associazione Gli Amici di Lubit.


sabato 31 ottobre 2015

Eliminare i file di una directory contenenti una parola determinata.

Salve!

Supponiamo che in una directory, ad esempio in Documenti, abbia tantissimi file di testo e che voglia eliminare solo quelli che contengono, nel testo e non nel titolo, una determinata parola, come fare? Se si vuole evitare di cercare prima la parola in ciascuno di esso e poi eliminarli, si può usare uno script facile facile. ;)

#!/bin/bash

read -p "Quale parola vuoi cercare? " stringa
for file in $(grep -l $stringa *); do
    rm -i $file;
done
exit 0

Ovviamente lo script, prima di eliminare un qualsiasi file, chiede il consenso. Nel mio caso ho eliminato tutti i file nel cui testo compariva la parola Fedora. (non ho niente contro Fedora, eh, è solo un esempio) ;)


Alla prossima! 

giovedì 29 ottobre 2015

Creare una copia di backup di un file

 Salve!

Prima di modificare un qualsiasi file di configurazione dovrebbe essere necessario farne una copia di backup.

In questo post vi dirò un modo estremamente semplice, ma anche elegante, di creare una copia di backup di un file.

Poniamo il caso che il file da modificare si trovi nella directory Documenti

$ cd Documenti

e che si chiami file.conf

Uno dei modi per creare una copia di backup è il seguente

$ cp file.conf{,.bak}


La semplicità è sempre un dopo, mai un prima.

Alla prossima! 

mercoledì 28 ottobre 2015

Come tee nessuno!

Salve!

Oggi parliamo, ma solo per un esempio, del comando tee. Per approfondire vi invito ad andare sulla pagina di Wikipedia.

$ risultato=$(echo "Come tee nessuno"| tee  >(sed 's/ /_/g') >(sed  's/\(.*\)/\U\1/') >(rev))

$ echo "$risultato"

In questo caso l'output del comando "echo" viene passato contemporeaneamente, grazie a tee, a tre comandi diversi, che lo elaborano e ne restituiscono i rispettivi risultati:
1. Il primo sed aggiunge l'underscore.
2. Il secondo sed converte la frase da minuscolo in maiuscolo.
3. Il comando rev inverte i caratteri della frase.


Alla prossima.

Sequenza di numeri [bash]

Salve!

Espansione di parentesi graffe VS il comando Seq.

$ echo {1..5} | tr ' ' '\n'
$ seq 1 5

$ echo {1..5}
$ seq -s ' ' 1 5
dove -s sta per output separator.

$ echo {001..5}
$ seq -s " " 001 5

$ echo -e {0..5}"\xc2\xb0"
$ seq -w  0 5 | sed  's/$/\xc2\xb0/' | tr "\n" " "; echo
"\xc2\xb0" = simbolo del grado

Incremento positivo
$ echo {1..10..2}
$ seq -s " " 1 2 10

Incremento negativo
$ echo {10..1..2}
$ seq -s " " 10 -2 1


E poi...
$ echo {a..z}
$ echo {a..z..3}




E ancora
$ echo -e {Lubit,Linux}"\xc2\xae"
\xc2\xae = simbolo del marchio registrato.

Alla prossima!

venerdì 23 ottobre 2015

Lubit e internet per tutti!

Dopo un lungo periodo di "riposo" rieccomi qui con un breve, davvero breve, articolo che ritengo possa essere utile.

Probabilmente molti di voi avranno già sperimentato la soluzione che vado a mostrarvi, ma comunque, siccome è tornata utile a me in un periodo di difficoltà, preferisco scrivere due righe per condividerla.

Problema: 
mi trovo fuori casa , non ho collegamento internet wifi e dispongo solo di una chiavetta usb per collegare il pc.... ok e se volessi collegare anche il mio smartphone , tablet o un secondo pc utilizzando la stessa connessione??

Lubit ha già tutto quello che ci serve per risolvere il problema!

Parto dal presupposto che sia già stata configurata la connessione tramite chiavetta , fatto questo basterà creare una rete wifi in modo da far diventare il pc un access point.

In pratica si fa così, clicchiamo con tasto sinistro del mouse sul network manager ( l'iconcina in alto a destra che rappresenta il collegamento), selezioniamo "crea nuova rete Wi-Fi",  compiliamo il form col nome che vogliamo dare alla nuova rete, il protocollo di sicurezza e la chiave di protezione della rete (naturalmente possiamo anche scegliere nessuna sicurezza per avere una rete aperta) e confermiamo tutto.
A questo punto la rete è stata creata, in alto si nota l'attività di configurazione e avvio della rete, pochi secondi e abbiamo pronta la nuova rete wi-fi quindi possiamo selezionarla sui nostri dispositivi che cosi' avranno accesso alla rete, la stessa che usa il pc collegato direttamente con la chiavetta.

La rete non si avvia automaticamente quindi dopo aver avviato il pc dobbiamo selezionare la rete creata dalla lista delle reti disponibili.

L'ho detto, semplice ma utile! :)

A presto.
Saluti!

Ricerca case-insensitive e sostituzione con sed.

Salve!

Supponiamo di avere i seguenti dati contenuti nel file prova

luigi Marco luCa
Nino lucA MassImo
Vincenzo Andrea LuCA
Nino LUca Ivo Neo
Luigi LUCA Ivo Rob


Come potete notare il nome Luca è stato scritto in modo non corretto.

Il nostro intento è quello di fare una ricerca case-insensitive e correggere il nome in questione.

Perchè si possa avere la ricerca case-insensitive e la sostituzione in modo globale, si scrive così: 

$ sed 's/luca/Luca/Ig' prova

In altri termini, diciamo a sed di sostituire le stringhe luCA, LuCA, LUCa e LUCA con la stringa Luca.


Alla prossima!