<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://wiki.eigenlab.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Svalo</id>
	<title>EigenWiki - Contributi dell&amp;#039;utente [it]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eigenlab.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Svalo"/>
	<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/Speciale:Contributi/Svalo"/>
	<updated>2026-06-02T15:55:19Z</updated>
	<subtitle>Contributi dell&amp;#039;utente</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Focaccia_di_salvia&amp;diff=6693</id>
		<title>Focaccia di salvia</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Focaccia_di_salvia&amp;diff=6693"/>
		<updated>2020-12-12T18:27:42Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Aggiunta latte agli ingredienti, virgole al procedimento e info sulla consistenza da attendere&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa è una ricetta per una focaccia di patate e salvia molto unta e deliziosa. Vegetariana.&lt;br /&gt;
&lt;br /&gt;
===Ingredienti===&lt;br /&gt;
* Farina 0 o 1 300g&lt;br /&gt;
&lt;br /&gt;
* 2 o 3 patate gialle&lt;br /&gt;
&lt;br /&gt;
* parecchio olio&lt;br /&gt;
&lt;br /&gt;
* mezzo bicchiere di latte&lt;br /&gt;
&lt;br /&gt;
* 1 cucchiaino di sale&lt;br /&gt;
&lt;br /&gt;
* un pugno di foglie di salvia&lt;br /&gt;
&lt;br /&gt;
* un cubetto di lievito&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ricetta===&lt;br /&gt;
Si fanno bollire le patate o con la buccia o se avete fretta pure a cubetti. Si lasciano raffreddare un poco e si riducono in poltiglia. Si  impastano con la farina, il latte, il sale, un filo d&#039;olio (poco!), il lievito di birra e la salvia tritata finissima fino ad ottenere un impasto morbido ma non troppo appiccicoso. &lt;br /&gt;
&lt;br /&gt;
Si fa lievitare stesa in una teglia larga (l&#039;impasto lievitato dovrà essere alto 2-3cm). Una volta lievitata si pizzica la superficie dell&#039;impasto e si &#039;&#039;&#039;riempono&#039;&#039;&#039; i buchi lasciati dai pizzichi di olio. &lt;br /&gt;
Si inforna al massimo e si mangia calda.&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Cibo]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Utente:Svalo/Aggiornamento_Servizi&amp;diff=6618</id>
		<title>Utente:Svalo/Aggiornamento Servizi</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Utente:Svalo/Aggiornamento_Servizi&amp;diff=6618"/>
		<updated>2018-10-16T20:02:32Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Nextcloud */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Un po&#039; di appunti su come aggiornare i servizi che abbiamo.&lt;br /&gt;
&lt;br /&gt;
Come regola generale, quando possibile, fai un backup dei dati e del DB prima di cominciare, meglio se con il servizio fermo così non c&#039;è il rischio che avvengano modifiche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Più in dettaglio le procedure per i diversi servizi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sito ==&lt;br /&gt;
&lt;br /&gt;
* Collegati al server&lt;br /&gt;
* Diventa l&#039;utente che fa girare il sito&lt;br /&gt;
* Nella home ci dovrebbe essere uno script per fare il backup, lancialo&lt;br /&gt;
* Siccome è WP c&#039;è installato un comodo comando che si chiama `wp` per interagire col sito da shell&lt;br /&gt;
* &amp;lt;code&amp;gt;wp plugin list&amp;lt;/code&amp;gt; lista i plugin e lo stato di questi&lt;br /&gt;
* &amp;lt;code&amp;gt;wp core check-status&amp;lt;/code&amp;gt; da lo stato del core di wp&lt;br /&gt;
* &amp;lt;code&amp;gt;wp core &amp;lt;/code&amp;gt; aggiorna wordcodess&lt;br /&gt;
* &amp;lt;code&amp;gt;wp plugin update --all&amp;lt;/code&amp;gt; aggiorna tutti i plugin installati&lt;br /&gt;
* se tutto è andato bene i backup codecedenti a quello fatto prima possono essere tolti&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato storto puoi recuperare i files ed il DB dal backup che hai fatto con lo script&lt;br /&gt;
&lt;br /&gt;
== Wiki ==&lt;br /&gt;
&lt;br /&gt;
Prima di qualsiasi cosa controlla nelle note di versione non ci siano controindicazioni all&#039;aggiornamento tipo versioni non supportate di PHP o plugin non più supportati o che necessitano di aggiornamenti&lt;br /&gt;
&lt;br /&gt;
* COllegati al server&lt;br /&gt;
* diventa l&#039;utente che fa girare il wiki&lt;br /&gt;
* Fai un dump del DB col seguente comando&lt;br /&gt;
**  &amp;lt;code&amp;gt;mysqldump -u &amp;lt;utente&amp;gt; -p &amp;lt;dbname&amp;gt; | xz -z &amp;gt; dump_wiki$(date &amp;quot;+%F&amp;quot;).sql.xz&amp;lt;/code&amp;gt;&lt;br /&gt;
* Scarica l&#039;ultima versione della wiki dal sito&lt;br /&gt;
* estrai la versione aggiornata nella sua cartella con versione&lt;br /&gt;
* copia il file delle impostazioni e delle immagini nella cartella della nuova versione&lt;br /&gt;
** &amp;lt;code&amp;gt;cp mediawiki/LocalSettings.php mediawiki-&amp;lt;nuova-versione&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;rsync -aPh mediawiki/images mediawiki-&amp;lt;nuova-versione&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* controlla quali plugin e skins c&#039;erano nella vecchia installazione e ri-scaricali per la nuova versione. Stanno nella cartella extensions e skins&lt;br /&gt;
** Non copiare la cartella extensions o skins perchè ci sono anche i moduli ed i temi core&lt;br /&gt;
* Entra nella sottocartella maintenance della cartella del nuovo mediawiki&lt;br /&gt;
* Esegui eventuali aggiornamenti dello schema del DB col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;php update.php&amp;lt;/code&amp;gt; nel frattempo prega&lt;br /&gt;
* Se tutto è andato bene puoi aggiornare il collegamento simbolico a cui fa riferimento &amp;lt;code&amp;gt;mediawiki&amp;lt;/code&amp;gt;&lt;br /&gt;
** rm mediawiki;ln -s mediawiki-&amp;lt;nuova-versione&amp;gt; mediawiki&lt;br /&gt;
* Controlla col browser da desktop e mobile che tutto vada bene&lt;br /&gt;
* crea un archivio tar della cartella mediawiki precedente col seguente comando&lt;br /&gt;
** &amp;lt;code&amp;gt;tar cfvJ mediawiki_$(date &amp;quot;+%F&amp;quot;)-&amp;lt;versione&amp;gt;.tar.xz mediawiki-versione&amp;lt;/code&amp;gt;&lt;br /&gt;
* butta il tar.xz ed il dump del DB nella cartella backups&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato male riporta il link simbolico alla versione precedente e ripristina il DB che hai salvato prima&lt;br /&gt;
&lt;br /&gt;
== Pad ==&lt;br /&gt;
Il pad è abbastanza facile da aggiornare visto che usa git per le releases&lt;br /&gt;
&lt;br /&gt;
* Collegati al server&lt;br /&gt;
* ferma il servizio del pad col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl stop etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
* Diventa l&#039;utente che fa girare il pad&lt;br /&gt;
* Fai un dump del DB col comando&lt;br /&gt;
** mysqldump -u &amp;lt;utente&amp;gt; -p &amp;lt;database&amp;gt; | xz &amp;gt; eigenpad-backup-$(date &amp;quot;+%F&amp;quot;).sql.xz&lt;br /&gt;
* entra nella cartella eigenPad&lt;br /&gt;
* prendi nota della versione attuale del pad con&lt;br /&gt;
** &amp;lt;code&amp;gt;git rev-parse HEAD&amp;lt;/code&amp;gt;&lt;br /&gt;
* aggiorna il pad col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;git pull origin maser&amp;lt;/code&amp;gt; basta questo perchè sul branch master tengono solo le versioni stabili&lt;br /&gt;
* Adesso &#039;&#039;&#039;non&#039;&#039;&#039; far ripartire il servizio normalmente ma esegui invece il comando&lt;br /&gt;
** &amp;lt;code&amp;gt;bin/run.sh&amp;lt;/code&amp;gt; questo perchè questo comando aggiorna eventuali dipendenze, fa pulito della cache ed altri cose utili&lt;br /&gt;
* Se il pad è partito correttamente (può volerci qualche decina di secondi) allora puoi dare &amp;lt;code&amp;gt;Ctrl+c&amp;lt;/code&amp;gt; per interromepere lo script e farlo ripartire con&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl start etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato storto torna al commit da cui sei partito:&lt;br /&gt;
&lt;br /&gt;
* ferma il processo del pad con&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl stop etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
* dentro la cartella del pad esegui&lt;br /&gt;
** &amp;lt;code&amp;gt;git checkout &amp;lt;commit id&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* restora il dump del DB che hai fatto prima&lt;br /&gt;
* fai partire il pad normalmente con&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl start etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud ==&lt;br /&gt;
&lt;br /&gt;
Nextcloud è installata usando git, questo rende supersemplice l&#039;aggiornamento a patto di ricordarsi di fare un po&#039; di passaggi.&lt;br /&gt;
&lt;br /&gt;
Come prima cosa controlla che la nuova versione non abbia requisiti software che il server non soddisfa (php, mysql, ...). Una volta controllato questo è il turno del magico backup.&lt;br /&gt;
&lt;br /&gt;
* Collegati al server&lt;br /&gt;
* Diventa l&#039;utente che fa girare nextcloud col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;sudo -iu nextcloud&amp;lt;/code&amp;gt;&lt;br /&gt;
* Metti nextcloud in modalità di manutenzione così nessunu modificherà il sistema mentre lo usi&lt;br /&gt;
** &amp;lt;code&amp;gt;cd nextcloud/; ./occ maintenance:mode --on&amp;lt;/code&amp;gt;&lt;br /&gt;
* Fai un dump del db (i parametri li trovi in nextcloud/config/config.php) col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;mysqldump -u &amp;lt;utente&amp;gt; -p &amp;lt;dbname&amp;gt; | xz &amp;gt; nextcloud-backup-$(date &amp;quot;+%F&amp;quot;).sql.xz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* entra nella cartella &amp;lt;code&amp;gt;/home/nextcloud/nextcloud&amp;lt;/code&amp;gt;&lt;br /&gt;
* chiedi a git a che commit stai&lt;br /&gt;
** &amp;lt;code&amp;gt;git show&amp;lt;/code&amp;gt; questo servirà in caso qualcosa vada storto&lt;br /&gt;
* Fai un backup delle configurazioni&lt;br /&gt;
** &amp;lt;code&amp;gt;tar cfvJ config-$(date &amp;quot;+%F&amp;quot;).tar.xz config&amp;lt;/code&amp;gt;&lt;br /&gt;
* A questo punto sei prontu per l&#039;aggiornamento&lt;br /&gt;
** &amp;lt;code&amp;gt;cd nextcloud; git fetch;git checkout &amp;lt;laversionechevuoi&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;cd 3rdparty; git fetch;git checkout &amp;lt;lastessaversionediprima&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt; cd nextcloud; ./occ upgrade&amp;lt;/code&amp;gt;&lt;br /&gt;
* Se tutto è andato bene a quest punto puoi dare il comando&lt;br /&gt;
** &amp;lt;code&amp;gt;./occ/maintenance:mode --off&amp;lt;/code&amp;gt;&lt;br /&gt;
* Non è ancora finita: entra nell&#039;interfaccia web e controlla se ci sono aggiornamenti per le app installate oppure se vanno riabilitate alcune app disabilitate durante l&#039;upgrade&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato storto restora il db, ritorna al commit di partenza e spera&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Utente:Svalo/Aggiornamento_Servizi&amp;diff=6617</id>
		<title>Utente:Svalo/Aggiornamento Servizi</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Utente:Svalo/Aggiornamento_Servizi&amp;diff=6617"/>
		<updated>2018-10-16T18:39:25Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Nextcloud */  prima versione&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Un po&#039; di appunti su come aggiornare i servizi che abbiamo.&lt;br /&gt;
&lt;br /&gt;
Come regola generale, quando possibile, fai un backup dei dati e del DB prima di cominciare, meglio se con il servizio fermo così non c&#039;è il rischio che avvengano modifiche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Più in dettaglio le procedure per i diversi servizi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sito ==&lt;br /&gt;
&lt;br /&gt;
* Collegati al server&lt;br /&gt;
* Diventa l&#039;utente che fa girare il sito&lt;br /&gt;
* Nella home ci dovrebbe essere uno script per fare il backup, lancialo&lt;br /&gt;
* Siccome è WP c&#039;è installato un comodo comando che si chiama `wp` per interagire col sito da shell&lt;br /&gt;
* &amp;lt;code&amp;gt;wp plugin list&amp;lt;/code&amp;gt; lista i plugin e lo stato di questi&lt;br /&gt;
* &amp;lt;code&amp;gt;wp core check-status&amp;lt;/code&amp;gt; da lo stato del core di wp&lt;br /&gt;
* &amp;lt;code&amp;gt;wp core &amp;lt;/code&amp;gt; aggiorna wordcodess&lt;br /&gt;
* &amp;lt;code&amp;gt;wp plugin update --all&amp;lt;/code&amp;gt; aggiorna tutti i plugin installati&lt;br /&gt;
* se tutto è andato bene i backup codecedenti a quello fatto prima possono essere tolti&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato storto puoi recuperare i files ed il DB dal backup che hai fatto con lo script&lt;br /&gt;
&lt;br /&gt;
== Wiki ==&lt;br /&gt;
&lt;br /&gt;
Prima di qualsiasi cosa controlla nelle note di versione non ci siano controindicazioni all&#039;aggiornamento tipo versioni non supportate di PHP o plugin non più supportati o che necessitano di aggiornamenti&lt;br /&gt;
&lt;br /&gt;
* COllegati al server&lt;br /&gt;
* diventa l&#039;utente che fa girare il wiki&lt;br /&gt;
* Fai un dump del DB col seguente comando&lt;br /&gt;
**  &amp;lt;code&amp;gt;mysqldump -u &amp;lt;utente&amp;gt; -p &amp;lt;dbname&amp;gt; | xz -z &amp;gt; dump_wiki$(date &amp;quot;+%F&amp;quot;).sql.xz&amp;lt;/code&amp;gt;&lt;br /&gt;
* Scarica l&#039;ultima versione della wiki dal sito&lt;br /&gt;
* estrai la versione aggiornata nella sua cartella con versione&lt;br /&gt;
* copia il file delle impostazioni e delle immagini nella cartella della nuova versione&lt;br /&gt;
** &amp;lt;code&amp;gt;cp mediawiki/LocalSettings.php mediawiki-&amp;lt;nuova-versione&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;rsync -aPh mediawiki/images mediawiki-&amp;lt;nuova-versione&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* controlla quali plugin e skins c&#039;erano nella vecchia installazione e ri-scaricali per la nuova versione. Stanno nella cartella extensions e skins&lt;br /&gt;
** Non copiare la cartella extensions o skins perchè ci sono anche i moduli ed i temi core&lt;br /&gt;
* Entra nella sottocartella maintenance della cartella del nuovo mediawiki&lt;br /&gt;
* Esegui eventuali aggiornamenti dello schema del DB col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;php update.php&amp;lt;/code&amp;gt; nel frattempo prega&lt;br /&gt;
* Se tutto è andato bene puoi aggiornare il collegamento simbolico a cui fa riferimento &amp;lt;code&amp;gt;mediawiki&amp;lt;/code&amp;gt;&lt;br /&gt;
** rm mediawiki;ln -s mediawiki-&amp;lt;nuova-versione&amp;gt; mediawiki&lt;br /&gt;
* Controlla col browser da desktop e mobile che tutto vada bene&lt;br /&gt;
* crea un archivio tar della cartella mediawiki precedente col seguente comando&lt;br /&gt;
** &amp;lt;code&amp;gt;tar cfvJ mediawiki_$(date &amp;quot;+%F&amp;quot;)-&amp;lt;versione&amp;gt;.tar.xz mediawiki-versione&amp;lt;/code&amp;gt;&lt;br /&gt;
* butta il tar.xz ed il dump del DB nella cartella backups&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato male riporta il link simbolico alla versione precedente e ripristina il DB che hai salvato prima&lt;br /&gt;
&lt;br /&gt;
== Pad ==&lt;br /&gt;
Il pad è abbastanza facile da aggiornare visto che usa git per le releases&lt;br /&gt;
&lt;br /&gt;
* Collegati al server&lt;br /&gt;
* ferma il servizio del pad col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl stop etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
* Diventa l&#039;utente che fa girare il pad&lt;br /&gt;
* Fai un dump del DB col comando&lt;br /&gt;
** mysqldump -u &amp;lt;utente&amp;gt; -p &amp;lt;database&amp;gt; | xz &amp;gt; eigenpad-backup-$(date &amp;quot;+%F&amp;quot;).sql.xz&lt;br /&gt;
* entra nella cartella eigenPad&lt;br /&gt;
* prendi nota della versione attuale del pad con&lt;br /&gt;
** &amp;lt;code&amp;gt;git rev-parse HEAD&amp;lt;/code&amp;gt;&lt;br /&gt;
* aggiorna il pad col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;git pull origin maser&amp;lt;/code&amp;gt; basta questo perchè sul branch master tengono solo le versioni stabili&lt;br /&gt;
* Adesso &#039;&#039;&#039;non&#039;&#039;&#039; far ripartire il servizio normalmente ma esegui invece il comando&lt;br /&gt;
** &amp;lt;code&amp;gt;bin/run.sh&amp;lt;/code&amp;gt; questo perchè questo comando aggiorna eventuali dipendenze, fa pulito della cache ed altri cose utili&lt;br /&gt;
* Se il pad è partito correttamente (può volerci qualche decina di secondi) allora puoi dare &amp;lt;code&amp;gt;Ctrl+c&amp;lt;/code&amp;gt; per interromepere lo script e farlo ripartire con&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl start etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato storto torna al commit da cui sei partito:&lt;br /&gt;
&lt;br /&gt;
* ferma il processo del pad con&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl stop etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
* dentro la cartella del pad esegui&lt;br /&gt;
** &amp;lt;code&amp;gt;git checkout &amp;lt;commit id&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* restora il dump del DB che hai fatto prima&lt;br /&gt;
* fai partire il pad normalmente con&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl start etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud ==&lt;br /&gt;
&lt;br /&gt;
Nextcloud è installata usando git, questo rende supersemplice l&#039;aggiornamento a patto di ricordarsi di fare un po&#039; di passaggi.&lt;br /&gt;
&lt;br /&gt;
Come prima cosa controlla che la nuova versione non abbia requisiti software che il server non soddisfa (php, mysql, ...). Una volta controllato questo è il turno del magico backup.&lt;br /&gt;
&lt;br /&gt;
* Collegati al server&lt;br /&gt;
* Diventa l&#039;utente che fa girare nextcloud col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;sudo -iu nextcloud&amp;lt;/code&amp;gt;&lt;br /&gt;
* Metti nextcloud in modalità di manutenzione così nessunu modificherà il sistema mentre lo usi&lt;br /&gt;
** &amp;lt;code&amp;gt;cd nextcloud/; ./occ maintenance:mode --on&amp;lt;/code&amp;gt;&lt;br /&gt;
* Fai un dump del db (i parametri li trovi in nextcloud/config/config.php) col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;mysqldump -u &amp;lt;utente&amp;gt; -p &amp;lt;dbname&amp;gt; | xz &amp;gt; nextcloud-backup-$(date &amp;quot;+%F&amp;quot;).sql.xz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* entra nella cartella &amp;lt;code&amp;gt;/home/nextcloud/nextcloud&amp;lt;/code&amp;gt;&lt;br /&gt;
* chiedi a git a che commit stai&lt;br /&gt;
** &amp;lt;code&amp;gt;git show&amp;lt;/code&amp;gt; questo servirà in caso qualcosa vada storto&lt;br /&gt;
* Fai un backup delle configurazioni&lt;br /&gt;
** &amp;lt;code&amp;gt;tar cfvJ config-$(date &amp;quot;+%F&amp;quot;).tar.xz config&amp;lt;/code&amp;gt;&lt;br /&gt;
* A questo punto sei prontu per l&#039;aggiornamento&lt;br /&gt;
** &amp;lt;code&amp;gt;cd nextcloud; git fetch;git checkout &amp;lt;laversionechevuoi&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;cd 3rdparty; git fetch;git checkout &amp;lt;lastessaversionediprima&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt; cd nextcloud; ./occ upgrade&amp;lt;/code&amp;gt;&lt;br /&gt;
* Se tutto è andato bene a quest punto puoi dare il comando&lt;br /&gt;
** &amp;lt;code&amp;gt;./occ/maintenance:mode --off&amp;lt;/code&amp;gt;&lt;br /&gt;
* Non è ancora finita: entra nell&#039;interfaccia web e controlla se ci sono aggiornamenti per le app installate&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato storto restora il db, ritorna al commit di partenza e spera&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Utente:Svalo/Aggiornamento_Servizi&amp;diff=6601</id>
		<title>Utente:Svalo/Aggiornamento Servizi</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Utente:Svalo/Aggiornamento_Servizi&amp;diff=6601"/>
		<updated>2018-10-06T18:30:44Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Pad */ Istruzioni upgrade-downgrade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Un po&#039; di appunti su come aggiornare i servizi che abbiamo.&lt;br /&gt;
&lt;br /&gt;
Come regola generale, quando possibile, fai un backup dei dati e del DB prima di cominciare, meglio se con il servizio fermo così non c&#039;è il rischio che avvengano modifiche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Più in dettaglio le procedure per i diversi servizi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sito ==&lt;br /&gt;
&lt;br /&gt;
* Collegati al server&lt;br /&gt;
* Diventa l&#039;utente che fa girare il sito&lt;br /&gt;
* Nella home ci dovrebbe essere uno script per fare il backup, lancialo&lt;br /&gt;
* Siccome è WP c&#039;è installato un comodo comando che si chiama `wp` per interagire col sito da shell&lt;br /&gt;
* &amp;lt;code&amp;gt;wp plugin list&amp;lt;/code&amp;gt; lista i plugin e lo stato di questi&lt;br /&gt;
* &amp;lt;code&amp;gt;wp core check-status&amp;lt;/code&amp;gt; da lo stato del core di wp&lt;br /&gt;
* &amp;lt;code&amp;gt;wp core &amp;lt;/code&amp;gt; aggiorna wordcodess&lt;br /&gt;
* &amp;lt;code&amp;gt;wp plugin update --all&amp;lt;/code&amp;gt; aggiorna tutti i plugin installati&lt;br /&gt;
* se tutto è andato bene i backup codecedenti a quello fatto prima possono essere tolti&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato storto puoi recuperare i files ed il DB dal backup che hai fatto con lo script&lt;br /&gt;
&lt;br /&gt;
== Wiki ==&lt;br /&gt;
&lt;br /&gt;
Prima di qualsiasi cosa controlla nelle note di versione non ci siano controindicazioni all&#039;aggiornamento tipo versioni non supportate di PHP o plugin non più supportati o che necessitano di aggiornamenti&lt;br /&gt;
&lt;br /&gt;
* COllegati al server&lt;br /&gt;
* diventa l&#039;utente che fa girare il wiki&lt;br /&gt;
* Fai un dump del DB col seguente comando&lt;br /&gt;
**  &amp;lt;code&amp;gt;mysqldump -u &amp;lt;utente&amp;gt; -p &amp;lt;dbname&amp;gt; | xz -z &amp;gt; dump_wiki$(date &amp;quot;+%F&amp;quot;).sql.xz&amp;lt;/code&amp;gt;&lt;br /&gt;
* Scarica l&#039;ultima versione della wiki dal sito&lt;br /&gt;
* estrai la versione aggiornata nella sua cartella con versione&lt;br /&gt;
* copia il file delle impostazioni e delle immagini nella cartella della nuova versione&lt;br /&gt;
** &amp;lt;code&amp;gt;cp mediawiki/LocalSettings.php mediawiki-&amp;lt;nuova-versione&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;rsync -aPh mediawiki/images mediawiki-&amp;lt;nuova-versione&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* controlla quali plugin e skins c&#039;erano nella vecchia installazione e ri-scaricali per la nuova versione. Stanno nella cartella extensions e skins&lt;br /&gt;
** Non copiare la cartella extensions o skins perchè ci sono anche i moduli ed i temi core&lt;br /&gt;
* Entra nella sottocartella maintenance della cartella del nuovo mediawiki&lt;br /&gt;
* Esegui eventuali aggiornamenti dello schema del DB col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;php update.php&amp;lt;/code&amp;gt; nel frattempo prega&lt;br /&gt;
* Se tutto è andato bene puoi aggiornare il collegamento simbolico a cui fa riferimento &amp;lt;code&amp;gt;mediawiki&amp;lt;/code&amp;gt;&lt;br /&gt;
** rm mediawiki;ln -s mediawiki-&amp;lt;nuova-versione&amp;gt; mediawiki&lt;br /&gt;
* Controlla col browser da desktop e mobile che tutto vada bene&lt;br /&gt;
* crea un archivio tar della cartella mediawiki precedente col seguente comando&lt;br /&gt;
** &amp;lt;code&amp;gt;tar cfvJ mediawiki_$(date &amp;quot;+%F&amp;quot;)-&amp;lt;versione&amp;gt;.tar.xz mediawiki-versione&amp;lt;/code&amp;gt;&lt;br /&gt;
* butta il tar.xz ed il dump del DB nella cartella backups&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato male riporta il link simbolico alla versione precedente e ripristina il DB che hai salvato prima&lt;br /&gt;
&lt;br /&gt;
== Pad ==&lt;br /&gt;
Il pad è abbastanza facile da aggiornare visto che usa git per le releases&lt;br /&gt;
&lt;br /&gt;
* Collegati al server&lt;br /&gt;
* ferma il servizio del pad col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl stop etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
* Diventa l&#039;utente che fa girare il pad&lt;br /&gt;
* Fai un dump del DB col comando&lt;br /&gt;
** mysqldump -u &amp;lt;utente&amp;gt; -p &amp;lt;database&amp;gt; | xz &amp;gt; eigenpad-backup-$(date &amp;quot;+%F&amp;quot;).sql.xz&lt;br /&gt;
* entra nella cartella eigenPad&lt;br /&gt;
* prendi nota della versione attuale del pad con&lt;br /&gt;
** &amp;lt;code&amp;gt;git rev-parse HEAD&amp;lt;/code&amp;gt;&lt;br /&gt;
* aggiorna il pad col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;git pull origin maser&amp;lt;/code&amp;gt; basta questo perchè sul branch master tengono solo le versioni stabili&lt;br /&gt;
* Adesso &#039;&#039;&#039;non&#039;&#039;&#039; far ripartire il servizio normalmente ma esegui invece il comando&lt;br /&gt;
** &amp;lt;code&amp;gt;bin/run.sh&amp;lt;/code&amp;gt; questo perchè questo comando aggiorna eventuali dipendenze, fa pulito della cache ed altri cose utili&lt;br /&gt;
* Se il pad è partito correttamente (può volerci qualche decina di secondi) allora puoi dare &amp;lt;code&amp;gt;Ctrl+c&amp;lt;/code&amp;gt; per interromepere lo script e farlo ripartire con&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl start etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato storto torna al commit da cui sei partito:&lt;br /&gt;
&lt;br /&gt;
* ferma il processo del pad con&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl stop etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
* dentro la cartella del pad esegui&lt;br /&gt;
** &amp;lt;code&amp;gt;git checkout &amp;lt;commit id&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* restora il dump del DB che hai fatto prima&lt;br /&gt;
* fai partire il pad normalmente con&lt;br /&gt;
** &amp;lt;code&amp;gt;systemctl start etherpad-lite&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nextcloud ==&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Utente:Svalo/Aggiornamento_Servizi&amp;diff=6600</id>
		<title>Utente:Svalo/Aggiornamento Servizi</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Utente:Svalo/Aggiornamento_Servizi&amp;diff=6600"/>
		<updated>2018-10-06T18:19:23Z</updated>

		<summary type="html">&lt;p&gt;Svalo: WIP: Creazione pagina aggiornamento servizi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Un po&#039; di appunti su come aggiornare i servizi che abbiamo.&lt;br /&gt;
&lt;br /&gt;
Come regola generale, quando possibile, fai un backup dei dati e del DB prima di cominciare, meglio se con il servizio fermo così non c&#039;è il rischio che avvengano modifiche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Più in dettaglio le procedure per i diversi servizi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sito ==&lt;br /&gt;
&lt;br /&gt;
* Collegati al server&lt;br /&gt;
* Diventa l&#039;utente che fa girare il sito&lt;br /&gt;
* Nella home ci dovrebbe essere uno script per fare il backup, lancialo&lt;br /&gt;
* Siccome è WP c&#039;è installato un comodo comando che si chiama `wp` per interagire col sito da shell&lt;br /&gt;
* &amp;lt;code&amp;gt;wp plugin list&amp;lt;/code&amp;gt; lista i plugin e lo stato di questi&lt;br /&gt;
* &amp;lt;code&amp;gt;wp core check-status&amp;lt;/code&amp;gt; da lo stato del core di wp&lt;br /&gt;
* &amp;lt;code&amp;gt;wp core &amp;lt;/code&amp;gt; aggiorna wordcodess&lt;br /&gt;
* &amp;lt;code&amp;gt;wp plugin update --all&amp;lt;/code&amp;gt; aggiorna tutti i plugin installati&lt;br /&gt;
* se tutto è andato bene i backup codecedenti a quello fatto prima possono essere tolti&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato storto puoi recuperare i files ed il DB dal backup che hai fatto con lo script&lt;br /&gt;
&lt;br /&gt;
== Wiki ==&lt;br /&gt;
&lt;br /&gt;
Prima di qualsiasi cosa controlla nelle note di versione non ci siano controindicazioni all&#039;aggiornamento tipo versioni non supportate di PHP o plugin non più supportati o che necessitano di aggiornamenti&lt;br /&gt;
&lt;br /&gt;
* COllegati al server&lt;br /&gt;
* diventa l&#039;utente che fa girare il wiki&lt;br /&gt;
* Fai un dump del DB col seguente comando&lt;br /&gt;
**  &amp;lt;code&amp;gt;mysqldump -u &amp;lt;utente&amp;gt; -p &amp;lt;dbname&amp;gt; | xz -z &amp;gt; dump_wiki$(date &amp;quot;+%F&amp;quot;).sql.xz&amp;lt;/code&amp;gt;&lt;br /&gt;
* Scarica l&#039;ultima versione della wiki dal sito&lt;br /&gt;
* estrai la versione aggiornata nella sua cartella con versione&lt;br /&gt;
* copia il file delle impostazioni e delle immagini nella cartella della nuova versione&lt;br /&gt;
** &amp;lt;code&amp;gt;cp mediawiki/LocalSettings.php mediawiki-&amp;lt;nuova-versione&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;rsync -aPh mediawiki/images mediawiki-&amp;lt;nuova-versione&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* controlla quali plugin e skins c&#039;erano nella vecchia installazione e ri-scaricali per la nuova versione. Stanno nella cartella extensions e skins&lt;br /&gt;
** Non copiare la cartella extensions o skins perchè ci sono anche i moduli ed i temi core&lt;br /&gt;
* Entra nella sottocartella maintenance della cartella del nuovo mediawiki&lt;br /&gt;
* Esegui eventuali aggiornamenti dello schema del DB col comando&lt;br /&gt;
** &amp;lt;code&amp;gt;php update.php&amp;lt;/code&amp;gt; nel frattempo prega&lt;br /&gt;
* Se tutto è andato bene puoi aggiornare il collegamento simbolico a cui fa riferimento &amp;lt;code&amp;gt;mediawiki&amp;lt;/code&amp;gt;&lt;br /&gt;
** rm mediawiki;ln -s mediawiki-&amp;lt;nuova-versione&amp;gt; mediawiki&lt;br /&gt;
* Controlla col browser da desktop e mobile che tutto vada bene&lt;br /&gt;
* crea un archivio tar della cartella mediawiki precedente col seguente comando&lt;br /&gt;
** &amp;lt;code&amp;gt;tar cfvJ mediawiki_$(date &amp;quot;+%F&amp;quot;)-&amp;lt;versione&amp;gt;.tar.xz mediawiki-versione&amp;lt;/code&amp;gt;&lt;br /&gt;
* butta il tar.xz ed il dump del DB nella cartella backups&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se qualcosa è andato male riporta il link simbolico alla versione precedente e ripristina il DB che hai salvato prima&lt;br /&gt;
&lt;br /&gt;
== Pad ==&lt;br /&gt;
                                                                                                                                                                          &lt;br /&gt;
== Nextcloud ==&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Feinstaubsensor&amp;diff=5010</id>
		<title>Feinstaubsensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Feinstaubsensor&amp;diff=5010"/>
		<updated>2018-05-01T17:48:53Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Mac/Linux */  formattazione&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- introduzione --&amp;gt;&lt;br /&gt;
Traduzione delle [http://luftdaten.info/feinstaubsensor-bauen/ istruzioni] per il montaggio del sensore di polveri sottili.&lt;br /&gt;
&lt;br /&gt;
L&#039;assemblaggio è progettato in modo che tuttu possano partecipare.&lt;br /&gt;
Basta aggiungere qualche articolo da ferramenta alle componenti elettroniche per avere tutto il necessario per costruire una stazione di rilevamento della qualità dell&#039;aria.&lt;br /&gt;
&lt;br /&gt;
== Lista della spesa ==&lt;br /&gt;
# [https://de.aliexpress.com/w/wholesale-nodemcu-v3-esp8266-ch340.html?spm=2114.010208.0.0.2zt6Ca&amp;amp;initiative_id=SB_20170101021508&amp;amp;site=deu&amp;amp;groupsort=1&amp;amp;SortType=price_asc&amp;amp;g=y&amp;amp;SearchText=nodemcu+v3+esp8266+ch340 NodeMCU ESP8266], CPU/WLAN (questo è un chip WLAN con un computer; qua viene installato il firmware)&lt;br /&gt;
# SDS011 sensore polveri sottili (precedentemente PPD42NS) (il sensore SDS011 misura le particelle PM10 e PM2.5)&lt;br /&gt;
# DHT22, temperatura e umidità dell&#039;aria (opzionale)&lt;br /&gt;
# cavetti&lt;br /&gt;
# cavo usb ad esempio: 2m Micro-USB piatto (il collegamento: la corrente su un connettore microUSB e cavo 5V, e la connessione WLAN)&lt;br /&gt;
# alimentatore USB&lt;br /&gt;
# fascette reggi cavi&lt;br /&gt;
# tubo trasparente di 6 mm di spessore (ferramenta)&lt;br /&gt;
# tubo idraulico impermeabile Marley Silent HT (DN 75 87°) (il sensore è alloggiato dentro da due curve di tubo, che lo riparano dalle intemperie)&lt;br /&gt;
&lt;br /&gt;
== Caricare il firmware ==&lt;br /&gt;
 &lt;br /&gt;
=== Introduzione ===&lt;br /&gt;
Non devi programmare, niente paura.&lt;br /&gt;
Abbiamo già programmato il firmware, dovrai solo caricarlo ed installarlo sul [[Esp8266|NodeMCU (ESP8266)]]. Può essere fatto anche da utenti non esperti.&lt;br /&gt;
&lt;br /&gt;
=== Installare il driver USB2Serial ===&lt;br /&gt;
Per comunicare col ESP8266 c&#039;è bisogno del driver usb2serial. Il chipset per i NocdeMCUs è di solito il il CH341: come scritto sul sito del produttore (in cinese)&lt;br /&gt;
 &lt;br /&gt;
* Linux: nessuna installazione necessaria, il chip dovrebbe essere direttamente supportato (puoi verificarlo dando un&#039;occhiata al dmesg).&lt;br /&gt;
* MacOS: per Sierra vedere queste instruzioni che sono state testate: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver&lt;br /&gt;
* Windows: TBA (cercare i driver del produttore)&lt;br /&gt;
* Raspberry Pi: https://github.com/aperepel/raspberrypi-ch340-driver&lt;br /&gt;
&lt;br /&gt;
== Caricare li firmware ==&lt;br /&gt;
Istruzioni per copiare:&lt;br /&gt;
Chi non se la sente guardi i [http://luftdaten.info/faq/ FAQ]. Lì c&#039;è un video tutorial.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attenzione&#039;&#039;&#039;: per la copia del NodeMCU utilizzare un cavo usb con non più di 1m di lunghezza.&lt;br /&gt;
 &lt;br /&gt;
=== Iinstalare il software arduino, caricare il firmware ===&lt;br /&gt;
scaricare il software arduino ed  installarlo sul computer: https://www.arduino.cc/en/Main/Software&lt;br /&gt;
nelle impostazioni, nel campo  &amp;quot;Additional Board Manager URLs&amp;quot; inserire questa URL:  http://arduino.esp8266.com/stable/package_esp8266com_index.json&lt;br /&gt;
sotto &amp;quot;strumenti-&amp;gt;board...-&amp;gt;admin board&amp;quot; cercare esp8266 ed installare „esp8266 by ESP8266 Community“ &lt;br /&gt;
Terminare la IDE Arduino (al termine della flashatura)&lt;br /&gt;
scaricare il firmware italiano https://www.madavi.de/sensor/update/data/latest_fr.bin&lt;br /&gt;
 &lt;br /&gt;
==== Windows ====&lt;br /&gt;
* Aprire la linea di comando o la PowerShell&lt;br /&gt;
* Windows: %USERPROFILE%\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.9\esptool.exe -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp COM11 -cf percorso_ai_dati_firmware_scaricati (la porta dopo -cp deve forse essere cambiata)&lt;br /&gt;
Ad esempio, la porta corretta può essere individuata collegando il NodeMCU e successivamente avviando l&#039;IDE di Arduino. Sotto il menu Tools-&amp;gt;Port dovrebbe essere riportata la porta disponibile; di solito la porta del NodeMCU è facile da riconoscere. In ogni caso, puoi selezionare una porta e successivamente andare su Tools -&amp;gt; Get Board Information, e se la porta selezionata è quella giusta, appariranno il VID e il PID della board; successivamente dovrai riavviare l&#039;IDE di Arduino, perché questa procedura blocca la porta.&lt;br /&gt;
 &lt;br /&gt;
==== Mac/Linux ====&lt;br /&gt;
Aprire un terminale&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 ~/.arduino15/packages/esp8266/tools/esptool/0.4.9/esptool -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp /dev/cu.wchusbserial1410 -cf &amp;lt;percorso_ai_dati_firmware_scaricati &amp;gt;&lt;br /&gt;
&lt;br /&gt;
(la porta dopo -cp deve forse essere cambiata)&lt;br /&gt;
&lt;br /&gt;
MacOS:&lt;br /&gt;
 ~/Library/Arduino15/packages/esp8266/tools/esptool/0.4.9/esptool -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp /dev/cu.wchusbserial1410 -cf &amp;lt;percorso_ai_dati_firmware_scaricati&amp;gt; &lt;br /&gt;
&lt;br /&gt;
(la porta dopo -cp deve forse essere cambiata)&lt;br /&gt;
&lt;br /&gt;
In caso di problemi provare ad eseguire il comando sopra come root. &lt;br /&gt;
&lt;br /&gt;
Dopo deve essere sostituito nel percorso ~/ attraverso la home directory&lt;br /&gt;
&lt;br /&gt;
Ad esempio, la porta corretta può essere individuata collegando il NodeMCU e successivamente avviando l&#039;IDE di Arduino. Sotto il menu Tools-&amp;gt;Port dovrebbe essere riportata la porta disponibile; di solito la porta del NodeMCU è facile da riconoscere. &lt;br /&gt;
&lt;br /&gt;
In ogni caso, puoi selezionare una porta e successivamente andare su Tools -&amp;gt; Get Board Information, e se la porta selezionata è quella giusta, appariranno il VID e il PID della board; successivamente dovrai riavviare l&#039;IDE di Arduino, perché questa procedura blocca la porta.&lt;br /&gt;
&lt;br /&gt;
Esiste uno script per linux in sensors-software/utils/flash/, il quale può cancellare anche una configurazione esistente: https://github.com/opendata-stuttgart/sensors-software/tree/master/utils/flash&lt;br /&gt;
&lt;br /&gt;
== Assemblaggio dell&#039;elettronica ==&lt;br /&gt;
Collegamento delle componenti elettroniche.&lt;br /&gt;
 &lt;br /&gt;
=== Nota imprtante ===&lt;br /&gt;
Prima dell&#039;assemblaggio testare il firmware.&lt;br /&gt;
Se il firmware non dovesse funzionare, non riassemblare tutto. e riduce il pericolo che con [l&#039;attaccare e lo staccare] il cavo usb si perdano delle connessioni.&lt;br /&gt;
 &lt;br /&gt;
=== Assemblaggio ===&lt;br /&gt;
Nota: il nostro manuale si riferisce alla versione 3 del NodeMCU. Questo è riconosciuto dalle connessioni VU e G (vedi il disegno). [Le versioni RSV sono disponibili in queste connessioni]. Per queste versioni possono essere usare le connessioni Vin al posto di VU e GND al posto di G vicino alla connessione microUSB.&lt;br /&gt;
 &lt;br /&gt;
Connessione SDS011&lt;br /&gt;
I pin sono numerati da destra verso sinistra, durante il collegamento fare attenzione che i cavi siano veramente inseriti, poiché la maggior parte dei cavi Dupont sembrano posizionarsi correttamente anche quando non sono ben collegati.&lt;br /&gt;
&lt;br /&gt;
SDS011 Pin 1 -&amp;gt; Pin D1 / GPIO5&lt;br /&gt;
SDS011 Pin 2 -&amp;gt; Pin D2 / GPIO4&lt;br /&gt;
SDS011 Pin 3 -&amp;gt; GND&lt;br /&gt;
SDS011 Pin 4 -&amp;gt; unused&lt;br /&gt;
SDS011 Pin 5 -&amp;gt; VU (NodeMCU v3) / VIN (NodeMCU v1,v2)&lt;br /&gt;
SDS011 Pin 6 -&amp;gt; unused&lt;br /&gt;
SDS011 Pin 7 -&amp;gt; unused&lt;br /&gt;
&lt;br /&gt;
Connessione di DHT22&lt;br /&gt;
I pin sono numerati da SINISTRA verso DESTRA, di fronte c&#039;è la &amp;quot;griglia&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DHT22 Pin 1 -&amp;gt; Pin 3V3 (3.3V)&lt;br /&gt;
DHT22 Pin 2 -&amp;gt; Pin D7 (GPIO13)&lt;br /&gt;
DHT22 Pin 3 -&amp;gt; unused&lt;br /&gt;
DHT22 Pin 4 -&amp;gt; Pin GND&lt;br /&gt;
&lt;br /&gt;
Circuito elettronico&lt;br /&gt;
Il sensore di polveri sottili SDS011 e il sensore di umidità e temperatura DHT22 vengono connessi con dei cavi al chip (NodeMCU).&lt;br /&gt;
 &lt;br /&gt;
=== Connessione dei display e degli altri sensori ===&lt;br /&gt;
Nelle FAQ, alla voce &amp;quot;connettere altri sensori&amp;quot;, c&#039;è una lista di sensori supportati e di display. Qui viene anche descritto come effettuare le connessioni.&lt;br /&gt;
 &lt;br /&gt;
== Completare la stazione di misurazione ==&lt;br /&gt;
I componenti vengono assemblati&lt;br /&gt;
 &lt;br /&gt;
Montaggio finale&lt;br /&gt;
Con la prima fascetta mettere insieme il NodeMCU (ESP8266) ed il sensore SDS011, in modo che l&#039;antenna WLAN punto fuori dal sensore.in modo che l&#039;antenna WLAN sbuchi dal sensore&lt;br /&gt;
Con la seconda fascetta fissare il sensore di temperatura DHT22 al tubo.&lt;br /&gt;
&lt;br /&gt;
Infilare il cavo usb nel tubo&lt;br /&gt;
Montare in modo che il circuito del SDS stia sopra ed il ventilatore sotto. Si Inserisce su un lato del tubo senza una guarnizione di gomma.&lt;br /&gt;
Spingere le parti nel tubo, in modo da agganciare il sensore nel tubo.&lt;br /&gt;
 &lt;br /&gt;
Lasciare che il tubo col cavo USB si veda dalla conduttura.&lt;br /&gt;
Spingere il secondo gomito del tubo verso il primo, facendo attenzione a non pinzare nessun cavo.&lt;br /&gt;
Chiudere il lato aperto della conduttura con una rete, griglia o qualcosa di simile, in modo che l&#039;aria possa circolare ma che gli insetti rimangano fuori.&lt;br /&gt;
&lt;br /&gt;
== Configurazione della stazione di misurazione ==&lt;br /&gt;
Collegare il sensore con la W-LAN&lt;br /&gt;
 &lt;br /&gt;
=== Configurazione del sensore ===&lt;br /&gt;
Connettere la stazione col cavo di alimentazione&lt;br /&gt;
La stazione cerca di connettersi al WLAN-Accesspoint configurato. se non funziona, La stazione apre di default un accesspoint con l&#039;SSID Sensore-ID, dove ID è l&#039;ID del chip (decimale, nell&#039;esempio sotto 13597771).&lt;br /&gt;
Connettersi a questo accesspoint. Aspettare sino a quando la connessione non è stabilita.&lt;br /&gt;
Aprire dal browser la pagina http://192.168.4.1/, dove potrà essere configurato il sensore: [http://192.168.4.1/  –&amp;gt; Configurazione]&lt;br /&gt;
Notare: quando la configurazione del sensore funziona, questa pagina non è più raggiungibile.&lt;br /&gt;
Sotto &amp;quot;Configurazione&amp;quot; inserire SSID e password sella propria rete, e poi salvare&lt;br /&gt;
Per questo sensore di polveri sottili non deve essere cambiato nient&#039;altro, e andranno bene le impostazioni di default.&lt;br /&gt;
Dopo aver salvato, il sensore si riavvierà e quindi non sarà più raggiungibile&lt;br /&gt;
 &lt;br /&gt;
Se non vengono fatti altri cambiamenti, ovviamente oltre a inserire i dati W-LAN, il sensore può essere testato in circa 10 minuti con i seguenti siti. Su queste pagine bisogna ricercare il chipID (nell&#039;esempio sopra 13597771).&lt;br /&gt;
Dati del sensore: http://www.madavi.de/sensor/graph.php&lt;br /&gt;
WLAN-Signal: http://www.madavi.de/sensor/signal.php&lt;br /&gt;
&lt;br /&gt;
=== Ultimo passo ===&lt;br /&gt;
Perché il sensore entri a far parte della rete, abbiamo bisogno di alcune informazioni.&lt;br /&gt;
Scrivi all&#039;indirizzo rajko@codefor.de con i seguenti dati:&lt;br /&gt;
&lt;br /&gt;
* L&#039;ID del tuo ESP8266 (NodeMCU) -&amp;gt; puoi leggerlo dal nome host fornito alla LAN, oppure nella pagina web di configurazione;&lt;br /&gt;
&lt;br /&gt;
* La tua posizione: indirizzo completo di via e numero civico, codice postale e esposizione -&amp;gt; da questo ricaviamo delle coordinate (verranno pubblicate soltanto come posizione approssimativa);&lt;br /&gt;
&lt;br /&gt;
* Il posizionamento della stazione - Come altezza dal suolo, presenza di strade, traffico, spazi liberi;&lt;br /&gt;
&lt;br /&gt;
* Il tuo indirizzo mail (non verrà pubblicato);&lt;br /&gt;
&lt;br /&gt;
* Se possibile, una fotografia del sensore nella sua posizione definitiva (non verrà pubblicata).&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Autoformazione‏‎]]&lt;br /&gt;
[[Categoria:Hardware‏‎]]&lt;br /&gt;
[[Categoria:HowTo‏‎]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4820</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4820"/>
		<updated>2017-10-03T09:06:29Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Dino */ Adatta le istruzioni al codice attuale&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; (&#039;&#039;aka&#039;&#039; &#039;&#039;&#039;Jabber&#039;&#039;&#039;) è un protocollo di chat federato: questo significa che se hai un account registrato su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro. Puoi entrare in contatto con chiunque semplicemente aggiungendo alla tua rubrica il suo &#039;&#039;Jabber ID&#039;&#039;, analogamente a come faresti con un numero di telefono o un indirizzo email.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce sia chat private che di gruppo (dette anche &#039;&#039;&amp;quot;stanze&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039; (Multi-User Chat); queste ultime possono essere pubbliche (mostrate nell&#039;elenco delle MUC disponibili sul server) o private (bisogna conoscere il JID della stanza per poter entrare), protette o meno da password, cifrate o in chiaro, e così via... Molti client offrono una rubrica per i contatti.&lt;br /&gt;
&lt;br /&gt;
Inoltre il protocollo XMPP è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. In questa pagina troverete le istruzioni e guide per alcuni client che abbiamo provato, tra cui [[XMPP#Gajim|Gajim]] (PC) e [[XMPP#Conversations|Conversations]] (Android).&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però due restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt; oppure visita [https://jabber.eigenlab.org/ jabber.eigenlab.org].&lt;br /&gt;
&lt;br /&gt;
Puoi entrare nella chatroom &amp;lt;code&amp;gt;info@conference.eigenlab.org&amp;lt;/code&amp;gt; per chiedere assistenza per l&#039;installazione e la configurazione di un client XMPP, o per qualsiasi altro servizio di eigenLab, o anche semplicemente per scambiare quattro chiacchiere..&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Si può usare XMPP in maniera sicura utilizzando diversi protocolli di cifratura, ma non tutti sono disponibili, affidabili o funzionano bene su tutti i client.&lt;br /&gt;
&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal, permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che non è ancora supportato da tutti i client, ma lo abbiamo testato con successo su [[XMPP#Gajim|Gajim]] (PC), [[XMPP#Conversations|Conversations]] (Android) e [[XMPP#Chatsecure|Chatsecure]] (iOS).&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|miniatura|destra|icona di OMEMO]]&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Gajim ==&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate; è disponibile per i maggiori sistemi PC, per Windows, BSD e [[Linux]], pel quale si trova nei repository ufficiali dei pacchetti di tutte le maggiori distribuzioni.&lt;br /&gt;
Molte persone continuano a contribuire allo sviluppo di Gajim; se vuoi contribuire puoi iniziare a leggere la [https://dev.gajim.org/gajim/gajim/wikis/home wiki] o la [https://dev.gajim.org/gajim/gajim/wikis/development/home pagina per lo sviluppo]&lt;br /&gt;
&lt;br /&gt;
=== Installazione ===&lt;br /&gt;
====Arch====&lt;br /&gt;
Bisogna avere l&#039;AUR abilitato e installare i pacchetti con &amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo gajim-plugin-httpupload python2-qrcode python2-future&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
Bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: apri &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungi al file la riga:&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poi salvarlo e chiuderlo. Dare i comandi&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo aptitude update&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
====Account====&lt;br /&gt;
Aprendo Gajim per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;.&lt;br /&gt;
C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
====Contatti====&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico (ad es. &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt;) per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot;. C&#039;è anche un&#039;altra opzione &amp;quot;rendi Beppe e Anna [https://dev.gajim.org/gajim/gajim/wikis/help/MetaContacts metacontatti]&amp;quot;, che serve per annidare diversi account usati dallo stesso utente sotto un&#039;etichetta comune; se fai per sbaglio un metacontatto e vuoi annullare l&#039;operazione, trascina il contatto più annidato sulla linea di un gruppo nella rubrica (ad esempio &amp;quot;Generale&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi in realtà è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;. Permettersi mutuamente di vedere lo stato è anche un prerequisito per usare OMEMO con Gajim.&lt;br /&gt;
&lt;br /&gt;
====Gruppi====&lt;br /&gt;
Puoi vedere un elenco dei gruppi (pubblicamente accessibili) presenti sul server dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt; e selezionare quelli in cui vuoi entrare.&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;.&lt;br /&gt;
Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot;, Gajim entrerà nella stanza al momento del login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella stanza: &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Chiamate e videochiamate====&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare il pacchetto &amp;lt;code&amp;gt;farstream&amp;lt;/code&amp;gt;, mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Plugin ===&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Di seguito alcuni plugin particolarmente utili:&lt;br /&gt;
* &#039;&#039;&#039;Httpupload&#039;&#039;&#039;: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Url image preview&#039;&#039;&#039;: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
* &#039;&#039;&#039;Client icons&#039;&#039;&#039;: Mostra una icona che rapresenta il client usato nell&#039;elenco dei contatti.&lt;br /&gt;
* &#039;&#039;&#039;Emoticons pack&#039;&#039;&#039;: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
&lt;br /&gt;
Riavviare &#039;&#039;&#039;sempre&#039;&#039;&#039; Gajim dopo aver abilitato o aggiornato i plugin.&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Dopo aver abilitato il plugin OMEMO, Gajim si impallerà qualche secondo per generare le chiavi: non impanicatevi, è normale. Quando avrà finito sarete a un passo dal chattare in sicurezza.&lt;br /&gt;
&lt;br /&gt;
Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce [[File:OmemoGajimFish LowRes.png|inline|baseline]] da cui si può abilitare OMEMO nella chat. &lt;br /&gt;
Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. &lt;br /&gt;
&lt;br /&gt;
Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. una per Conversations sullo smartphone e una per Gajim sul pc. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt; dove è presente anche il QR-code che puoi usare per farti verificare velocemente da chi ha uno smartphone.&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR-code, se si è installato il plugin OMEMO da Gajim, è necessario installare dei pacchetti. Il programma indica solo &amp;quot;python-qrcode&amp;quot;. Su Arch, per avere garanzia di funzionamento, non bisogna installare questo pacchetto ma tutte le dependencies python2-* dalla pagina di [https://aur.archlinux.org/packages/gajim-plugin-omemo/ gajim-plugin-omemo]. Questi pacchetti sono disponibili solo dalla AUR.&lt;br /&gt;
&lt;br /&gt;
===Problemi===&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036 bug tracker]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
==Conversations== &lt;br /&gt;
Il migliore client per Android per numero di XEP integrate, ed è anche piacevole alla vista.&lt;br /&gt;
Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
===Account===&lt;br /&gt;
[[File:ConversationUserPass.jpg|miniatura|sinistra|Inserisci l&#039;ID Jabber e la password e inizia a chattare!]]&lt;br /&gt;
&lt;br /&gt;
Per aggiungere un account devi andare in &amp;lt;code&amp;gt;Menu → Gestisci utenti&amp;lt;/code&amp;gt;: qui troverai un tastino con un omino stilizzato e un più [[File:AddAccount Conversation.jpg|22px|inline|baseline]]. Cliccaci e otterrai una schermata che ti chiede jabberID e password, inseriscili e sei prontu a chattare!&lt;br /&gt;
&lt;br /&gt;
Dal menu &amp;quot;Gestisci utenti&amp;quot; puoi fare una serie di altre opreazioni utili che riguardano il tuo account, come &lt;br /&gt;
* Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
* Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
===Contatti, chat e gruppi===&lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, cliccaci sopra per aprirle, una volta dentro striscia a destra o sinistra per chiuderle.&lt;br /&gt;
&lt;br /&gt;
Se dovessi farlo per errore non preoccuparti: &#039;&#039;&#039;non&#039;&#039;&#039; hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
====Aggiungere contatti ed entrare nei gruppi====&lt;br /&gt;
In alto a destra c&#039;è una icona con un grosso &amp;quot;più&amp;quot;: [[File:ConversationContacts.jpg|22px|inline|baseline]]&lt;br /&gt;
Cliccandoci troverai l&#039;elenco dei contatti e delle MUC; in alto a destra ci sono, nelle rispettive schede, i tasti per aggiungere contatti [[File:AddAccount Conversation.jpg|22px|inline|baseline]] e MUC [[File:ConversationJoinMUC.jpg|22px|inline|baseline]].&lt;br /&gt;
&lt;br /&gt;
====Random settings====&lt;br /&gt;
Conversations di default non mostra se i contatti sono online o meno, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile, rosso=occupato, arancione=assente, grigio=offline.&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
In una chat di gruppo, cliccando su &amp;quot;Dettagli conferenza&amp;quot; è possibile visualizzare l&#039;elenco degli iscritti.&lt;br /&gt;
&lt;br /&gt;
=== OMEMO ===&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. &lt;br /&gt;
&lt;br /&gt;
È buona norma verificare questa fingerprint tramite altro mezzo, tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
====Verifica delle chiavi====&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;. A questo punto si aprirà l&#039;app per fotografare il QR.&amp;lt;ref&amp;gt;I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio. Per aiutare la messa a fuoco può essere anche utile mettersi un po&#039; a giocare con la luminosità dello schermo.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR della propria fingerprint clicca sul tuo avatar oppure vai in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot;, sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. &lt;br /&gt;
&lt;br /&gt;
È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Integrazione in Sailfish OS ===&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. &lt;br /&gt;
&lt;br /&gt;
Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da [http://openrepos.net Warehouse] e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Conversations;chat,chat_exists&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt; e poi selezionare &amp;quot;Mantieni il servizio in primo piano&amp;quot; nelle impostazioni avanzate di Conversations.&lt;br /&gt;
&lt;br /&gt;
==Altri Client==&lt;br /&gt;
===ChatSecure===&lt;br /&gt;
Per iOS (iPhone) esiste [https://chatsecure.org/ ChatSecure], che supporta la cifratura con OMEMO.&lt;br /&gt;
&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, mancano alcune opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
[https://pidgin.im/ Pidgin] è un client la cui comunità di sviluppo è molto partecipata, e che oltre a XMPP supporta i protocolli AIM, Bonjour, Gadu-Gadu, Google Talk, ICQ, IRC, SILC, SIMPLE, Zephyr, e molti altri ancora insieme a una vasta gamma di plugin.&lt;br /&gt;
&lt;br /&gt;
Supporta OMEMO attraverso il plugin SPERIMENTALE [https://github.com/gkdr/lurch Lurch]&lt;br /&gt;
&lt;br /&gt;
===Profanity===&lt;br /&gt;
[http://www.profanity.im/ Profanity] è un client testuale, gira da console con un&#039;interfaccia [http://www.gnu.org/software/ncurses/ ncurses] ed assomiglia molto al client [http://irssi.org/ irssi] per IRC. Su Arch Linux è presente in due pacchetti alternativi &amp;lt;code&amp;gt;profanity&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;profanity-gtk&amp;lt;/code&amp;gt;: il secondo offre solo le notifiche desktop tramite le librerie gtk, e non un&#039;interfaccia grafica (ovviamente).&lt;br /&gt;
&lt;br /&gt;
===Dino===&lt;br /&gt;
[[File:Dino.png|miniatura|destra|Alcuni esempi dell&#039;interfaccia di Dino]]&lt;br /&gt;
[https://github.com/dino/dino Dino] è un client XMPP OpenSource moderno scritto in GTK3 e Vala, è in fase alpha e quindi non considerabile affidabile ma supporta già OMEMO nelle chat 1:1 e le chatroom insieme ad diverse XEPP consultabili [https://github.com/dino/dino/tree/master/xmpp-vala/src/module/xep qui]. Lo sviluppo avanza velocemente&lt;br /&gt;
 &lt;br /&gt;
Nonostante il suo stadio è già abbastanza usabile&lt;br /&gt;
&lt;br /&gt;
==Generare un QR Code con le fingerprint per ogni device==&lt;br /&gt;
Alcuni software, per esempio Conversations, non permettono di verificare completamente un contatto se non scansionando la fingerprint attraverso un QR Code o cliccando su un link xmpp. &lt;br /&gt;
&lt;br /&gt;
Non tutti i client però supportano la generazione di un QR da poter scansionare.&lt;br /&gt;
&lt;br /&gt;
Per ovviare a questo limite di seguito una procedura per generare un QR Code che contenga tutte le fingerprint collegate ad una chiave OMEMO. &lt;br /&gt;
&lt;br /&gt;
I passaggi sono molto Linux specifici&lt;br /&gt;
&lt;br /&gt;
Requisiti:&lt;br /&gt;
* Un terminale&lt;br /&gt;
* sqlite (CLI) o sqlitebrowser (GUI) Per Dino&lt;br /&gt;
* qrencode (CLI) o qualsiasi programma per generare un qrcode&lt;br /&gt;
&lt;br /&gt;
Il QR Code al momento della scrittura contiene la seguente stringa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dove:&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;OTR_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OTR ottenibile dalle informazioni account dei vari client che lo supportano&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;DEVICE_ID&amp;gt;&#039;&#039;&#039; è il device ID, unico per ogni dispositivo o software&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;OMEMO_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OMEMO&lt;br /&gt;
&lt;br /&gt;
A seconda del client il metodo per recuperare le informazioni cambia:&lt;br /&gt;
===Dino===&lt;br /&gt;
Con il comando &lt;br /&gt;
 sqlite3 ~/.local/share/dino/omemo.db  &#039;select device_id from identity&#039;&lt;br /&gt;
Dato da un terminale verranno mostrati tutti gli ID dei devices usati attraverso Dino sul PC&lt;br /&gt;
Altrimenti con sqlitebrowser basta aprire il file &#039;&#039;&#039;~/.local/share/dino/omemo.db&#039;&#039;&#039; e navigare nella tabella identity cercando la colonna &#039;&#039;&#039;device_id&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dalla finestra account a partire dal commit `9840774a87b9d15523ecc04ee4c157270e9abfe5` è possibile vedere e copiare la propria fingerprint così come quella degli altri dispositivi noti.&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin supporta OMEMO &#039;&#039;&#039;sperimentalmente&#039;&#039;&#039; attraverso il plugin [https://github.com/gkdr/lurch Lurch], per ottenere il device id basterà digitare in una finestra di chat il comando &amp;lt;code&amp;gt;/lurch show id own&amp;lt;/code&amp;gt;, mentre per la fingerprint &amp;lt;code&amp;gt;/lurch show fp own&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Gajim===&lt;br /&gt;
Dal menu di impostazioni del plugin OMEMO è possibile vedere gli ID dei propri dispositivi e le proprie fingerprint.&lt;br /&gt;
&lt;br /&gt;
A questo punto è possibile generare il QR Code con le fingerprint con il comando&lt;br /&gt;
&amp;lt;code&amp;gt;qrencode  &amp;quot;xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&amp;quot; -o ~/fingerprints.png&amp;lt;/code&amp;gt;. Il file sarà salvato nella home dell&#039;utente col nome &amp;quot;fingerprints.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
È adesso possibile scansionare il QR con Conversations in modo da avere tutte le proprie fingerprint verificate ed autenticate. Da ora in poi basterà mostrare il QR di conversations che conterrà tutte le fingerprint&lt;br /&gt;
&lt;br /&gt;
== Altre risorse ==&lt;br /&gt;
* [https://we.riseup.net/riseup/xmpp pagina su riseup] che raccoglie qualche considerazione tecnica e discussioni varie.&lt;br /&gt;
* [https://www.youtube.com/watch?v=xwu3xjwyy9M video completo] con la presentazione, spiegazione e discussione del servizio (31 Marzo 2017 a [[Exploit]], [https://eigenlab.org/2017/03/jabber-eigenlab-presentazione-del-servizio/ post] sul sito).&lt;br /&gt;
* [https://dev.gajim.org/gajim/gajim/wikis//KeyboardShortcuts scorciatoie da tastiera] per Gajim.&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;br /&gt;
[[Categoria:Device Mobili]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Discussioni_utente:Svalo&amp;diff=4811</id>
		<title>Discussioni utente:Svalo</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Discussioni_utente:Svalo&amp;diff=4811"/>
		<updated>2017-09-21T08:34:35Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Fantasmi di te */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Io mi pensavo quella pagina come una bozza per tirare giù tutti gli argomenti da trattare e dicutere insieme il modo e la profondità per argomento.&lt;br /&gt;
Chiunque abbia dubbi su *qualsiasi cosa* non si faccia problemi, anche e sopratutto se è qualcosa di cui parliamo spesso.[[Utente:Svalo|Svalo]] ([[Discussioni utente:Svalo|discussioni]]) 09:36, 5 mar 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hai fatto bene, però secondo la prassi di kiwipedia, per le prove si usano sottopagine delle pagine utente, ad esempio Utente:Svalo/eigenGuida , in modo da tenere le discussioni relative all&#039;utente separate dalle pagine di prova (che possono essere più di una, con relative discussioni) --[[Utente:Kiba|Kiba]] ([[Discussioni utente:Kiba|discussioni]]) 19:12, 5 mar 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Fantasmi di te ==&lt;br /&gt;
Fratello, rimettevo a posto tra le pagine speciali e capitando in [[Speciale:IPBloccati]] ho visto che ci sono un tot di blocchi di utenti simili a te.. Che era successo?&lt;br /&gt;
&lt;br /&gt;
Avevo scazzato, non mi ricordo cosa, di sicuro il nome utente. Ho adottato questo e bloccato gli altri. Non so se è la pratica giusta [[Utente:Svalo|Svalo]] ([[Discussioni utente:Svalo|discussioni]]) 10:34, 21 set 2017 (CEST)&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4734</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4734"/>
		<updated>2017-05-31T07:53:48Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Aggiunta immagine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; (&#039;&#039;aka&#039;&#039; &#039;&#039;&#039;Jabber&#039;&#039;&#039;) è un protocollo di chat federato: questo significa che se hai un account registrato su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro. Puoi entrare in contatto con chiunque semplicemente aggiungendo alla tua rubrica il suo &#039;&#039;Jabber ID&#039;&#039;, analogamente a come faresti con un numero di telefono o un indirizzo email.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce sia chat private che di gruppo (dette anche &#039;&#039;&amp;quot;stanze&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039; (Multi-User Chat); queste ultime possono essere pubbliche (mostrate nell&#039;elenco delle MUC disponibili sul server) o private (bisogna conoscere il JID della stanza per poter entrare), protette o meno da password, cifrate o in chiaro, e così via... Molti client offrono una rubrica per i contatti.&lt;br /&gt;
&lt;br /&gt;
Inoltre il protocollo XMPP è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. In questa pagina troverete le istruzioni e guide per alcuni client che abbiamo provato, tra cui [[XMPP#Gajim|Gajim]] (PC) e [[XMPP#Conversations|Conversations]] (Android).&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però due restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt; oppure visita [https://jabber.eigenlab.org/ jabber.eigenlab.org].&lt;br /&gt;
&lt;br /&gt;
Puoi entrare nella chatroom &amp;lt;code&amp;gt;info@conference.eigenlab.org&amp;lt;/code&amp;gt; per chiedere assistenza per l&#039;installazione e la configurazione di un client XMPP, o per qualsiasi altro servizio di eigenLab, o anche semplicemente per scambiare quattro chiacchiere..&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Si può usare XMPP in maniera sicura utilizzando diversi protocolli di cifratura, ma non tutti sono disponibili, affidabili o funzionano bene su tutti i client.&lt;br /&gt;
&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal, permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che non è ancora supportato da tutti i client, ma lo abbiamo testato con successo su [[XMPP#Gajim|Gajim]] (PC), [[XMPP#Conversations|Conversations]] (Android) e [[XMPP#Chatsecure|Chatsecure]] (iOS).&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|miniatura|destra|icona di OMEMO]]&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Gajim ==&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate; è disponibile per i maggiori sistemi PC, per Windows, BSD e [[Linux]], pel quale si trova nei repository ufficiali dei pacchetti di tutte le maggiori distribuzioni.&lt;br /&gt;
Molte persone continuano a contribuire allo sviluppo di Gajim; se vuoi contribuire puoi iniziare a leggere la [https://dev.gajim.org/gajim/gajim/wikis/home wiki] o la [https://dev.gajim.org/gajim/gajim/wikis/development/home pagina per lo sviluppo]&lt;br /&gt;
&lt;br /&gt;
=== Installazione ===&lt;br /&gt;
====Arch====&lt;br /&gt;
Bisogna avere l&#039;AUR abilitato e installare i pacchetti con &amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo gajim-plugin-httpupload python2-qrcode python2-future&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
Bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: apri &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungi al file la riga:&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poi salvarlo e chiuderlo. Dare i comandi&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo aptitude update&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
====Account====&lt;br /&gt;
Aprendo Gajim per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;.&lt;br /&gt;
C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
====Contatti====&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico (ad es. &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt;) per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot;. C&#039;è anche un&#039;altra opzione &amp;quot;rendi Beppe e Anna [https://dev.gajim.org/gajim/gajim/wikis/help/MetaContacts metacontatti]&amp;quot;, che serve per annidare diversi account usati dallo stesso utente sotto un&#039;etichetta comune; se fai per sbaglio un metacontatto e vuoi annullare l&#039;operazione, trascina il contatto più annidato sulla linea di un gruppo nella rubrica (ad esempio &amp;quot;Generale&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi in realtà è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;. Permettersi mutuamente di vedere lo stato è anche un prerequisito per usare OMEMO con Gajim.&lt;br /&gt;
&lt;br /&gt;
====Gruppi====&lt;br /&gt;
Puoi vedere un elenco dei gruppi (pubblicamente accessibili) presenti sul server dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt; e selezionare quelli in cui vuoi entrare.&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;.&lt;br /&gt;
Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot;, Gajim entrerà nella stanza al momento del login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella stanza: &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Chiamate e videochiamate====&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare il pacchetto &amp;lt;code&amp;gt;farstream&amp;lt;/code&amp;gt;, mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Plugin ===&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Di seguito alcuni plugin particolarmente utili:&lt;br /&gt;
* &#039;&#039;&#039;Httpupload&#039;&#039;&#039;: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Url image preview&#039;&#039;&#039;: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
* &#039;&#039;&#039;Client icons&#039;&#039;&#039;: Mostra una icona che rapresenta il client usato nell&#039;elenco dei contatti.&lt;br /&gt;
* &#039;&#039;&#039;Emoticons pack&#039;&#039;&#039;: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
&lt;br /&gt;
Riavviare &#039;&#039;&#039;sempre&#039;&#039;&#039; Gajim dopo aver abilitato o aggiornato i plugin.&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Dopo aver abilitato il plugin OMEMO, Gajim si impallerà qualche secondo per generare le chiavi: non impanicatevi, è normale. Quando avrà finito sarete a un passo dal chattare in sicurezza.&lt;br /&gt;
&lt;br /&gt;
Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce [[File:OmemoGajimFish LowRes.png|inline|baseline]] da cui si può abilitare OMEMO nella chat. &lt;br /&gt;
Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. &lt;br /&gt;
&lt;br /&gt;
Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. una per Conversations sullo smartphone e una per Gajim sul pc. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt; dove è presente anche il QR-code che puoi usare per farti verificare velocemente da chi ha uno smartphone.&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR-code, se si è installato il plugin OMEMO da Gajim, è necessario installare dei pacchetti. Il programma indica solo &amp;quot;python-qrcode&amp;quot;. Su Arch, per avere garanzia di funzionamento, non bisogna installare questo pacchetto ma tutte le dependencies python2-* dalla pagina di [https://aur.archlinux.org/packages/gajim-plugin-omemo/ gajim-plugin-omemo]. Questi pacchetti sono disponibili solo dalla AUR.&lt;br /&gt;
&lt;br /&gt;
===Problemi===&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036 bug tracker]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
==Conversations== &lt;br /&gt;
Il migliore client per Android per numero di XEP integrate, ed è anche piacevole alla vista.&lt;br /&gt;
Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
===Account===&lt;br /&gt;
[[File:ConversationUserPass.jpg|miniatura|sinistra|Inserisci l&#039;ID Jabber e la password e inizia a chattare!]]&lt;br /&gt;
&lt;br /&gt;
Per aggiungere un account devi andare in &amp;lt;code&amp;gt;Menu → Gestisci utenti&amp;lt;/code&amp;gt;: qui troverai un tastino con un omino stilizzato e un più [[File:AddAccount Conversation.jpg|22px|inline|baseline]]. Cliccaci e otterrai una schermata che ti chiede jabberID e password, inseriscili e sei prontu a chattare!&lt;br /&gt;
&lt;br /&gt;
Dal menu &amp;quot;Gestisci utenti&amp;quot; puoi fare una serie di altre opreazioni utili che riguardano il tuo account, come &lt;br /&gt;
* Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
* Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
===Contatti, chat e gruppi===&lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, cliccaci sopra per aprirle, una volta dentro striscia a destra o sinistra per chiuderle.&lt;br /&gt;
&lt;br /&gt;
Se dovessi farlo per errore non preoccuparti: &#039;&#039;&#039;non&#039;&#039;&#039; hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
====Aggiungere contatti ed entrare nei gruppi====&lt;br /&gt;
In alto a destra c&#039;è una icona con un grosso &amp;quot;più&amp;quot;: [[File:ConversationContacts.jpg|22px|inline|baseline]]&lt;br /&gt;
Cliccandoci troverai l&#039;elenco dei contatti e delle MUC; in alto a destra ci sono, nelle rispettive schede, i tasti per aggiungere contatti [[File:AddAccount Conversation.jpg|22px|inline|baseline]] e MUC [[File:ConversationJoinMUC.jpg|22px|inline|baseline]].&lt;br /&gt;
&lt;br /&gt;
====Random settings====&lt;br /&gt;
Conversations di default non mostra se i contatti sono online o meno, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile, rosso=occupato, arancione=assente, grigio=offline.&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
In una chat di gruppo, cliccando su &amp;quot;Dettagli conferenza&amp;quot; è possibile visualizzare l&#039;elenco degli iscritti.&lt;br /&gt;
&lt;br /&gt;
=== OMEMO ===&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. &lt;br /&gt;
&lt;br /&gt;
È buona norma verificare questa fingerprint tramite altro mezzo, tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
====Verifica delle chiavi====&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;. A questo punto si aprirà l&#039;app per fotografare il QR.&amp;lt;ref&amp;gt;I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio. Per aiutare la messa a fuoco può essere anche utile mettersi un po&#039; a giocare con la luminosità dello schermo.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR della propria fingerprint clicca sul tuo avatar oppure vai in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot;, sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. &lt;br /&gt;
&lt;br /&gt;
È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Integrazione in Sailfish OS ===&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. &lt;br /&gt;
&lt;br /&gt;
Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da [http://openrepos.net Warehouse] e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Conversations;chat,chat_exists&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt; e poi selezionare &amp;quot;Mantieni il servizio in primo piano&amp;quot; nelle impostazioni avanzate di Conversations.&lt;br /&gt;
&lt;br /&gt;
==Altri Client==&lt;br /&gt;
===ChatSecure===&lt;br /&gt;
Per iOS (iPhone) esiste [https://chatsecure.org/ ChatSecure], che supporta la cifratura con OMEMO.&lt;br /&gt;
&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, mancano alcune opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
[https://pidgin.im/ Pidgin] è un client la cui comunità di sviluppo è molto partecipata, e che oltre a XMPP supporta i protocolli AIM, Bonjour, Gadu-Gadu, Google Talk, ICQ, IRC, SILC, SIMPLE, Zephyr, e molti altri ancora insieme a una vasta gamma di plugin.&lt;br /&gt;
&lt;br /&gt;
Supporta OMEMO attraverso il plugin SPERIMENTALE [https://github.com/gkdr/lurch Lurch]&lt;br /&gt;
&lt;br /&gt;
===Profanity===&lt;br /&gt;
[http://www.profanity.im/ Profanity] è un client testuale, gira da console con un&#039;interfaccia [http://www.gnu.org/software/ncurses/ ncurses] ed assomiglia molto al client [http://irssi.org/ irssi] per IRC. Su Arch Linux è presente in due pacchetti alternativi &amp;lt;code&amp;gt;profanity&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;profanity-gtk&amp;lt;/code&amp;gt;: il secondo offre solo le notifiche desktop tramite le librerie gtk, e non un&#039;interfaccia grafica (ovviamente).&lt;br /&gt;
&lt;br /&gt;
===Dino===&lt;br /&gt;
[[File:Dino.png|miniatura|destra|Alcuni esempi dell&#039;interfaccia di Dino]]&lt;br /&gt;
[https://github.com/dino/dino Dino] è un client XMPP OpenSource moderno scritto in GTK3 e Vala, è in fase alpha e quindi non considerabile affidabile ma supporta già OMEMO nelle chat 1:1 e le chatroom insieme ad diverse XEPP consultabili [https://github.com/dino/dino/tree/master/xmpp-vala/src/module/xep qui]. Lo sviluppo avanza velocemente&lt;br /&gt;
 &lt;br /&gt;
Nonostante il suo stadio è già abbastanza usabile&lt;br /&gt;
&lt;br /&gt;
==Generare un QR Code con le fingerprint per ogni device==&lt;br /&gt;
Alcuni software, per esempio Conversations, non permettono di verificare completamente un contatto se non scansionando la fingerprint attraverso un QR Code o cliccando su un link xmpp. &lt;br /&gt;
&lt;br /&gt;
Non tutti i client però supportano la generazione di un QR da poter scansionare.&lt;br /&gt;
&lt;br /&gt;
Per ovviare a questo limite di seguito una procedura per generare un QR Code che contenga tutte le fingerprint collegate ad una chiave OMEMO. &lt;br /&gt;
&lt;br /&gt;
I passaggi sono molto Linux specifici&lt;br /&gt;
&lt;br /&gt;
Requisiti:&lt;br /&gt;
* Un terminale&lt;br /&gt;
* sqlite (CLI) o sqlitebrowser (GUI) Per Dino&lt;br /&gt;
* qrencode (CLI) o qualsiasi programma per generare un qrcode&lt;br /&gt;
&lt;br /&gt;
Il QR Code al momento della scrittura contiene la seguente stringa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dove:&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;OTR_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OTR ottenibile dalle informazioni account dei vari client che lo supportano&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;DEVICE_ID&amp;gt;&#039;&#039;&#039; è il device ID, unico per ogni dispositivo o software&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;OMEMO_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OMEMO&lt;br /&gt;
&lt;br /&gt;
A seconda del client il metodo per recuperare le informazioni cambia:&lt;br /&gt;
===Dino===&lt;br /&gt;
Con il comando &lt;br /&gt;
 sqlite3 ~/.local/share/dino/omemo.db  &#039;select device_id from identity&#039;&lt;br /&gt;
Dato da un terminale verranno mostrati tutti gli ID dei devices usati attraverso Dino sul PC&lt;br /&gt;
Altrimenti con sqlitebrowser basta aprire il file &#039;&#039;&#039;~/.local/share/dino/omemo.db&#039;&#039;&#039; e navigare nella tabella identity cercando la colonna &#039;&#039;&#039;device_id&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dalla finestra account invece sarà possibile vedere la fingerprint per ogni account. Per scelta degli sviluppatori non è possibile selezionarla ([https://github.com/dino/dino/issues/32 Issue #32]). &lt;br /&gt;
&lt;br /&gt;
Applicando la seguente patch prima della compilazione sarà possibile invece copiare la fingerprint&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat selectfpr.patch&lt;br /&gt;
diff --git a/plugins/omemo/src/account_settings_widget.vala b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
index bc0be3a..645c0fe 100644&lt;br /&gt;
--- a/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
+++ b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
@@ -15,6 +15,7 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
         fingerprint.xalign = 0;&lt;br /&gt;
         Border border = new Button().get_style_context().get_padding(StateFlags.NORMAL);&lt;br /&gt;
         fingerprint.set_padding(border.left + 1, border.top + 1);&lt;br /&gt;
+        fingerprint.set_selectable(true);&lt;br /&gt;
         fingerprint.visible = true;&lt;br /&gt;
         pack_start(fingerprint);&lt;br /&gt;
 &lt;br /&gt;
@@ -60,4 +61,4 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
-}&lt;br /&gt;
\ No newline at end of file&lt;br /&gt;
+}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin supporta OMEMO &#039;&#039;&#039;sperimentalmente&#039;&#039;&#039; attraverso il plugin [https://github.com/gkdr/lurch Lurch], per ottenere il device id basterà digitare in una finestra di chat il comando &amp;lt;code&amp;gt;/lurch show id own&amp;lt;/code&amp;gt;, mentre per la fingerprint &amp;lt;code&amp;gt;/lurch show fp own&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Gajim===&lt;br /&gt;
Dal menu di impostazioni del plugin OMEMO è possibile vedere gli ID dei propri dispositivi e le proprie fingerprint.&lt;br /&gt;
&lt;br /&gt;
A questo punto è possibile generare il QR Code con le fingerprint con il comando&lt;br /&gt;
&amp;lt;code&amp;gt;qrencode  &amp;quot;xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&amp;quot; -o ~/fingerprints.png&amp;lt;/code&amp;gt;. Il file sarà salvato nella home dell&#039;utente col nome &amp;quot;fingerprints.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
È adesso possibile scansionare il QR con Conversations in modo da avere tutte le proprie fingerprint verificate ed autenticate. Da ora in poi basterà mostrare il QR di conversations che conterrà tutte le fingerprint&lt;br /&gt;
&lt;br /&gt;
== Altre risorse ==&lt;br /&gt;
* [https://we.riseup.net/riseup/xmpp pagina su riseup] che raccoglie qualche considerazione tecnica e discussioni varie.&lt;br /&gt;
* [https://www.youtube.com/watch?v=xwu3xjwyy9M video completo] con la presentazione, spiegazione e discussione del servizio (31 Marzo 2017 a [[Exploit]], [https://eigenlab.org/2017/03/jabber-eigenlab-presentazione-del-servizio/ post] sul sito).&lt;br /&gt;
* [https://dev.gajim.org/gajim/gajim/wikis//KeyboardShortcuts scorciatoie da tastiera] per Gajim.&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;br /&gt;
[[Categoria:Device Mobili]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=File:Dino.png&amp;diff=4733</id>
		<title>File:Dino.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=File:Dino.png&amp;diff=4733"/>
		<updated>2017-05-31T07:51:50Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Image taken from github dino page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image taken from github dino page&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4732</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4732"/>
		<updated>2017-05-31T07:48:08Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Dino */  Updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; (&#039;&#039;aka&#039;&#039; &#039;&#039;&#039;Jabber&#039;&#039;&#039;) è un protocollo di chat federato: questo significa che se hai un account registrato su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro. Puoi entrare in contatto con chiunque semplicemente aggiungendo alla tua rubrica il suo &#039;&#039;Jabber ID&#039;&#039;, analogamente a come faresti con un numero di telefono o un indirizzo email.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce sia chat private che di gruppo (dette anche &#039;&#039;&amp;quot;stanze&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039; (Multi-User Chat); queste ultime possono essere pubbliche (mostrate nell&#039;elenco delle MUC disponibili sul server) o private (bisogna conoscere il JID della stanza per poter entrare), protette o meno da password, cifrate o in chiaro, e così via... Molti client offrono una rubrica per i contatti.&lt;br /&gt;
&lt;br /&gt;
Inoltre il protocollo XMPP è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. In questa pagina troverete le istruzioni e guide per alcuni client che abbiamo provato, tra cui [[XMPP#Gajim|Gajim]] (PC) e [[XMPP#Conversations|Conversations]] (Android).&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però due restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt; oppure visita [https://jabber.eigenlab.org/ jabber.eigenlab.org].&lt;br /&gt;
&lt;br /&gt;
Puoi entrare nella chatroom &amp;lt;code&amp;gt;info@conference.eigenlab.org&amp;lt;/code&amp;gt; per chiedere assistenza per l&#039;installazione e la configurazione di un client XMPP, o per qualsiasi altro servizio di eigenLab, o anche semplicemente per scambiare quattro chiacchiere..&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Si può usare XMPP in maniera sicura utilizzando diversi protocolli di cifratura, ma non tutti sono disponibili, affidabili o funzionano bene su tutti i client.&lt;br /&gt;
&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal, permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che non è ancora supportato da tutti i client, ma lo abbiamo testato con successo su [[XMPP#Gajim|Gajim]] (PC), [[XMPP#Conversations|Conversations]] (Android) e [[XMPP#Chatsecure|Chatsecure]] (iOS).&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|miniatura|destra|icona di OMEMO]]&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Gajim ==&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate; è disponibile per i maggiori sistemi PC, per Windows, BSD e [[Linux]], pel quale si trova nei repository ufficiali dei pacchetti di tutte le maggiori distribuzioni.&lt;br /&gt;
Molte persone continuano a contribuire allo sviluppo di Gajim; se vuoi contribuire puoi iniziare a leggere la [https://dev.gajim.org/gajim/gajim/wikis/home wiki] o la [https://dev.gajim.org/gajim/gajim/wikis/development/home pagina per lo sviluppo]&lt;br /&gt;
&lt;br /&gt;
=== Installazione ===&lt;br /&gt;
====Arch====&lt;br /&gt;
Bisogna avere l&#039;AUR abilitato e installare i pacchetti con &amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo gajim-plugin-httpupload python2-qrcode python2-future&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
Bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: apri &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungi al file la riga:&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poi salvarlo e chiuderlo. Dare i comandi&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo aptitude update&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
====Account====&lt;br /&gt;
Aprendo Gajim per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;.&lt;br /&gt;
C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
====Contatti====&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico (ad es. &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt;) per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot;. C&#039;è anche un&#039;altra opzione &amp;quot;rendi Beppe e Anna [https://dev.gajim.org/gajim/gajim/wikis/help/MetaContacts metacontatti]&amp;quot;, che serve per annidare diversi account usati dallo stesso utente sotto un&#039;etichetta comune; se fai per sbaglio un metacontatto e vuoi annullare l&#039;operazione, trascina il contatto più annidato sulla linea di un gruppo nella rubrica (ad esempio &amp;quot;Generale&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi in realtà è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;. Permettersi mutuamente di vedere lo stato è anche un prerequisito per usare OMEMO con Gajim.&lt;br /&gt;
&lt;br /&gt;
====Gruppi====&lt;br /&gt;
Puoi vedere un elenco dei gruppi (pubblicamente accessibili) presenti sul server dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt; e selezionare quelli in cui vuoi entrare.&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;.&lt;br /&gt;
Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot;, Gajim entrerà nella stanza al momento del login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella stanza: &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Chiamate e videochiamate====&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare il pacchetto &amp;lt;code&amp;gt;farstream&amp;lt;/code&amp;gt;, mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Plugin ===&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Di seguito alcuni plugin particolarmente utili:&lt;br /&gt;
* &#039;&#039;&#039;Httpupload&#039;&#039;&#039;: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Url image preview&#039;&#039;&#039;: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
* &#039;&#039;&#039;Client icons&#039;&#039;&#039;: Mostra una icona che rapresenta il client usato nell&#039;elenco dei contatti.&lt;br /&gt;
* &#039;&#039;&#039;Emoticons pack&#039;&#039;&#039;: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
&lt;br /&gt;
Riavviare &#039;&#039;&#039;sempre&#039;&#039;&#039; Gajim dopo aver abilitato o aggiornato i plugin.&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Dopo aver abilitato il plugin OMEMO, Gajim si impallerà qualche secondo per generare le chiavi: non impanicatevi, è normale. Quando avrà finito sarete a un passo dal chattare in sicurezza.&lt;br /&gt;
&lt;br /&gt;
Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce [[File:OmemoGajimFish LowRes.png|inline|baseline]] da cui si può abilitare OMEMO nella chat. &lt;br /&gt;
Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. &lt;br /&gt;
&lt;br /&gt;
Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. una per Conversations sullo smartphone e una per Gajim sul pc. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt; dove è presente anche il QR-code che puoi usare per farti verificare velocemente da chi ha uno smartphone.&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR-code, se si è installato il plugin OMEMO da Gajim, è necessario installare dei pacchetti. Il programma indica solo &amp;quot;python-qrcode&amp;quot;. Su Arch, per avere garanzia di funzionamento, non bisogna installare questo pacchetto ma tutte le dependencies python2-* dalla pagina di [https://aur.archlinux.org/packages/gajim-plugin-omemo/ gajim-plugin-omemo]. Questi pacchetti sono disponibili solo dalla AUR.&lt;br /&gt;
&lt;br /&gt;
===Problemi===&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036 bug tracker]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
==Conversations== &lt;br /&gt;
Il migliore client per Android per numero di XEP integrate, ed è anche piacevole alla vista.&lt;br /&gt;
Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
===Account===&lt;br /&gt;
[[File:ConversationUserPass.jpg|miniatura|sinistra|Inserisci l&#039;ID Jabber e la password e inizia a chattare!]]&lt;br /&gt;
&lt;br /&gt;
Per aggiungere un account devi andare in &amp;lt;code&amp;gt;Menu → Gestisci utenti&amp;lt;/code&amp;gt;: qui troverai un tastino con un omino stilizzato e un più [[File:AddAccount Conversation.jpg|22px|inline|baseline]]. Cliccaci e otterrai una schermata che ti chiede jabberID e password, inseriscili e sei prontu a chattare!&lt;br /&gt;
&lt;br /&gt;
Dal menu &amp;quot;Gestisci utenti&amp;quot; puoi fare una serie di altre opreazioni utili che riguardano il tuo account, come &lt;br /&gt;
* Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
* Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
===Contatti, chat e gruppi===&lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, cliccaci sopra per aprirle, una volta dentro striscia a destra o sinistra per chiuderle.&lt;br /&gt;
&lt;br /&gt;
Se dovessi farlo per errore non preoccuparti: &#039;&#039;&#039;non&#039;&#039;&#039; hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
====Aggiungere contatti ed entrare nei gruppi====&lt;br /&gt;
In alto a destra c&#039;è una icona con un grosso &amp;quot;più&amp;quot;: [[File:ConversationContacts.jpg|22px|inline|baseline]]&lt;br /&gt;
Cliccandoci troverai l&#039;elenco dei contatti e delle MUC; in alto a destra ci sono, nelle rispettive schede, i tasti per aggiungere contatti [[File:AddAccount Conversation.jpg|22px|inline|baseline]] e MUC [[File:ConversationJoinMUC.jpg|22px|inline|baseline]].&lt;br /&gt;
&lt;br /&gt;
====Random settings====&lt;br /&gt;
Conversations di default non mostra se i contatti sono online o meno, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile, rosso=occupato, arancione=assente, grigio=offline.&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
In una chat di gruppo, cliccando su &amp;quot;Dettagli conferenza&amp;quot; è possibile visualizzare l&#039;elenco degli iscritti.&lt;br /&gt;
&lt;br /&gt;
=== OMEMO ===&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. &lt;br /&gt;
&lt;br /&gt;
È buona norma verificare questa fingerprint tramite altro mezzo, tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
====Verifica delle chiavi====&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;. A questo punto si aprirà l&#039;app per fotografare il QR.&amp;lt;ref&amp;gt;I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio. Per aiutare la messa a fuoco può essere anche utile mettersi un po&#039; a giocare con la luminosità dello schermo.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR della propria fingerprint clicca sul tuo avatar oppure vai in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot;, sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. &lt;br /&gt;
&lt;br /&gt;
È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Integrazione in Sailfish OS ===&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. &lt;br /&gt;
&lt;br /&gt;
Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da [http://openrepos.net Warehouse] e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Conversations;chat,chat_exists&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt; e poi selezionare &amp;quot;Mantieni il servizio in primo piano&amp;quot; nelle impostazioni avanzate di Conversations.&lt;br /&gt;
&lt;br /&gt;
==Altri Client==&lt;br /&gt;
===ChatSecure===&lt;br /&gt;
Per iOS (iPhone) esiste [https://chatsecure.org/ ChatSecure], che supporta la cifratura con OMEMO.&lt;br /&gt;
&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, mancano alcune opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
[https://pidgin.im/ Pidgin] è un client la cui comunità di sviluppo è molto partecipata, e che oltre a XMPP supporta i protocolli AIM, Bonjour, Gadu-Gadu, Google Talk, ICQ, IRC, SILC, SIMPLE, Zephyr, e molti altri ancora insieme a una vasta gamma di plugin.&lt;br /&gt;
&lt;br /&gt;
Supporta OMEMO attraverso il plugin SPERIMENTALE [https://github.com/gkdr/lurch Lurch]&lt;br /&gt;
&lt;br /&gt;
===Profanity===&lt;br /&gt;
[http://www.profanity.im/ Profanity] è un client testuale, gira da console con un&#039;interfaccia [http://www.gnu.org/software/ncurses/ ncurses] ed assomiglia molto al client [http://irssi.org/ irssi] per IRC. Su Arch Linux è presente in due pacchetti alternativi &amp;lt;code&amp;gt;profanity&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;profanity-gtk&amp;lt;/code&amp;gt;: il secondo offre solo le notifiche desktop tramite le librerie gtk, e non un&#039;interfaccia grafica (ovviamente).&lt;br /&gt;
&lt;br /&gt;
===Dino===&lt;br /&gt;
[https://github.com/dino/dino Dino] è un client XMPP OpenSource moderno scritto in GTK3 e Vala, è in fase alpha e quindi non considerabile affidabile ma supporta già OMEMO nelle chat 1:1 e le chatroom insieme ad diverse XEPP consultabili [https://github.com/dino/dino/tree/master/xmpp-vala/src/module/xep qui]. Lo sviluppo avanza velocemente&lt;br /&gt;
 &lt;br /&gt;
Nonostante il suo stadio è già abbastanza usabile&lt;br /&gt;
&lt;br /&gt;
==Generare un QR Code con le fingerprint per ogni device==&lt;br /&gt;
Alcuni software, per esempio Conversations, non permettono di verificare completamente un contatto se non scansionando la fingerprint attraverso un QR Code o cliccando su un link xmpp. &lt;br /&gt;
&lt;br /&gt;
Non tutti i client però supportano la generazione di un QR da poter scansionare.&lt;br /&gt;
&lt;br /&gt;
Per ovviare a questo limite di seguito una procedura per generare un QR Code che contenga tutte le fingerprint collegate ad una chiave OMEMO. &lt;br /&gt;
&lt;br /&gt;
I passaggi sono molto Linux specifici&lt;br /&gt;
&lt;br /&gt;
Requisiti:&lt;br /&gt;
* Un terminale&lt;br /&gt;
* sqlite (CLI) o sqlitebrowser (GUI) Per Dino&lt;br /&gt;
* qrencode (CLI) o qualsiasi programma per generare un qrcode&lt;br /&gt;
&lt;br /&gt;
Il QR Code al momento della scrittura contiene la seguente stringa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dove:&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;OTR_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OTR ottenibile dalle informazioni account dei vari client che lo supportano&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;DEVICE_ID&amp;gt;&#039;&#039;&#039; è il device ID, unico per ogni dispositivo o software&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;OMEMO_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OMEMO&lt;br /&gt;
&lt;br /&gt;
A seconda del client il metodo per recuperare le informazioni cambia:&lt;br /&gt;
===Dino===&lt;br /&gt;
Con il comando &lt;br /&gt;
 sqlite3 ~/.local/share/dino/omemo.db  &#039;select device_id from identity&#039;&lt;br /&gt;
Dato da un terminale verranno mostrati tutti gli ID dei devices usati attraverso Dino sul PC&lt;br /&gt;
Altrimenti con sqlitebrowser basta aprire il file &#039;&#039;&#039;~/.local/share/dino/omemo.db&#039;&#039;&#039; e navigare nella tabella identity cercando la colonna &#039;&#039;&#039;device_id&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dalla finestra account invece sarà possibile vedere la fingerprint per ogni account. Per scelta degli sviluppatori non è possibile selezionarla ([https://github.com/dino/dino/issues/32 Issue #32]). &lt;br /&gt;
&lt;br /&gt;
Applicando la seguente patch prima della compilazione sarà possibile invece copiare la fingerprint&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat selectfpr.patch&lt;br /&gt;
diff --git a/plugins/omemo/src/account_settings_widget.vala b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
index bc0be3a..645c0fe 100644&lt;br /&gt;
--- a/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
+++ b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
@@ -15,6 +15,7 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
         fingerprint.xalign = 0;&lt;br /&gt;
         Border border = new Button().get_style_context().get_padding(StateFlags.NORMAL);&lt;br /&gt;
         fingerprint.set_padding(border.left + 1, border.top + 1);&lt;br /&gt;
+        fingerprint.set_selectable(true);&lt;br /&gt;
         fingerprint.visible = true;&lt;br /&gt;
         pack_start(fingerprint);&lt;br /&gt;
 &lt;br /&gt;
@@ -60,4 +61,4 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
-}&lt;br /&gt;
\ No newline at end of file&lt;br /&gt;
+}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin supporta OMEMO &#039;&#039;&#039;sperimentalmente&#039;&#039;&#039; attraverso il plugin [https://github.com/gkdr/lurch Lurch], per ottenere il device id basterà digitare in una finestra di chat il comando &amp;lt;code&amp;gt;/lurch show id own&amp;lt;/code&amp;gt;, mentre per la fingerprint &amp;lt;code&amp;gt;/lurch show fp own&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Gajim===&lt;br /&gt;
Dal menu di impostazioni del plugin OMEMO è possibile vedere gli ID dei propri dispositivi e le proprie fingerprint.&lt;br /&gt;
&lt;br /&gt;
A questo punto è possibile generare il QR Code con le fingerprint con il comando&lt;br /&gt;
&amp;lt;code&amp;gt;qrencode  &amp;quot;xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&amp;quot; -o ~/fingerprints.png&amp;lt;/code&amp;gt;. Il file sarà salvato nella home dell&#039;utente col nome &amp;quot;fingerprints.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
È adesso possibile scansionare il QR con Conversations in modo da avere tutte le proprie fingerprint verificate ed autenticate. Da ora in poi basterà mostrare il QR di conversations che conterrà tutte le fingerprint&lt;br /&gt;
&lt;br /&gt;
== Altre risorse ==&lt;br /&gt;
* [https://we.riseup.net/riseup/xmpp pagina su riseup] che raccoglie qualche considerazione tecnica e discussioni varie.&lt;br /&gt;
* [https://www.youtube.com/watch?v=xwu3xjwyy9M video completo] con la presentazione, spiegazione e discussione del servizio (31 Marzo 2017 a [[Exploit]], [https://eigenlab.org/2017/03/jabber-eigenlab-presentazione-del-servizio/ post] sul sito).&lt;br /&gt;
* [https://dev.gajim.org/gajim/gajim/wikis//KeyboardShortcuts scorciatoie da tastiera] per Gajim.&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;br /&gt;
[[Categoria:Device Mobili]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4727</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4727"/>
		<updated>2017-05-14T07:38:05Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Generare un QR Code con le fingerprint per ogni device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; (&#039;&#039;aka&#039;&#039; &#039;&#039;&#039;Jabber&#039;&#039;&#039;) è un protocollo di chat federato: questo significa che se hai un account registrato su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro. Puoi entrare in contatto con chiunque semplicemente aggiungendo alla tua rubrica il suo &#039;&#039;Jabber ID&#039;&#039;, analogamente a come faresti con un numero di telefono o un indirizzo email.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce sia chat private che di gruppo (dette anche &#039;&#039;&amp;quot;stanze&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039; (Multi-User Chat); queste ultime possono essere pubbliche (mostrate nell&#039;elenco delle MUC disponibili sul server) o private (bisogna conoscere il JID della stanza per poter entrare), protette o meno da password, cifrate o in chiaro, e così via... Molti client offrono una rubrica per i contatti.&lt;br /&gt;
&lt;br /&gt;
Inoltre il protocollo XMPP è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. In questa pagina troverete le istruzioni e guide per alcuni client che abbiamo provato, tra cui [[XMPP#Gajim|Gajim]] (PC) e [[XMPP#Conversations|Conversations]] (Android).&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però due restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt; oppure visita [https://jabber.eigenlab.org/ jabber.eigenlab.org].&lt;br /&gt;
&lt;br /&gt;
Puoi entrare nella chatroom &amp;lt;code&amp;gt;info@conference.eigenlab.org&amp;lt;/code&amp;gt; per chiedere assistenza per l&#039;installazione e la configurazione di un client XMPP, o per qualsiasi altro servizio di eigenLab, o anche semplicemente per scambiare quattro chiacchiere..&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Si può usare XMPP in maniera sicura utilizzando diversi protocolli di cifratura, ma non tutti sono disponibili, affidabili o funzionano bene su tutti i client.&lt;br /&gt;
&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal, permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che non è ancora supportato da tutti i client, ma lo abbiamo testato con successo su [[XMPP#Gajim|Gajim]] (PC), [[XMPP#Conversations|Conversations]] (Android) e [[XMPP#Chatsecure|Chatsecure]] (iOS).&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|miniatura|destra|l&#039;icona a fesciolino di OMEMO]]&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Gajim ==&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate; è disponibile per i maggiori sistemi PC, per Windows, BSD e [[Linux]], pel quale si trova nei repository ufficiali dei pacchetti di tutte le maggiori distribuzioni.&lt;br /&gt;
Molte persone continuano a contribuire allo sviluppo di Gajim; se vuoi contribuire puoi iniziare a leggere la [https://dev.gajim.org/gajim/gajim/wikis/home wiki] o la [https://dev.gajim.org/gajim/gajim/wikis/development/home pagina per lo sviluppo]&lt;br /&gt;
&lt;br /&gt;
=== Installazione ===&lt;br /&gt;
====Arch====&lt;br /&gt;
Bisogna avere l&#039;AUR abilitato e installare i pacchetti con &amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo gajim-plugin-httpupload python2-qrcode python2-future&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
Bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: apri &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungi al file la riga:&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poi salvarlo e chiuderlo. Dare i comandi&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo aptitude update&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
====Account====&lt;br /&gt;
Aprendo Gajim per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;.&lt;br /&gt;
C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
====Contatti====&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico (ad es. &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt;) per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot;. C&#039;è anche un&#039;altra opzione &amp;quot;rendi Beppe e Anna [https://dev.gajim.org/gajim/gajim/wikis/help/MetaContacts metacontatti]&amp;quot;, che serve per annidare diversi account usati dallo stesso utente sotto un&#039;etichetta comune; se fai per sbaglio un metacontatto e vuoi annullare l&#039;operazione, trascina il contatto più annidato sulla linea di un gruppo nella rubrica (ad esempio &amp;quot;Generale&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi in realtà è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;. Permettersi mutuamente di vedere lo stato è anche un prerequisito per usare OMEMO con Gajim.&lt;br /&gt;
&lt;br /&gt;
====Gruppi====&lt;br /&gt;
Puoi vedere un elenco dei gruppi (pubblicamente accessibili) presenti sul server dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt; e selezionare quelli in cui vuoi entrare.&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;.&lt;br /&gt;
Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot;, Gajim entrerà nella stanza al momento del login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella stanza: &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Chiamate e videochiamate====&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare il pacchetto &amp;lt;code&amp;gt;farstream&amp;lt;/code&amp;gt;, mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Plugin ===&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Di seguito alcuni plugin particolarmente utili:&lt;br /&gt;
* &#039;&#039;&#039;Httpupload&#039;&#039;&#039;: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Url image preview&#039;&#039;&#039;: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
* &#039;&#039;&#039;Client icons&#039;&#039;&#039;: Mostra una icona che rapresenta il client usato nell&#039;elenco dei contatti.&lt;br /&gt;
* &#039;&#039;&#039;Emoticons pack&#039;&#039;&#039;: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
&lt;br /&gt;
Riavviare &#039;&#039;&#039;sempre&#039;&#039;&#039; Gajim dopo aver abilitato o aggiornato i plugin.&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Dopo aver abilitato il plugin OMEMO, Gajim si impallerà qualche secondo per generare le chiavi: non impanicatevi, è normale. Quando avrà finito sarete a un passo dal chattare in sicurezza.&lt;br /&gt;
&lt;br /&gt;
Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce [[File:OmemoGajimFish LowRes.png|inline|baseline]] da cui si può abilitare OMEMO nella chat. &lt;br /&gt;
Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. &lt;br /&gt;
&lt;br /&gt;
Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. una per Conversations sullo smartphone e una per Gajim sul pc. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt; dove è presente anche il QR-code che puoi usare per farti verificare velocemente da chi ha uno smartphone.&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR-code, se si è installato il plugin OMEMO da Gajim, è necessario installare dei pacchetti. Il programma indica solo &amp;quot;python-qrcode&amp;quot;. Su Arch, per avere garanzia di funzionamento, non bisogna installare questo pacchetto ma tutte le dependencies python2-* dalla pagina di [https://aur.archlinux.org/packages/gajim-plugin-omemo/ gajim-plugin-omemo]. Questi pacchetti sono disponibili solo dalla AUR.&lt;br /&gt;
&lt;br /&gt;
=== Problemi ===&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
== Conversations== &lt;br /&gt;
Il migliore client per Android per numero di XEP integrate, ed è anche piacevole alla vista.&lt;br /&gt;
Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
===Account===&lt;br /&gt;
[[File:ConversationUserPass.jpg|miniatura|sinistra|Inserisci l&#039;ID Jabber e la password e inizia a chattare!]]&lt;br /&gt;
&lt;br /&gt;
Per aggiungere un account devi andare in &amp;lt;code&amp;gt;Menu → Gestisci utenti&amp;lt;/code&amp;gt;: qui troverai un tastino con un omino stilizzato e un più [[File:AddAccount Conversation.jpg|22px|inline|baseline]]. Cliccaci e otterrai una schermata che ti chiede jabberID e password, inseriscili e sei prontu a chattare!&lt;br /&gt;
&lt;br /&gt;
Dal menu &amp;quot;Gestisci utenti&amp;quot; puoi fare una serie di altre opreazioni utili che riguardano il tuo account, come &lt;br /&gt;
* Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
* Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
===Contatti, chat e gruppi===&lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, cliccaci sopra per aprirle, una volta dentro striscia a destra o sinistra per chiuderle.&lt;br /&gt;
&lt;br /&gt;
Se dovessi farlo per errore non preoccuparti: &#039;&#039;&#039;non&#039;&#039;&#039; hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
====Aggiungere contatti ed entrare nei gruppi====&lt;br /&gt;
In alto a destra c&#039;è una icona con un grosso &amp;quot;più&amp;quot;: [[File:ConversationContacts.jpg|22px|inline|baseline]]&lt;br /&gt;
Cliccandoci troverai l&#039;elenco dei contatti e delle MUC; in alto a destra ci sono, nelle rispettive schede, i tasti per aggiungere contatti [[File:AddAccount Conversation.jpg|22px|inline|baseline]] e MUC [[File:ConversationJoinMUC.jpg|22px|inline|baseline]].&lt;br /&gt;
&lt;br /&gt;
====Random settings====&lt;br /&gt;
Conversations di default non mostra se i contatti sono online o meno, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile, rosso=occupato, arancione=assente, grigio=offline.&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
In una chat di gruppo, cliccando su &amp;quot;Dettagli conferenza&amp;quot; è possibile visualizzare l&#039;elenco degli iscritti.&lt;br /&gt;
&lt;br /&gt;
=== OMEMO ===&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. &lt;br /&gt;
&lt;br /&gt;
È buona norma verificare questa fingerprint tramite altro mezzo, tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
====Verifica delle chiavi====&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;. A questo punto si aprirà l&#039;app per fotografare il QR.&amp;lt;ref&amp;gt;I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio. Per aiutare la messa a fuoco può essere anche utile mettersi un po&#039; a giocare con la luminosità dello schermo.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR della propria fingerprint clicca sul tuo avatar oppure vai in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot;, sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. &lt;br /&gt;
&lt;br /&gt;
È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Integrazione in Sailfish OS ===&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. &lt;br /&gt;
&lt;br /&gt;
Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da [http://openrepos.net Warehouse] e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Conversations;chat,chat_exists&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt; e poi selezionare &amp;quot;Mantieni il servizio in primo piano&amp;quot; nelle impostazioni avanzate di Conversations.&lt;br /&gt;
&lt;br /&gt;
==Altri Client==&lt;br /&gt;
===ChatSecure===&lt;br /&gt;
Per iOS (iPhone) esiste [https://chatsecure.org/ ChatSecure], che supporta la cifratura con OMEMO.&lt;br /&gt;
&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, mancano alcune opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
[https://pidgin.im/ Pidgin] è un client la cui comunità di sviluppo è molto partecipata, e che oltre a XMPP supporta i protocolli AIM, Bonjour, Gadu-Gadu, Google Talk, ICQ, IRC, SILC, SIMPLE, Zephyr, e molti altri ancora insieme a una vasta gamma di plugin.&lt;br /&gt;
&lt;br /&gt;
Supporta OMEMO attraverso il plugin SPERIMENTALE [https://github.com/gkdr/lurch Lurch]&lt;br /&gt;
&lt;br /&gt;
===Profanity===&lt;br /&gt;
[http://www.profanity.im/ Profanity] è un client testuale, gira da console con un&#039;interfaccia [http://www.gnu.org/software/ncurses/ ncurses] ed assomiglia molto al client [http://irssi.org/ irssi] per IRC. Su Arch Linux è presente in due pacchetti alternativi &amp;lt;code&amp;gt;profanity&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;profanity-gtk&amp;lt;/code&amp;gt;: il secondo offre solo le notifiche desktop tramite le librerie gtk, e non un&#039;interfaccia grafica (ovviamente).&lt;br /&gt;
&lt;br /&gt;
===Dino===&lt;br /&gt;
[https://github.com/dino/dino Dino] è un client XMPP moderno scritto in GTK3 e Vala, è in fase alpha e quindi non considerabile affidabile ma supporta già OMEMO nelle chat 1:1 e le chatroom, non supporta le carbon copies e nemmeno le chat di gruppo cifrate. Nonostante il suo stadio è già semi-usabile &lt;br /&gt;
&lt;br /&gt;
=Generare un QR Code con le fingerprint per ogni device=&lt;br /&gt;
Alcuni software, per esempio Conversations, non permettono di verificare completamente un contatto se non scansionando la fingerprint attraverso un QR Code o cliccando su un link xmpp. &lt;br /&gt;
&lt;br /&gt;
Non tutti i client però supportano la generazione di un QR da poter scansionare.&lt;br /&gt;
&lt;br /&gt;
Per ovviare a questo limite di seguito una procedura per generare un QR Code che contenga tutte le fingerprint collegate ad una chiave OMEMO. &lt;br /&gt;
&lt;br /&gt;
I passaggi sono molto Linux specifici&lt;br /&gt;
&lt;br /&gt;
Requisiti:&lt;br /&gt;
* Un terminale&lt;br /&gt;
* sqlite (CLI) o sqlitebrowser (GUI) Per Dino&lt;br /&gt;
* qrencode (CLI) o qualsiasi programma per generare un qrcode&lt;br /&gt;
&lt;br /&gt;
Il QR Code al momento della scrittura contiene la seguente stringa:&lt;br /&gt;
 xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dove:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;OTR_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OTR ottenibile dalle informazioni account dei vari client che lo supportano&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;DEVICE_ID&amp;gt;&#039;&#039;&#039; è il device ID, unico per ogni dispositivo o software&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;OMEMO_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OMEMO&lt;br /&gt;
&lt;br /&gt;
A seconda del client il metodo per recuperare le informazioni cambia:&lt;br /&gt;
==Dino==&lt;br /&gt;
Con il comando &lt;br /&gt;
 sqlite3 ~/.local/share/dino/omemo.db  &#039;select device_id from identity&#039;&lt;br /&gt;
Dato da un terminale verranno mostrati tutti gli ID dei devices usati attraverso Dino sul PC&lt;br /&gt;
Altrimenti con sqlitebrowser basta aprire il file &#039;&#039;&#039;~/.local/share/dino/omemo.db&#039;&#039;&#039; e navigare nella tabella identity cercando la colonna &#039;&#039;&#039;device_id&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dalla finestra account invece sarà possibile vedere la fingerprint per ogni account. Per scelta degli sviluppatori non è possibile selezionarla [https://github.com/dino/dino/issues/32 Issue #32]. &lt;br /&gt;
&lt;br /&gt;
Applicando la seguente patch prima della compilazione sarà possibile invece copiare la fingerprint&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat selectfpr.patch&lt;br /&gt;
diff --git a/plugins/omemo/src/account_settings_widget.vala b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
index bc0be3a..645c0fe 100644&lt;br /&gt;
--- a/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
+++ b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
@@ -15,6 +15,7 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
         fingerprint.xalign = 0;&lt;br /&gt;
         Border border = new Button().get_style_context().get_padding(StateFlags.NORMAL);&lt;br /&gt;
         fingerprint.set_padding(border.left + 1, border.top + 1);&lt;br /&gt;
+        fingerprint.set_selectable(true);&lt;br /&gt;
         fingerprint.visible = true;&lt;br /&gt;
         pack_start(fingerprint);&lt;br /&gt;
 &lt;br /&gt;
@@ -60,4 +61,4 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
-}&lt;br /&gt;
\ No newline at end of file&lt;br /&gt;
+}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pidgin==&lt;br /&gt;
Pidgin supporta OMEMO SPERIMENTALMENTE attraverso il plugin [https://github.com/gkdr/lurch Lurch], per ottenere il device id basterà digitare in una finestra di chat il comando&lt;br /&gt;
 /lurch show id own&lt;br /&gt;
Mentre per la fingerprint  &lt;br /&gt;
 /lurch show fp own&lt;br /&gt;
&lt;br /&gt;
==Gajim==&lt;br /&gt;
Dal menu di impostazioni del plugin OMEMO è possibile vedere gli ID dei propri dispositivi e le proprie fingerprint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A questo punto è possibile generare il QR Code con le fingerprint con il comando&lt;br /&gt;
 qrencode  &amp;quot;xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&amp;quot; -o ~/fingerprints.png&lt;br /&gt;
&lt;br /&gt;
Il file sarà salvato nella home dell&#039;utente col nome fingerprints.png&lt;br /&gt;
&lt;br /&gt;
È adesso possibile scansionare il QR con Conversations in modo da avere tutte le proprie fingerprint verificate ed autenticate. Da ora in poi basterà mostrare il QR di conversations che conterrà tutte le fingerprint&lt;br /&gt;
&lt;br /&gt;
= Altre risorse =&lt;br /&gt;
* [https://we.riseup.net/riseup/xmpp pagina su riseup] che raccoglie qualche considerazione tecnica e discussioni varie.&lt;br /&gt;
* [https://www.youtube.com/watch?v=xwu3xjwyy9M video completo] con la presentazione, spiegazione e discussione del servizio (31 Marzo 2017 a [[Exploit]], [https://eigenlab.org/2017/03/jabber-eigenlab-presentazione-del-servizio/ post] sul sito).&lt;br /&gt;
&lt;br /&gt;
=Note=&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;br /&gt;
[[Categoria:Device Mobili]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4726</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4726"/>
		<updated>2017-05-13T22:32:48Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Dino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; (&#039;&#039;aka&#039;&#039; &#039;&#039;&#039;Jabber&#039;&#039;&#039;) è un protocollo di chat federato: questo significa che se hai un account registrato su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro. Puoi entrare in contatto con chiunque semplicemente aggiungendo alla tua rubrica il suo &#039;&#039;Jabber ID&#039;&#039;, analogamente a come faresti con un numero di telefono o un indirizzo email.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce sia chat private che di gruppo (dette anche &#039;&#039;&amp;quot;stanze&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039; (Multi-User Chat); queste ultime possono essere pubbliche (mostrate nell&#039;elenco delle MUC disponibili sul server) o private (bisogna conoscere il JID della stanza per poter entrare), protette o meno da password, cifrate o in chiaro, e così via... Molti client offrono una rubrica per i contatti.&lt;br /&gt;
&lt;br /&gt;
Inoltre il protocollo XMPP è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. In questa pagina troverete le istruzioni e guide per alcuni client che abbiamo provato, tra cui [[XMPP#Gajim|Gajim]] (PC) e [[XMPP#Conversations|Conversations]] (Android).&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però due restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt; oppure visita [https://jabber.eigenlab.org/ jabber.eigenlab.org].&lt;br /&gt;
&lt;br /&gt;
Puoi entrare nella chatroom &amp;lt;code&amp;gt;info@conference.eigenlab.org&amp;lt;/code&amp;gt; per chiedere assistenza per l&#039;installazione e la configurazione di un client XMPP, o per qualsiasi altro servizio di eigenLab, o anche semplicemente per scambiare quattro chiacchiere..&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Si può usare XMPP in maniera sicura utilizzando diversi protocolli di cifratura, ma non tutti sono disponibili, affidabili o funzionano bene su tutti i client.&lt;br /&gt;
&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal, permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che non è ancora supportato da tutti i client, ma lo abbiamo testato con successo su [[XMPP#Gajim|Gajim]] (PC), [[XMPP#Conversations|Conversations]] (Android) e [[XMPP#Chatsecure|Chatsecure]] (iOS).&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|miniatura|destra|l&#039;icona a fesciolino di OMEMO]]&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Gajim ==&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate; è disponibile per i maggiori sistemi PC, per Windows, BSD e [[Linux]], pel quale si trova nei repository ufficiali dei pacchetti di tutte le maggiori distribuzioni.&lt;br /&gt;
Molte persone continuano a contribuire allo sviluppo di Gajim; se vuoi contribuire puoi iniziare a leggere la [https://dev.gajim.org/gajim/gajim/wikis/home wiki] o la [https://dev.gajim.org/gajim/gajim/wikis/development/home pagina per lo sviluppo]&lt;br /&gt;
&lt;br /&gt;
=== Installazione ===&lt;br /&gt;
====Arch====&lt;br /&gt;
Bisogna avere l&#039;AUR abilitato e installare i pacchetti con &amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo gajim-plugin-httpupload python2-qrcode python2-future&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
Bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: apri &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungi al file la riga:&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poi salvarlo e chiuderlo. Dare i comandi&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo aptitude update&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
====Account====&lt;br /&gt;
Aprendo Gajim per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;.&lt;br /&gt;
C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
====Contatti====&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico (ad es. &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt;) per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot;. C&#039;è anche un&#039;altra opzione &amp;quot;rendi Beppe e Anna [https://dev.gajim.org/gajim/gajim/wikis/help/MetaContacts metacontatti]&amp;quot;, che serve per annidare diversi account usati dallo stesso utente sotto un&#039;etichetta comune; se fai per sbaglio un metacontatto e vuoi annullare l&#039;operazione, trascina il contatto più annidato sulla linea di un gruppo nella rubrica (ad esempio &amp;quot;Generale&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi in realtà è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;. Permettersi mutuamente di vedere lo stato è anche un prerequisito per usare OMEMO con Gajim.&lt;br /&gt;
&lt;br /&gt;
====Gruppi====&lt;br /&gt;
Puoi vedere un elenco dei gruppi (pubblicamente accessibili) presenti sul server dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt; e selezionare quelli in cui vuoi entrare.&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;.&lt;br /&gt;
Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot;, Gajim entrerà nella stanza al momento del login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella stanza: &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Chiamate e videochiamate====&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare il pacchetto &amp;lt;code&amp;gt;farstream&amp;lt;/code&amp;gt;, mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Plugin ===&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Di seguito alcuni plugin particolarmente utili:&lt;br /&gt;
* &#039;&#039;&#039;Httpupload&#039;&#039;&#039;: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Url image preview&#039;&#039;&#039;: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
* &#039;&#039;&#039;Client icons&#039;&#039;&#039;: Mostra una icona che rapresenta il client usato nell&#039;elenco dei contatti.&lt;br /&gt;
* &#039;&#039;&#039;Emoticons pack&#039;&#039;&#039;: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
&lt;br /&gt;
Riavviare &#039;&#039;&#039;sempre&#039;&#039;&#039; Gajim dopo aver abilitato o aggiornato i plugin.&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Dopo aver abilitato il plugin OMEMO, Gajim si impallerà qualche secondo per generare le chiavi: non impanicatevi, è normale. Quando avrà finito sarete a un passo dal chattare in sicurezza.&lt;br /&gt;
&lt;br /&gt;
Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce [[File:OmemoGajimFish LowRes.png|inline|baseline]] da cui si può abilitare OMEMO nella chat. &lt;br /&gt;
Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. &lt;br /&gt;
&lt;br /&gt;
Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. una per Conversations sullo smartphone e una per Gajim sul pc. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt; dove è presente anche il QR-code che puoi usare per farti verificare velocemente da chi ha uno smartphone.&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR-code, se si è installato il plugin OMEMO da Gajim, è necessario installare dei pacchetti. Il programma indica solo &amp;quot;python-qrcode&amp;quot;. Su Arch, per avere garanzia di funzionamento, non bisogna installare questo pacchetto ma tutte le dependencies python2-* dalla pagina di [https://aur.archlinux.org/packages/gajim-plugin-omemo/ gajim-plugin-omemo]. Questi pacchetti sono disponibili solo dalla AUR.&lt;br /&gt;
&lt;br /&gt;
=== Problemi ===&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
== Conversations== &lt;br /&gt;
Il migliore client per Android per numero di XEP integrate, ed è anche piacevole alla vista.&lt;br /&gt;
Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
===Account===&lt;br /&gt;
[[File:ConversationUserPass.jpg|miniatura|sinistra|Inserisci l&#039;ID Jabber e la password e inizia a chattare!]]&lt;br /&gt;
&lt;br /&gt;
Per aggiungere un account devi andare in &amp;lt;code&amp;gt;Menu → Gestisci utenti&amp;lt;/code&amp;gt;: qui troverai un tastino con un omino stilizzato e un più [[File:AddAccount Conversation.jpg|22px|inline|baseline]]. Cliccaci e otterrai una schermata che ti chiede jabberID e password, inseriscili e sei prontu a chattare!&lt;br /&gt;
&lt;br /&gt;
Dal menu &amp;quot;Gestisci utenti&amp;quot; puoi fare una serie di altre opreazioni utili che riguardano il tuo account, come &lt;br /&gt;
* Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
* Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
===Contatti, chat e gruppi===&lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, cliccaci sopra per aprirle, una volta dentro striscia a destra o sinistra per chiuderle.&lt;br /&gt;
&lt;br /&gt;
Se dovessi farlo per errore non preoccuparti: &#039;&#039;&#039;non&#039;&#039;&#039; hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
====Aggiungere contatti ed entrare nei gruppi====&lt;br /&gt;
In alto a destra c&#039;è una icona con un grosso &amp;quot;più&amp;quot;: [[File:ConversationContacts.jpg|22px|inline|baseline]]&lt;br /&gt;
Cliccandoci troverai l&#039;elenco dei contatti e delle MUC; in alto a destra ci sono, nelle rispettive schede, i tasti per aggiungere contatti [[File:AddAccount Conversation.jpg|22px|inline|baseline]] e MUC [[File:ConversationJoinMUC.jpg|22px|inline|baseline]].&lt;br /&gt;
&lt;br /&gt;
====Random settings====&lt;br /&gt;
Conversations di default non mostra se i contatti sono online o meno, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile, rosso=occupato, arancione=assente, grigio=offline.&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
In una chat di gruppo, cliccando su &amp;quot;Dettagli conferenza&amp;quot; è possibile visualizzare l&#039;elenco degli iscritti.&lt;br /&gt;
&lt;br /&gt;
=== OMEMO ===&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. &lt;br /&gt;
&lt;br /&gt;
È buona norma verificare questa fingerprint tramite altro mezzo, tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
====Verifica delle chiavi====&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;. A questo punto si aprirà l&#039;app per fotografare il QR.&amp;lt;ref&amp;gt;I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio. Per aiutare la messa a fuoco può essere anche utile mettersi un po&#039; a giocare con la luminosità dello schermo.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR della propria fingerprint clicca sul tuo avatar oppure vai in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot;, sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. &lt;br /&gt;
&lt;br /&gt;
È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Integrazione in Sailfish OS ===&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. &lt;br /&gt;
&lt;br /&gt;
Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da [http://openrepos.net Warehouse] e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Conversations;chat,chat_exists&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt; e poi selezionare &amp;quot;Mantieni il servizio in primo piano&amp;quot; nelle impostazioni avanzate di Conversations.&lt;br /&gt;
&lt;br /&gt;
==Altri Client==&lt;br /&gt;
===ChatSecure===&lt;br /&gt;
Per iOS (iPhone) esiste [https://chatsecure.org/ ChatSecure], che supporta la cifratura con OMEMO.&lt;br /&gt;
&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, mancano alcune opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
[https://pidgin.im/ Pidgin] è un client la cui comunità di sviluppo è molto partecipata, e che oltre a XMPP supporta i protocolli AIM, Bonjour, Gadu-Gadu, Google Talk, ICQ, IRC, SILC, SIMPLE, Zephyr, e molti altri ancora insieme a una vasta gamma di plugin.&lt;br /&gt;
&lt;br /&gt;
Supporta OMEMO attraverso il plugin SPERIMENTALE [https://github.com/gkdr/lurch Lurch]&lt;br /&gt;
&lt;br /&gt;
===Profanity===&lt;br /&gt;
[http://www.profanity.im/ Profanity] è un client testuale, gira da console con un&#039;interfaccia [http://www.gnu.org/software/ncurses/ ncurses] ed assomiglia molto al client [http://irssi.org/ irssi] per IRC. Su Arch Linux è presente in due pacchetti alternativi &amp;lt;code&amp;gt;profanity&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;profanity-gtk&amp;lt;/code&amp;gt;: il secondo offre solo le notifiche desktop tramite le librerie gtk, e non un&#039;interfaccia grafica (ovviamente).&lt;br /&gt;
&lt;br /&gt;
===Dino===&lt;br /&gt;
[https://github.com/dino/dino Dino] è un client XMPP moderno scritto in GTK3 e Vala, è in fase alpha e quindi non considerabile affidabile ma supporta già OMEMO nelle chat 1:1 e le chatroom, non supporta le carbon copies e nemmeno le chat di gruppo cifrate. Nonostante il suo stadio è già semi-usabile &lt;br /&gt;
&lt;br /&gt;
=Generare un QR Code con le fingerprint per ogni device=&lt;br /&gt;
Alcuni software, per esempio Conversations, non permettono di verificare completamente un contatto se non scansionando la fingerprint attraverso un QR Code o cliccando su un link. &lt;br /&gt;
&lt;br /&gt;
Non tutti i client però supportano la generazione di un QR da poter scansionare.&lt;br /&gt;
&lt;br /&gt;
Per ovviare a questo limite di seguito una procedura per generare un QR Code che contenga tutte le fingerprint collegate ad una chiave OMEMO. &lt;br /&gt;
&lt;br /&gt;
I passaggi sono molto Linux specifici&lt;br /&gt;
&lt;br /&gt;
Requisiti:&lt;br /&gt;
* Un terminale&lt;br /&gt;
* sqlite (CLI) o sqlitebrowser (GUI) Per Dino&lt;br /&gt;
* qrencode (CLI) o qualsiasi programma per generare un qrcode&lt;br /&gt;
&lt;br /&gt;
Il QR Code al momento della scrittura contiene la seguente stringa:&lt;br /&gt;
 xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dove:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;OTR_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OTR&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;DEVICE_ID&amp;gt;&#039;&#039;&#039; è il device ID, unico per ogni dispositivo o software&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;OMEMO_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OMEMO&lt;br /&gt;
&lt;br /&gt;
A seconda del client il metodo per recuperare le informazioni cambia:&lt;br /&gt;
==Dino==&lt;br /&gt;
Con il comando &lt;br /&gt;
 sqlite3 ~/.local/share/dino/omemo.db  &#039;select device_id from identity&#039;&lt;br /&gt;
Dato da un terminale verranno mostrati tutti gli ID dei devices usati attraverso Dino sul PC&lt;br /&gt;
&lt;br /&gt;
Dalla finestra account invece sarà possibile vedere la fingerprint per ogni account. Per scelta degli sviluppatori non è possibile selezionarla [https://github.com/dino/dino/issues/32 Issue #32]. &lt;br /&gt;
&lt;br /&gt;
Applicando la seguente patch prima della compilazione sarà possibile invece copiare la fingerprint&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat selectfpr.patch&lt;br /&gt;
diff --git a/plugins/omemo/src/account_settings_widget.vala b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
index bc0be3a..645c0fe 100644&lt;br /&gt;
--- a/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
+++ b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
@@ -15,6 +15,7 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
         fingerprint.xalign = 0;&lt;br /&gt;
         Border border = new Button().get_style_context().get_padding(StateFlags.NORMAL);&lt;br /&gt;
         fingerprint.set_padding(border.left + 1, border.top + 1);&lt;br /&gt;
+        fingerprint.set_selectable(true);&lt;br /&gt;
         fingerprint.visible = true;&lt;br /&gt;
         pack_start(fingerprint);&lt;br /&gt;
 &lt;br /&gt;
@@ -60,4 +61,4 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
-}&lt;br /&gt;
\ No newline at end of file&lt;br /&gt;
+}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pidgin==&lt;br /&gt;
Pidgin supporta OMEMO SPERIMENTALMENTE attraverso il plugin [https://github.com/gkdr/lurch Lurch], per ottenere il device id basterà digitare in una finestra di chat il comando&lt;br /&gt;
 /lurch show id own&lt;br /&gt;
Mentre per la fingerprint  &lt;br /&gt;
 /lurch show fp own&lt;br /&gt;
&lt;br /&gt;
==Gajim==&lt;br /&gt;
Dal menu di impostazioni del plugin OMEMO è possibile vedere gli ID dei propri dispositivi e le proprie fingerprint.&lt;br /&gt;
&lt;br /&gt;
A questo punto è possibile generare il QR Code con le fingerprint con il comando&lt;br /&gt;
 qrencode  &amp;quot;xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&amp;quot; -o ~/fingerprints.png&lt;br /&gt;
&lt;br /&gt;
È adesso possibile scansionare il QR con Conversations in modo da avere tutte le proprie fingerprint verificate ed autenticate. Da ora in poi basterà mostrare il QR di conversations che conterrà tutte le fingerprint&lt;br /&gt;
 &lt;br /&gt;
= Altre risorse =&lt;br /&gt;
* [https://we.riseup.net/riseup/xmpp pagina su riseup] che raccoglie qualche considerazione tecnica e discussioni varie.&lt;br /&gt;
* [https://www.youtube.com/watch?v=xwu3xjwyy9M video completo] con la presentazione, spiegazione e discussione del servizio (31 Marzo 2017 a [[Exploit]], [https://eigenlab.org/2017/03/jabber-eigenlab-presentazione-del-servizio/ post] sul sito).&lt;br /&gt;
&lt;br /&gt;
=Note=&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;br /&gt;
[[Categoria:Device Mobili]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4725</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4725"/>
		<updated>2017-05-13T22:29:27Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Aggiunge le istruzioni per generare un qrcode con tutte le fpr&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; (&#039;&#039;aka&#039;&#039; &#039;&#039;&#039;Jabber&#039;&#039;&#039;) è un protocollo di chat federato: questo significa che se hai un account registrato su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro. Puoi entrare in contatto con chiunque semplicemente aggiungendo alla tua rubrica il suo &#039;&#039;Jabber ID&#039;&#039;, analogamente a come faresti con un numero di telefono o un indirizzo email.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce sia chat private che di gruppo (dette anche &#039;&#039;&amp;quot;stanze&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039; (Multi-User Chat); queste ultime possono essere pubbliche (mostrate nell&#039;elenco delle MUC disponibili sul server) o private (bisogna conoscere il JID della stanza per poter entrare), protette o meno da password, cifrate o in chiaro, e così via... Molti client offrono una rubrica per i contatti.&lt;br /&gt;
&lt;br /&gt;
Inoltre il protocollo XMPP è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. In questa pagina troverete le istruzioni e guide per alcuni client che abbiamo provato, tra cui [[XMPP#Gajim|Gajim]] (PC) e [[XMPP#Conversations|Conversations]] (Android).&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però due restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt; oppure visita [https://jabber.eigenlab.org/ jabber.eigenlab.org].&lt;br /&gt;
&lt;br /&gt;
Puoi entrare nella chatroom &amp;lt;code&amp;gt;info@conference.eigenlab.org&amp;lt;/code&amp;gt; per chiedere assistenza per l&#039;installazione e la configurazione di un client XMPP, o per qualsiasi altro servizio di eigenLab, o anche semplicemente per scambiare quattro chiacchiere..&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Si può usare XMPP in maniera sicura utilizzando diversi protocolli di cifratura, ma non tutti sono disponibili, affidabili o funzionano bene su tutti i client.&lt;br /&gt;
&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal, permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che non è ancora supportato da tutti i client, ma lo abbiamo testato con successo su [[XMPP#Gajim|Gajim]] (PC), [[XMPP#Conversations|Conversations]] (Android) e [[XMPP#Chatsecure|Chatsecure]] (iOS).&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|miniatura|destra|l&#039;icona a fesciolino di OMEMO]]&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Gajim ==&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate; è disponibile per i maggiori sistemi PC, per Windows, BSD e [[Linux]], pel quale si trova nei repository ufficiali dei pacchetti di tutte le maggiori distribuzioni.&lt;br /&gt;
Molte persone continuano a contribuire allo sviluppo di Gajim; se vuoi contribuire puoi iniziare a leggere la [https://dev.gajim.org/gajim/gajim/wikis/home wiki] o la [https://dev.gajim.org/gajim/gajim/wikis/development/home pagina per lo sviluppo]&lt;br /&gt;
&lt;br /&gt;
=== Installazione ===&lt;br /&gt;
====Arch====&lt;br /&gt;
Bisogna avere l&#039;AUR abilitato e installare i pacchetti con &amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo gajim-plugin-httpupload python2-qrcode python2-future&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
Bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: apri &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungi al file la riga:&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poi salvarlo e chiuderlo. Dare i comandi&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo aptitude update&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
====Account====&lt;br /&gt;
Aprendo Gajim per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;.&lt;br /&gt;
C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
====Contatti====&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico (ad es. &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt;) per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot;. C&#039;è anche un&#039;altra opzione &amp;quot;rendi Beppe e Anna [https://dev.gajim.org/gajim/gajim/wikis/help/MetaContacts metacontatti]&amp;quot;, che serve per annidare diversi account usati dallo stesso utente sotto un&#039;etichetta comune; se fai per sbaglio un metacontatto e vuoi annullare l&#039;operazione, trascina il contatto più annidato sulla linea di un gruppo nella rubrica (ad esempio &amp;quot;Generale&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi in realtà è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;. Permettersi mutuamente di vedere lo stato è anche un prerequisito per usare OMEMO con Gajim.&lt;br /&gt;
&lt;br /&gt;
====Gruppi====&lt;br /&gt;
Puoi vedere un elenco dei gruppi (pubblicamente accessibili) presenti sul server dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt; e selezionare quelli in cui vuoi entrare.&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;.&lt;br /&gt;
Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot;, Gajim entrerà nella stanza al momento del login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella stanza: &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Chiamate e videochiamate====&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare il pacchetto &amp;lt;code&amp;gt;farstream&amp;lt;/code&amp;gt;, mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Plugin ===&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Di seguito alcuni plugin particolarmente utili:&lt;br /&gt;
* &#039;&#039;&#039;Httpupload&#039;&#039;&#039;: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Url image preview&#039;&#039;&#039;: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
* &#039;&#039;&#039;Client icons&#039;&#039;&#039;: Mostra una icona che rapresenta il client usato nell&#039;elenco dei contatti.&lt;br /&gt;
* &#039;&#039;&#039;Emoticons pack&#039;&#039;&#039;: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
&lt;br /&gt;
Riavviare &#039;&#039;&#039;sempre&#039;&#039;&#039; Gajim dopo aver abilitato o aggiornato i plugin.&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Dopo aver abilitato il plugin OMEMO, Gajim si impallerà qualche secondo per generare le chiavi: non impanicatevi, è normale. Quando avrà finito sarete a un passo dal chattare in sicurezza.&lt;br /&gt;
&lt;br /&gt;
Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce [[File:OmemoGajimFish LowRes.png|inline|baseline]] da cui si può abilitare OMEMO nella chat. &lt;br /&gt;
Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. &lt;br /&gt;
&lt;br /&gt;
Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. una per Conversations sullo smartphone e una per Gajim sul pc. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt; dove è presente anche il QR-code che puoi usare per farti verificare velocemente da chi ha uno smartphone.&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR-code, se si è installato il plugin OMEMO da Gajim, è necessario installare dei pacchetti. Il programma indica solo &amp;quot;python-qrcode&amp;quot;. Su Arch, per avere garanzia di funzionamento, non bisogna installare questo pacchetto ma tutte le dependencies python2-* dalla pagina di [https://aur.archlinux.org/packages/gajim-plugin-omemo/ gajim-plugin-omemo]. Questi pacchetti sono disponibili solo dalla AUR.&lt;br /&gt;
&lt;br /&gt;
=== Problemi ===&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
== Conversations== &lt;br /&gt;
Il migliore client per Android per numero di XEP integrate, ed è anche piacevole alla vista.&lt;br /&gt;
Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
===Account===&lt;br /&gt;
[[File:ConversationUserPass.jpg|miniatura|sinistra|Inserisci l&#039;ID Jabber e la password e inizia a chattare!]]&lt;br /&gt;
&lt;br /&gt;
Per aggiungere un account devi andare in &amp;lt;code&amp;gt;Menu → Gestisci utenti&amp;lt;/code&amp;gt;: qui troverai un tastino con un omino stilizzato e un più [[File:AddAccount Conversation.jpg|22px|inline|baseline]]. Cliccaci e otterrai una schermata che ti chiede jabberID e password, inseriscili e sei prontu a chattare!&lt;br /&gt;
&lt;br /&gt;
Dal menu &amp;quot;Gestisci utenti&amp;quot; puoi fare una serie di altre opreazioni utili che riguardano il tuo account, come &lt;br /&gt;
* Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
* Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
===Contatti, chat e gruppi===&lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, cliccaci sopra per aprirle, una volta dentro striscia a destra o sinistra per chiuderle.&lt;br /&gt;
&lt;br /&gt;
Se dovessi farlo per errore non preoccuparti: &#039;&#039;&#039;non&#039;&#039;&#039; hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
====Aggiungere contatti ed entrare nei gruppi====&lt;br /&gt;
In alto a destra c&#039;è una icona con un grosso &amp;quot;più&amp;quot;: [[File:ConversationContacts.jpg|22px|inline|baseline]]&lt;br /&gt;
Cliccandoci troverai l&#039;elenco dei contatti e delle MUC; in alto a destra ci sono, nelle rispettive schede, i tasti per aggiungere contatti [[File:AddAccount Conversation.jpg|22px|inline|baseline]] e MUC [[File:ConversationJoinMUC.jpg|22px|inline|baseline]].&lt;br /&gt;
&lt;br /&gt;
====Random settings====&lt;br /&gt;
Conversations di default non mostra se i contatti sono online o meno, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile, rosso=occupato, arancione=assente, grigio=offline.&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
In una chat di gruppo, cliccando su &amp;quot;Dettagli conferenza&amp;quot; è possibile visualizzare l&#039;elenco degli iscritti.&lt;br /&gt;
&lt;br /&gt;
=== OMEMO ===&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. &lt;br /&gt;
&lt;br /&gt;
È buona norma verificare questa fingerprint tramite altro mezzo, tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
====Verifica delle chiavi====&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;. A questo punto si aprirà l&#039;app per fotografare il QR.&amp;lt;ref&amp;gt;I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio. Per aiutare la messa a fuoco può essere anche utile mettersi un po&#039; a giocare con la luminosità dello schermo.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR della propria fingerprint clicca sul tuo avatar oppure vai in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot;, sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. &lt;br /&gt;
&lt;br /&gt;
È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Integrazione in Sailfish OS ===&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. &lt;br /&gt;
&lt;br /&gt;
Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da [http://openrepos.net Warehouse] e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Conversations;chat,chat_exists&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt; e poi selezionare &amp;quot;Mantieni il servizio in primo piano&amp;quot; nelle impostazioni avanzate di Conversations.&lt;br /&gt;
&lt;br /&gt;
==Altri Client==&lt;br /&gt;
===ChatSecure===&lt;br /&gt;
Per iOS (iPhone) esiste [https://chatsecure.org/ ChatSecure], che supporta la cifratura con OMEMO.&lt;br /&gt;
&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, mancano alcune opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
&lt;br /&gt;
===Pidgin===&lt;br /&gt;
[https://pidgin.im/ Pidgin] è un client la cui comunità di sviluppo è molto partecipata, e che oltre a XMPP supporta i protocolli AIM, Bonjour, Gadu-Gadu, Google Talk, ICQ, IRC, SILC, SIMPLE, Zephyr, e molti altri ancora insieme a una vasta gamma di plugin.&lt;br /&gt;
&lt;br /&gt;
Supporta OMEMO attraverso il plugin SPERIMENTALE [https://github.com/gkdr/lurch Lurch]&lt;br /&gt;
&lt;br /&gt;
===Profanity===&lt;br /&gt;
[http://www.profanity.im/ Profanity] è un client testuale, gira da console con un&#039;interfaccia [http://www.gnu.org/software/ncurses/ ncurses] ed assomiglia molto al client [http://irssi.org/ irssi] per IRC. Su Arch Linux è presente in due pacchetti alternativi &amp;lt;code&amp;gt;profanity&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;profanity-gtk&amp;lt;/code&amp;gt;: il secondo offre solo le notifiche desktop tramite le librerie gtk, e non un&#039;interfaccia grafica (ovviamente).&lt;br /&gt;
&lt;br /&gt;
===Dino===&lt;br /&gt;
[https://github.com/dino/dino Dino] è un client XMPP moderno scritto in GTK3 e Vala, è in fase alpha e quindi non considerabile affidabile ma supporta già OMEMO nelle chat 1:1 e le chatroom, non supporta le carbon copies e nemmeno le chat di gruppo cifrate. Nonostante il suo stadio è già semi-usabile &lt;br /&gt;
&lt;br /&gt;
=Generare un QR Code con le fingerprint per ogni device=&lt;br /&gt;
Alcuni software, per esempio Conversations, non permettono di verificare completamente un contatto se non scansionando la fingerprint attraverso un QR Code o cliccando su un link. &lt;br /&gt;
&lt;br /&gt;
Non tutti i client però supportano la generazione di un QR da poter scansionare.&lt;br /&gt;
&lt;br /&gt;
Per ovviare a questo limite di seguito una procedura per generare un QR Code che contenga tutte le fingerprint collegate ad una chiave OMEMO. &lt;br /&gt;
&lt;br /&gt;
I passaggi sono molto Linux specifici&lt;br /&gt;
&lt;br /&gt;
Requisiti:&lt;br /&gt;
* Un terminale&lt;br /&gt;
* sqlite (CLI) o sqlitebrowser (GUI) Per Dino&lt;br /&gt;
* qrencode (CLI) o qualsiasi programma per generare un qrcode&lt;br /&gt;
&lt;br /&gt;
Il QR Code al momento della scrittura contiene la seguente stringa:&lt;br /&gt;
 xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dove:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;OTR_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OTR&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;DEVICE_ID&amp;gt;&#039;&#039;&#039; è il device ID, unico per ogni dispositivo o software&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;OMEMO_FINGERPRINT&amp;gt;&#039;&#039;&#039; è la fingerprint della chiave OMEMO&lt;br /&gt;
&lt;br /&gt;
A seconda del client il metodo per recuperare le informazioni cambia:&lt;br /&gt;
==Dino==&lt;br /&gt;
Con il comando &lt;br /&gt;
 sqlite3 ~/.local/share/dino/omemo.db  &#039;select device_id from identity&#039;&lt;br /&gt;
Dato da un terminale verranno mostrati tutti gli ID dei devices usati sul PC&lt;br /&gt;
&lt;br /&gt;
Dalla finestra account invece sarà possibile vedere la fingerprint per ogni account. Per scelta degli sviluppatori non è possibile selezionarla. &lt;br /&gt;
&lt;br /&gt;
Applicando la seguente patch prima della compilazione sarà possibile invece copiare la fingerprint&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat selectfpr.patch&lt;br /&gt;
diff --git a/plugins/omemo/src/account_settings_widget.vala b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
index bc0be3a..645c0fe 100644&lt;br /&gt;
--- a/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
+++ b/plugins/omemo/src/account_settings_widget.vala&lt;br /&gt;
@@ -15,6 +15,7 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
         fingerprint.xalign = 0;&lt;br /&gt;
         Border border = new Button().get_style_context().get_padding(StateFlags.NORMAL);&lt;br /&gt;
         fingerprint.set_padding(border.left + 1, border.top + 1);&lt;br /&gt;
+        fingerprint.set_selectable(true);&lt;br /&gt;
         fingerprint.visible = true;&lt;br /&gt;
         pack_start(fingerprint);&lt;br /&gt;
 &lt;br /&gt;
@@ -60,4 +61,4 @@ public class AccountSettingWidget : Plugins.AccountSettingsWidget, Box {&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
-}&lt;br /&gt;
\ No newline at end of file&lt;br /&gt;
+}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pidgin==&lt;br /&gt;
Pidgin supporta OMEMO SPERIMENTALMENTE attraverso il plugin [https://github.com/gkdr/lurch Lurch], per ottenere il device id basterà digitare in una finestra di chat il comando&lt;br /&gt;
 /lurch show id own&lt;br /&gt;
Mentre per la fingerprint  &lt;br /&gt;
 /lurch show fp own&lt;br /&gt;
&lt;br /&gt;
==Gajim==&lt;br /&gt;
Dal menu di impostazioni del plugin OMEMO è possibile vedere gli ID dei propri dispositivi e le proprie fingerprint.&lt;br /&gt;
&lt;br /&gt;
A questo punto è possibile generare il QR Code con le fingerprint con il comando&lt;br /&gt;
 qrencode  &amp;quot;xmpp:&amp;lt;USER&amp;gt;@&amp;lt;HOST&amp;gt;?otr-fingerprint=&amp;lt;OTR_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;DEVICE_ID&amp;gt;=&amp;lt;OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;;omemo-sid-&amp;lt;OTHER_DEVICE_ID&amp;gt;=&amp;lt;OTHER_OMEMO_FINGERPRINT&amp;gt;&amp;quot; -o ~/fingerprints.png&lt;br /&gt;
&lt;br /&gt;
È adesso possibile scansionare il QR con Conversations in modo da avere tutte le proprie fingerprint verificate ed autenticate. Da ora in poi basterà mostrare il QR di conversations che conterrà tutte le fingerprint&lt;br /&gt;
 &lt;br /&gt;
= Altre risorse =&lt;br /&gt;
* [https://we.riseup.net/riseup/xmpp pagina su riseup] che raccoglie qualche considerazione tecnica e discussioni varie.&lt;br /&gt;
* [https://www.youtube.com/watch?v=xwu3xjwyy9M video completo] con la presentazione, spiegazione e discussione del servizio (31 Marzo 2017 a [[Exploit]], [https://eigenlab.org/2017/03/jabber-eigenlab-presentazione-del-servizio/ post] sul sito).&lt;br /&gt;
&lt;br /&gt;
=Note=&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;br /&gt;
[[Categoria:Device Mobili]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Utente:Svalo&amp;diff=4584</id>
		<title>Utente:Svalo</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Utente:Svalo&amp;diff=4584"/>
		<updated>2016-12-18T12:15:25Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* eigenGuida per la rete */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bho per adesso i progetti nelle mie pagine sono&lt;br /&gt;
https://wiki.eigenlab.org/index.php/Utente:Svalo/HowToRete&lt;br /&gt;
e basta [[Utente:Svalo|Svalo]] ([[Discussioni utente:Svalo|discussioni]]) 12:16, 20 mag 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4583</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4583"/>
		<updated>2016-12-18T11:58:18Z</updated>

		<summary type="html">&lt;p&gt;Svalo: In alcuni pc non funziona senza a causa di cose a caso di demandimport (gajim)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; è un protocollo di chat federato: questo significa che se hai un&#039;utenza registrata su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce una chat singola o di gruppo (detto anche &#039;&#039;&amp;quot;stanza&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039;) ed ha una rubrica per i contatti; inoltre è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre con [[XMPP#Gajim]] (desktop) e [[XMPP#Conversations]] (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che ancora poco supportato da altri client. &lt;br /&gt;
&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|bottom]] Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. Ad oggi abbiamo preparato qui sotto le istruzioni per [[XMPP#Gajim|Gajim]] (per PC) e [[XMPP#Conversations|Conversations]] (per Android).&lt;br /&gt;
&lt;br /&gt;
=== Gajim ===&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.&lt;br /&gt;
&lt;br /&gt;
==== Installazione ====&lt;br /&gt;
In Arch bisogna avere l&#039;AUR abilitato e installare i pacchetti con: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo python2-qrcode python2-future&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In Debian stable bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungere la riga &amp;lt;code&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/code&amp;gt; nel file; poi salvarlo e chiuderlo e dare i comandi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo aptitude update&lt;br /&gt;
&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&lt;br /&gt;
&lt;br /&gt;
sudo aptitude install python-qrcode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configurazione ====&lt;br /&gt;
Aprendolo per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;. C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare. Finito. &lt;br /&gt;
&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt; per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un&#039;altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot; (e anche un&#039;altra opzione più criptica &amp;quot;rendi metacontatti&amp;quot; che non so a cosa serva.)&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si può entrare in una MUC dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt;&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;. Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot; gajim entrerà nella stanza al login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella MUC &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare &amp;lt;code&amp;gt;farstream-0.1&amp;lt;/code&amp;gt; mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Plugin ====&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Client icons: Mostra una icona che rapresenta il client usato, nell&#039;elenco dei contatti.&lt;br /&gt;
* Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
* Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Olugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Riavviare Gajim dopo aver abilitato i plugin.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Può darsi che il plugin updater di Gajim chieda di aggiornare il plugin OMEMO, perchè è stato installato tramite il gestore di pacchetti e non internamente: in tal caso va risposto sempre di no.&lt;br /&gt;
&lt;br /&gt;
Dopo aver abilitato il plugin, Gajim si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce, da cui si può abilitare omemo nella chat. Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. uno smartphone con Conversations, più un pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt;, dove è presente anche il QR-code utilizzato nella verifica da Conversations.&lt;br /&gt;
&lt;br /&gt;
==== Problemi ====&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
=== Conversations=== &lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
Il migliore client per Android per numero di XEP integrate. Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]].&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, lo swipe su una di queste consente di terminare una chat. Se dovessi farlo per errore non preoccuparti, non hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
Il tasto&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; mostra l&#039;elenco dei contatti e delle MUC (chatroom / chat di gruppo). Nelle rispettive schede si possono aggiungere amici e chat di gruppo.&lt;br /&gt;
&lt;br /&gt;
Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
Conversations di default non mostra se i contatti sono online oppure offline, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile rosso=occupato arancione=assente grigio=offline&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
===== OMEMO =====&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. È buona norma verificare questa fingerprint tramite altro mezzo. Tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, poi tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt; A questo punto si aprirà l&#039;app per fotografare il QR. I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio.&lt;br /&gt;
&lt;br /&gt;
Si visualizza il QR della propria fingerprint cliccando sul proprio avatar oppure andando in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot; sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Integrazione in Sailfish OS =====&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da Warehouse (openrepos.net) e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Conversations;chat,chat_exists&lt;br /&gt;
&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin.&lt;br /&gt;
===XabberDev===&lt;br /&gt;
XabberDev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4582</id>
		<title>HowTo Single Disk to RAID</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4582"/>
		<updated>2016-12-18T11:52:46Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Does the left TODO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
We found ourselves in the need of switching from a single disk root to a root backed by a RAID, here&#039;s how we did.&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
We sat up a new/old server, [[BitArno]], it has a nice /home of ~6TB backed by a RAID and a separate disk for the / partition. As the drive for the / was tested before getting to production resulting in no errors we thought we didn&#039;t need a RAID for it. We installed Debian stable 8.1, set up every service, went to bed just to wake up with a hung server refusing to boot.&lt;br /&gt;
&lt;br /&gt;
An on site check was required, we got there and found out that the / drive was failing to reallocate sectors, we fsck&#039;ed it and it booted. &amp;quot;Great!&amp;quot; that same evening it was failing again and so we decided to switch from a single disk root to a RAID1 backed root especially because we do use commodity hardware taken from old computers.&lt;br /&gt;
&lt;br /&gt;
== The general idea ==&lt;br /&gt;
&lt;br /&gt;
We wanted a way to easily switch from a drive to the RAID without having to back everything up and copy it over again with fewer downtime possible and so we decided to:&lt;br /&gt;
* Poweroff the server and attach a new disk of equal size&lt;br /&gt;
* Power on  the server&lt;br /&gt;
* Create a RAID1 array composed by 2 drives but with a drive marked as missing (the new drive is the present one, the old one will be attached to the cluster later)&lt;br /&gt;
* Set LVM up on top of it (as the old drive had LVM (it&#039;s a 120GB drive just for the `/` parition, we wanted to have some space available if we&#039;ll ever find in the need)&lt;br /&gt;
* Boot a live distro and copy / &lt;br /&gt;
** Install the bootloader on the new drive adding the necessary modules for RAID and LVM&lt;br /&gt;
* Reboot the server from the RAID-member disk&lt;br /&gt;
* Check if everything is OK&lt;br /&gt;
* Add the old disk to the RAID and let mdadm resync the contents.&lt;br /&gt;
&lt;br /&gt;
== Step by step guide ==&lt;br /&gt;
Here I&#039;ll try to cover step by step the command we used, it has been a while since we did it so I&#039;m not 100% sure I&#039;ll remember everything&lt;br /&gt;
&lt;br /&gt;
First a layout of the partitions when it was single-disk&lt;br /&gt;
&lt;br /&gt;
 sda                            8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                        8:1    0   243M  0 part /boot &lt;br /&gt;
  ├─sda2                        8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                        8:5    0 114.3G  0 part  &lt;br /&gt;
    ├─bitarno--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
    └─bitarno--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
And after the switch (newly created LVM has different volume group name but same size and structure)&lt;br /&gt;
&lt;br /&gt;
  sda                        8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                     8:1    0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sda2                     8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                     8:5    0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
  sde                        8:64   0 114.5G  0 disk  &lt;br /&gt;
  ├─sde1                     8:65   0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sde2                     8:66   0     1K  0 part  &lt;br /&gt;
  └─sde5                     8:69   0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
The sdX2 partition is an extended one which contains the RAID one&lt;br /&gt;
&lt;br /&gt;
In this way we have two arrays, one for the boot and one for the LVM which contains the root and the swap&lt;br /&gt;
&lt;br /&gt;
First of all we need to wipe out every possible header from the new disk as it will become a RAID member&lt;br /&gt;
 dd if=/dev/zero of=/dev/sde bs=100M count=1&lt;br /&gt;
&lt;br /&gt;
Then we created the partitions with sfdisk about the same size as the first disk. It&#039;s not needed for them to be the same as it wasn&#039;t possible to copy the partitions with dd&lt;br /&gt;
&lt;br /&gt;
We need:&lt;br /&gt;
* one parition for the boot marked as Linux raid autodetect&lt;br /&gt;
* the other for LVM marked as Linux raid autodetect that takes the free space left&lt;br /&gt;
&lt;br /&gt;
We then proceeded to create the 2 RAIDS, /dev/sde is the new disk&lt;br /&gt;
 mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sde1 missing&lt;br /&gt;
 mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sde5 missing&lt;br /&gt;
&lt;br /&gt;
We made the filesystem on the newly created /dev/md1&lt;br /&gt;
 mkfs.ext2 /dev/md1&lt;br /&gt;
And copied the files &lt;br /&gt;
 mount /dev/md1 /mnt&lt;br /&gt;
 rsync -avPh /boot /mnt&lt;br /&gt;
 sync &amp;amp;&amp;amp; umount /mnt&lt;br /&gt;
We were done with /boot, and we needed to create the LVM  volumes:&lt;br /&gt;
&lt;br /&gt;
First we marked /dev/md2 as LVM member with fdisk then we told LVM /dev/md2 was a device it could use&lt;br /&gt;
 pvcreate /dev/md2&lt;br /&gt;
&lt;br /&gt;
We then created the virtual group that was going to host the logical volumes&lt;br /&gt;
 vgcreate ba-system /dev/md2&lt;br /&gt;
And created the logical volumes over it&lt;br /&gt;
 lvcreate -L30G -n root ba-system&lt;br /&gt;
 lvcreate -L4G -n swap ba-system&lt;br /&gt;
We created the filesystem for root &lt;br /&gt;
 mkfs.ext4 /dev/mapper/ba--system-root&lt;br /&gt;
And for swap&lt;br /&gt;
 mkswap /dev/mapper/ba--system-swap&lt;br /&gt;
&lt;br /&gt;
Then it was time to poweroff the server and boot from a live, we choose ArchLinux as it&#039;s lightweight and provides all the packages we need without forcefully bringing up an installation procedure&lt;br /&gt;
&lt;br /&gt;
We mounted the root partitions&lt;br /&gt;
 mkdir /mnt/old /mnt/new&lt;br /&gt;
 mount /dev/mapper/ba--system-root /mnt/new&lt;br /&gt;
 mount /dev/mapper/bitarno--system-root /mnt/old&lt;br /&gt;
&lt;br /&gt;
And copied the data over:&lt;br /&gt;
 rsync -avPh /mnt/old/ /mnt/new&lt;br /&gt;
&lt;br /&gt;
We then proceeded to mount the boot partition &lt;br /&gt;
 mount /dev/md1 /mnt/new/boot&lt;br /&gt;
&lt;br /&gt;
And arch-chroot&#039;ed into it. Arch-chroot is a wonderful piece of software that saves you from bind mounting /dev /proc and /sys in the chroot&lt;br /&gt;
&lt;br /&gt;
 arch-chroot /mnt/new&lt;br /&gt;
&lt;br /&gt;
It was time to install grub on the new disk and regenerate grub configuration and the initram image to contain LVM and RAID modules, this was the hardest part as we wrongly supposed all the modules were already present.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We added &amp;quot;domdadm&amp;quot;&#039;&#039;&#039; to  GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, the line should look something like&lt;br /&gt;
 cat /etc/default/grub| grep -i cmdli&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet domdadm&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And we &#039;&#039;&#039;added the modules needed to GRUB_PRELOAD_MODULES&#039;&#039;&#039; in the same file, if the line don&#039;t exist create it&lt;br /&gt;
 GRUB_PRELOAD_MODULES=&amp;quot;lvm diskfilter mdraid1x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then it was time to install grub on both HDD in the MBR, note that it wasn&#039;t needed to specify the boot partition as we were in a chroot&lt;br /&gt;
&lt;br /&gt;
 grub-install /dev/sda&lt;br /&gt;
 grub-install /dev/sde&lt;br /&gt;
&lt;br /&gt;
And just to be sure&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
We also had to update the initramfs to actually contain the raid module ans so we edited&lt;br /&gt;
 /etc/initramfs-tools/modules &lt;br /&gt;
appending&lt;br /&gt;
 raid1&lt;br /&gt;
to the list and executed&lt;br /&gt;
 update-initramfs&lt;br /&gt;
to re-generate the initramfs&lt;br /&gt;
&lt;br /&gt;
We exited from the chroot, unmounted everything, rebooted and kept our finger crossed till the password prompt of the root-on-RAID booted system.&lt;br /&gt;
&lt;br /&gt;
This last step I simplified it, we made several errors and had to boot into live several times, as we kept forgetting to add the needed modules and command lines arguments&lt;br /&gt;
&lt;br /&gt;
To be sure to boot from the raid root you can edit the grub entry before booting, make sure it&#039;s like the following&lt;br /&gt;
 insmod mdraid1x&lt;br /&gt;
Have to be present inside the menuentry section of your os and the linux entry looks similar to&lt;br /&gt;
 linux   /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/ba--system-root ro  quiet domdadm&lt;br /&gt;
&lt;br /&gt;
As we failed to achieve everything on the first try we edited the grub command line and the performed grub install from the booted system.&lt;br /&gt;
&lt;br /&gt;
Once we managed to boot we had to finalize the process and add the old drive to the RAID array&lt;br /&gt;
&lt;br /&gt;
We backed up the partition table of the new disk&lt;br /&gt;
 sfdisk -d /dev/sde &amp;gt; /tmp/savetablesde&lt;br /&gt;
 &lt;br /&gt;
Unmounted the automatically-mounted /dev/sda[1,2,5] deactivating the swap and LVM&lt;br /&gt;
&lt;br /&gt;
 swapoff /dev/mapper/bitarno-system-swap&lt;br /&gt;
 vgchange -an bitarno--system&lt;br /&gt;
 &lt;br /&gt;
Wiped out all the old drive first 100M &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda bs=100M count=1&lt;br /&gt;
 sync&lt;br /&gt;
And in the end we copied the partition table on the old disk&lt;br /&gt;
 sfdisk /dev/sda &amp;lt; /tmp/savetablesde&lt;br /&gt;
 &lt;br /&gt;
We added the partitions to the array&lt;br /&gt;
 mdadm /dev/md1 --add /dev/sda1&lt;br /&gt;
 mdadm /dev/md2 --add /dev/sda5&lt;br /&gt;
&lt;br /&gt;
DONE!&lt;br /&gt;
&lt;br /&gt;
We then checked the status of the resync of mdadm with&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
We (of course) had some issues in the process:&lt;br /&gt;
&lt;br /&gt;
* Thought the drive was of the same model the capacity was a little different and so we couldnt copy the partition scheme as we tougth we could do&lt;br /&gt;
* It&#039;s very important to generate the grub image inserting the modules and the boot parameter needed for lvm and RAID&lt;br /&gt;
* The initramfs must be rebuilt with the right raid module present in order for the kernel to find the cluster&lt;br /&gt;
* It&#039;s impossible to backup and restore the lvm too as for a while we found ourselves  with the 2 LVMs disk together and names were conflicting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;br /&gt;
[[Categoria:HowTo]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4511</id>
		<title>HowTo Single Disk to RAID</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4511"/>
		<updated>2016-11-19T20:23:35Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Step by step guide */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
We found ourselves in the need of switching from a single disk root to a root backed by a RAID, here&#039;s how we did.&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
We sat up a new/old server, [[BitArno]], it has a nice /home of ~6TB backed by a RAID and a separate disk for the / partition. As the drive for the / was tested before getting to production resulting in no errors we tought we didn&#039;t need a RAID for it. We installed debian stable 8.1, sat up every service, went to bed just to wake up with a hung server refusing to boot.&lt;br /&gt;
&lt;br /&gt;
An on site check was required, we got there and found out that the / drive was failing to reallocate sectors, we fsck&#039;ed it and it booted. &amp;quot;Great!&amp;quot; that same evening it was failing again and so we decided to switch from a single disk root to a RAID1 backed root expecially because we do use commodity hardware taken from old computers.&lt;br /&gt;
&lt;br /&gt;
== The general idea ==&lt;br /&gt;
&lt;br /&gt;
We wanted a way to easily switch from a drive to the RAID without having to back everything up and copy it over again with fewer downtime possible and so we decided to:&lt;br /&gt;
* Poweroff the server and attach the new disk of an equal size&lt;br /&gt;
* Power on  the server&lt;br /&gt;
* Create a RAID1 array composed by 2 drives but with a drive marked as missing&lt;br /&gt;
* Set LVM up on top of it (as the old drive had LVM (it&#039;s a 120GB drive just for the `/` parition, we wanted to have some space available if we&#039;ll ever find in the need)&lt;br /&gt;
* Boot a live distro and copy /&lt;br /&gt;
** Install the bootloader on the new drive adding the necessary modules for RAID and LVM&lt;br /&gt;
* Reboot the server from the RAID-memeber disk&lt;br /&gt;
* Check if everything is OK&lt;br /&gt;
* Add the old disk to the RAID and let mdadm resync the contents.&lt;br /&gt;
&lt;br /&gt;
== Step by step guide ==&lt;br /&gt;
Here I&#039;ll try to cover step by step the command we used, it has been a while since we did it so I&#039;m not 100% sure I&#039;ll remember everything&lt;br /&gt;
&lt;br /&gt;
First a layout of the partition befor the RAID&lt;br /&gt;
 sda                            8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                        8:1    0   243M  0 part /boot &lt;br /&gt;
  ├─sda2                        8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                        8:5    0 114.3G  0 part  &lt;br /&gt;
    ├─bitarno--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
    └─bitarno--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
And after the switch&lt;br /&gt;
&lt;br /&gt;
  sda                        8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                     8:1    0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sda2                     8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                     8:5    0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
  sde                        8:64   0 114.5G  0 disk  &lt;br /&gt;
  ├─sde1                     8:65   0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sde2                     8:66   0     1K  0 part  &lt;br /&gt;
  └─sde5                     8:69   0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
The sdX2 partition is an extended one which contains the RAID one&lt;br /&gt;
&lt;br /&gt;
In this way we have two arrays, one for the boot and one for the LVM which contains the root and the swap&lt;br /&gt;
&lt;br /&gt;
First of all we need to wipe out every possible header from the new disk as it will become a RAID member&lt;br /&gt;
 dd if=/dev/zero of=/dev/sde bs=100M count=1&lt;br /&gt;
&lt;br /&gt;
Then we created the partitions with sfdisk about the same size as the first disk. It&#039;s not needed for them to be the same as it wasn&#039;t possible to copy the partitions with dd&lt;br /&gt;
&lt;br /&gt;
We need:&lt;br /&gt;
* one parition for the boot marked as Linux raid autodetect&lt;br /&gt;
* the other for LVM marked as Linux raid autodetect that takes the free space left&lt;br /&gt;
&lt;br /&gt;
We then proceeded to create the 2 RAIDS, /dev/sde is the new disk&lt;br /&gt;
 mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sde1 missing&lt;br /&gt;
 mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sde5 missing&lt;br /&gt;
&lt;br /&gt;
We made the filesystem on the newly created /dev/md1&lt;br /&gt;
 mkfs.ext2 /dev/md1&lt;br /&gt;
And copied the files &lt;br /&gt;
 mount /dev/md1 /mnt&lt;br /&gt;
 rsync -avPh /boot /mnt&lt;br /&gt;
 sync &amp;amp;&amp;amp; umount /mnt&lt;br /&gt;
We were done with /boot, and we needed to create the LVM  volumes:&lt;br /&gt;
&lt;br /&gt;
First we marked /dev/md2 as LVM member with fdisk then we told LVM /dev/md2 was a device it could use&lt;br /&gt;
 pvcreate /dev/md2&lt;br /&gt;
&lt;br /&gt;
We then created the virtual group that was going to host the logical volumes&lt;br /&gt;
 vgcreate ba-system /dev/md2&lt;br /&gt;
And created the logical volumes over it&lt;br /&gt;
 lvcreate -L30G -n root ba-system&lt;br /&gt;
 lvcreate -L4G -n swap ba-system&lt;br /&gt;
We createed the filesystem for root &lt;br /&gt;
 mkfs.ext4 /dev/mapper/ba--system-root&lt;br /&gt;
And for swap&lt;br /&gt;
 mkswap /dev/mapper/ba--system-swap&lt;br /&gt;
&lt;br /&gt;
Then it was time to poweroff the server and boot from a live, we choosed ArchLinux as it&#039;s lightweight and provides all the packages we need without forcefully bringing up an installation procedure&lt;br /&gt;
&lt;br /&gt;
We mounted the root partitions&lt;br /&gt;
 mkdir /mnt/old /mnt/new&lt;br /&gt;
 mount /dev/mapper/ba--system-root /mnt/new&lt;br /&gt;
 mount /dev/mapper/bitarno--system-root /mnt/old&lt;br /&gt;
&lt;br /&gt;
And copied the datas over:&lt;br /&gt;
 rsync -avPh /mnt/old/ /mnt/new&lt;br /&gt;
&lt;br /&gt;
We then proceeded to mount the boot partition &lt;br /&gt;
 mount /dev/md1 /mnt/new/boot&lt;br /&gt;
&lt;br /&gt;
And arch-chroot&#039;ed into it. Arch-chroot is a wonderfull piece of software that saves you from bind mounting /dev /proc and /sys in the chroot&lt;br /&gt;
&lt;br /&gt;
 arch-chroot /mnt/new&lt;br /&gt;
&lt;br /&gt;
It was time to install grub and regenerate the image to contain LVM and RAID modules, this was the hardest part as we wrongly supposed all the modules were already present.&lt;br /&gt;
&lt;br /&gt;
We added &amp;quot;domdadm&amp;quot; to  GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, the line should look something like&lt;br /&gt;
 cat /etc/default/grub| grep -i cmdli&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet domdadm&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And we added the modules needed to GRUB_PRELOAD_MODULES in the same file, if the line don&#039;t exist create it&lt;br /&gt;
 GRUB_PRELOAD_MODULES=&amp;quot;lvm diskfilter mdraid1x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then it was time to install grub on both HDD in the MBR, note that it wasn&#039;t needed to specify the boot partition as we were in a chroot&lt;br /&gt;
&lt;br /&gt;
 grub-install /dev/sda&lt;br /&gt;
 grub-install /dev/sde&lt;br /&gt;
&lt;br /&gt;
And just to be sure&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
We exited from the chroot, unmounted everything, rebooted and kept our finger crossed till the password prompt of the root-on-RAID booted system.&lt;br /&gt;
&lt;br /&gt;
This last step I simplified it, we made several errors and had to boot into live several times, as we kept forgetting to add the needed modules and command lines arguments&lt;br /&gt;
&lt;br /&gt;
To be sure to boot from the raid root you can edit the grub entry before booting, make sure it&#039;s like the following&lt;br /&gt;
 insmod mdraid1x&lt;br /&gt;
Have to be present inside the menuentry section of your os and the linux entry looks similar to&lt;br /&gt;
 linux   /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/ba--system-root ro  quiet domdadm&lt;br /&gt;
&lt;br /&gt;
As we failed to achieve everithing on the first try we edited the grub command line and the performed grub install from the booted system.&lt;br /&gt;
&lt;br /&gt;
Once we managed to boot we had to finalize the process and add the old drive to the RAID array&lt;br /&gt;
&lt;br /&gt;
We backed up the partition table of the new disk&lt;br /&gt;
 sfdisk -d /dev/sde &amp;gt; /tmp/savetablesde&lt;br /&gt;
 &lt;br /&gt;
Unmounted the automatically-mounted /dev/sda[1,2,5] deactivating the swap and LVM&lt;br /&gt;
&lt;br /&gt;
 swapoff /dev/mapper/bitarno-system-swap&lt;br /&gt;
 vgchange -an bitarno--system&lt;br /&gt;
 &lt;br /&gt;
Whiped out all the old drive first 100M &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda bs=100M count=1&lt;br /&gt;
 sync&lt;br /&gt;
And in the end we copied the partition table on the old disk&lt;br /&gt;
 sfdisk /dev/sda &amp;lt; /tmp/savetablesde&lt;br /&gt;
 &lt;br /&gt;
We added the partitions to the array&lt;br /&gt;
 mdadm /dev/md1 --add /dev/sda1&lt;br /&gt;
 mdadm /dev/md2 --add /dev/sda5&lt;br /&gt;
&lt;br /&gt;
DONE!&lt;br /&gt;
&lt;br /&gt;
We then checked the status of the resync of mdadm with&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
We (of course) had some issues in the process:&lt;br /&gt;
&lt;br /&gt;
* Thougth the drive was of the same model the capacity was a little different and so we couldnt copy the partition scheme as we tougth we could do&lt;br /&gt;
* It&#039;s very important to generate the grub image inserting the modules and the boot parameter needed for lvm and RAID&lt;br /&gt;
* It&#039;s impossible to backup and restore the lvm too as for a while we found ourselves  with the 2 LVMs disk together and names were conflicting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;br /&gt;
[[Categoria:HowTo]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4510</id>
		<title>HowTo Single Disk to RAID</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4510"/>
		<updated>2016-11-19T19:49:07Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Typos and fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
We found ourselves in the need of switching from a single disk root to a root backed by a RAID, here&#039;s how we did.&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
We sat up a new/old server, [[BitArno]], it has a nice /home of ~6TB backed by a RAID and a separate disk for the / partition. As the drive for the / was tested before getting to production resulting in no errors we tought we didn&#039;t need a RAID for it. We installed debian stable 8.1, sat up every service, went to bed just to wake up with a hung server refusing to boot.&lt;br /&gt;
&lt;br /&gt;
An on site check was required, we got there and found out that the / drive was failing to reallocate sectors, we fsck&#039;ed it and it booted. &amp;quot;Great!&amp;quot; that same evening it was failing again and so we decided to switch from a single disk root to a RAID1 backed root expecially because we do use commodity hardware taken from old computers.&lt;br /&gt;
&lt;br /&gt;
== The general idea ==&lt;br /&gt;
&lt;br /&gt;
We wanted a way to easily switch from a drive to the RAID without having to back everything up and copy it over again with fewer downtime possible and so we decided to:&lt;br /&gt;
* Poweroff the server and attach the new disk of an equal size&lt;br /&gt;
* Power on  the server&lt;br /&gt;
* Create a RAID1 array composed by 2 drives but with a drive marked as missing&lt;br /&gt;
* Set LVM up on top of it (as the old drive had LVM (it&#039;s a 120GB drive just for the `/` parition, we wanted to have some space available if we&#039;ll ever find in the need)&lt;br /&gt;
* Boot a live distro and copy /&lt;br /&gt;
** Install the bootloader on the new drive adding the necessary modules for RAID and LVM&lt;br /&gt;
* Reboot the server from the RAID-memeber disk&lt;br /&gt;
* Check if everything is OK&lt;br /&gt;
* Add the old disk to the RAID and let mdadm resync the contents.&lt;br /&gt;
&lt;br /&gt;
== Step by step guide ==&lt;br /&gt;
Here I&#039;ll try to cover step by step the command we used, it has been a while since we did it so I&#039;m not 100% sure I&#039;ll remember everything&lt;br /&gt;
&lt;br /&gt;
First a layout of the partition befor the RAID&lt;br /&gt;
 sda                            8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                        8:1    0   243M  0 part /boot &lt;br /&gt;
  ├─sda2                        8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                        8:5    0 114.3G  0 part  &lt;br /&gt;
    ├─bitarno--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
    └─bitarno--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
And after the switch&lt;br /&gt;
&lt;br /&gt;
  sda                        8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                     8:1    0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sda2                     8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                     8:5    0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
  sde                        8:64   0 114.5G  0 disk  &lt;br /&gt;
  ├─sde1                     8:65   0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sde2                     8:66   0     1K  0 part  &lt;br /&gt;
  └─sde5                     8:69   0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
The fifth partition is an extended one which contains the RAID one&lt;br /&gt;
&lt;br /&gt;
In this way we have two arrays, one for the boot and one for the LVM which contains the root and the swap&lt;br /&gt;
&lt;br /&gt;
First of all we need to wipe out every possible header from the new disk as it will become a RAID member&lt;br /&gt;
 dd if=/dev/zero of=/dev/sde bs=100M count=1&lt;br /&gt;
&lt;br /&gt;
Then we created the partitions with sfdisk about the same size as the first disk. It&#039;s not needed for them to be the same as it wasn&#039;t possible to copy the partitions with dd&lt;br /&gt;
&lt;br /&gt;
We need:&lt;br /&gt;
* one parition for the boot marked as Linux raid autodetect&lt;br /&gt;
* the other for LVM marked as Linux raid autodetect that takes the free space left&lt;br /&gt;
&lt;br /&gt;
We then proceeded to create the 2 RAIDS, /dev/sde is the new disk&lt;br /&gt;
 mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sde1 missing&lt;br /&gt;
 mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sde5 missing&lt;br /&gt;
&lt;br /&gt;
We made the filesystem on the newly created /dev/md1&lt;br /&gt;
 mkfs.ext2 /dev/md1&lt;br /&gt;
And copied the files &lt;br /&gt;
 mount /dev/md1 /mnt&lt;br /&gt;
 rsync -avPh /boot /mnt&lt;br /&gt;
 sync &amp;amp;&amp;amp; umount /mnt&lt;br /&gt;
We were done with /boot, and we needed to create the LVM  volumes:&lt;br /&gt;
&lt;br /&gt;
First we marked /dev/md2 as LVM member with fdisk then we told LVM /dev/md2 was a device it could use&lt;br /&gt;
 pvcreate /dev/md2&lt;br /&gt;
&lt;br /&gt;
We then created the virtual group that was going to host the logical volumes&lt;br /&gt;
 vgcreate ba-system /dev/md2&lt;br /&gt;
And created the logical volumes over it&lt;br /&gt;
 lvcreate -L30G -n root ba-system&lt;br /&gt;
 lvcreate -L4G -n swap ba-system&lt;br /&gt;
We createed the filesystem for root &lt;br /&gt;
 mkfs.ext4 /dev/mapper/ba--system-root&lt;br /&gt;
And for swap&lt;br /&gt;
 mkswap /dev/mapper/ba--system-swap&lt;br /&gt;
&lt;br /&gt;
Then it was time to poweroff the server and boot from a live, we choosed ArchLinux as it&#039;s lightweight and provides all the packages we need without forcefully bringing up an installation procedure&lt;br /&gt;
&lt;br /&gt;
We mounted the root partitions&lt;br /&gt;
 mkdir /mnt/old /mnt/new&lt;br /&gt;
 mount /dev/mapper/ba--system-root /mnt/new&lt;br /&gt;
 mount /dev/mapper/bitarno--system-root /mnt/old&lt;br /&gt;
&lt;br /&gt;
And copied the datas over:&lt;br /&gt;
 rsync -avPh /mnt/old/ /mnt/new&lt;br /&gt;
&lt;br /&gt;
We then proceeded to mount the boot partition &lt;br /&gt;
 mount /dev/md1 /mnt/new/boot&lt;br /&gt;
&lt;br /&gt;
And arch-chroot&#039;ed into it. Arch-chroot is a wonderfull piece of software that saves you from bind mounting /dev /proc and /sys in the chroot&lt;br /&gt;
&lt;br /&gt;
 arch-chroot /mnt/new&lt;br /&gt;
&lt;br /&gt;
It was time to install grub and regenerate the image to contain LVM and RAID modules, this was the hardest part as we wrongly supposed all the modules were already present.&lt;br /&gt;
&lt;br /&gt;
We added &amp;quot;domdadm&amp;quot; to  GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, the line should look something like&lt;br /&gt;
 cat /etc/default/grub| grep -i cmdli&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet domdadm&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And we added the modules needed to GRUB_PRELOAD_MODULES in the same file, if the line don&#039;t exist create it&lt;br /&gt;
 GRUB_PRELOAD_MODULES=&amp;quot;lvm diskfilter mdraid1x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then it was time to install grub on both HDD in the MBR, note that it wasn&#039;t needed to specify the boot partition as we were in a chroot&lt;br /&gt;
&lt;br /&gt;
 grub-install /dev/sda&lt;br /&gt;
 grub-install /dev/sde&lt;br /&gt;
&lt;br /&gt;
And just to be sure&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
We exited from the chroot, unmounted everything, rebooted and kept our finger crossed till the password prompt of the root-on-RAID booted system.&lt;br /&gt;
&lt;br /&gt;
This last step I simplified it, we made several errors and had to boot into live several times, as we kept forgetting to add the needed modules and command lines arguments&lt;br /&gt;
&lt;br /&gt;
To be sure to boot from the raid root you can edit the grub entry before booting, make sure it&#039;s like the following&lt;br /&gt;
 insmod mdraid1x&lt;br /&gt;
Have to be present inside the menuentry section of your os and the linux entry looks similar to&lt;br /&gt;
 linux   /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/ba--system-root ro  quiet domdadm&lt;br /&gt;
&lt;br /&gt;
As we failed to achieve everithing on the first try we edited the grub command line and the performed grub install from the booted system.&lt;br /&gt;
&lt;br /&gt;
Once we managed to boot we had to finalize the process and add the old drive to the RAID array&lt;br /&gt;
&lt;br /&gt;
We backed up the partition table of the new disk&lt;br /&gt;
 sfdisk -d /dev/sde &amp;gt; /tmp/savetablesde&lt;br /&gt;
 &lt;br /&gt;
Unmounted the automatically-mounted /dev/sda[1,2,5] deactivating the swap and LVM&lt;br /&gt;
&lt;br /&gt;
 swapoff /dev/mapper/bitarno-system-swap&lt;br /&gt;
 vgchange -an bitarno--system&lt;br /&gt;
 &lt;br /&gt;
Whiped out all the old drive first 100M &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda bs=100M count=1&lt;br /&gt;
 sync&lt;br /&gt;
And in the end we copied the partition table on the old disk&lt;br /&gt;
 sfdisk /dev/sda &amp;lt; /tmp/savetablesde&lt;br /&gt;
 &lt;br /&gt;
We added the partitions to the array&lt;br /&gt;
 mdadm /dev/md1 --add /dev/sda1&lt;br /&gt;
 mdadm /dev/md2 --add /dev/sda5&lt;br /&gt;
&lt;br /&gt;
DONE!&lt;br /&gt;
&lt;br /&gt;
We then checked the status of the resync of mdadm with&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
We (of course) had some issues in the process:&lt;br /&gt;
&lt;br /&gt;
* Thougth the drive was of the same model the capacity was a little different and so we couldnt copy the partition scheme as we tougth we could do&lt;br /&gt;
* It&#039;s very important to generate the grub image inserting the modules and the boot parameter needed for lvm and RAID&lt;br /&gt;
* It&#039;s impossible to backup and restore the lvm too as for a while we found ourselves  with the 2 LVMs disk together and names were conflicting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;br /&gt;
[[Categoria:HowTo]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4509</id>
		<title>HowTo Single Disk to RAID</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4509"/>
		<updated>2016-11-19T19:41:45Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Final edit, everything should be there&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
We found ourselves in the need of switching from a single disk root to a root backed by a RAID, here&#039;s how we did.&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
We sat up a new/old server, [[BitArno]], it has a nice /home of ~6TB backed by a RAID and a separate disk for the / partition. As the drive for the / was tested before getting to production resulting in no errors we tought we didn&#039;t need a RAID for it. We installed debian stable 8.1, sat up every service, went to bed just to wake up with a hung server refusing to boot.&lt;br /&gt;
&lt;br /&gt;
An on site check was required, we got there and found out that the / drive was failing to reallocate sectors, we fsck&#039;ed it and it booted. &amp;quot;Great!&amp;quot; that same evening it was failing again and so we decided to switch from a single disk root to a RAID1 backed root expecially because we do use commodity hardware taken from old computers.&lt;br /&gt;
&lt;br /&gt;
== The general idea ==&lt;br /&gt;
&lt;br /&gt;
We wanted a way to easily switch from a drive to the RAID without having to back everything up and copy it over again with fewer downtime possible and so we decided to:&lt;br /&gt;
* Poweroff the server and attach the new disk of an equal size&lt;br /&gt;
* Power on  the server&lt;br /&gt;
* Create a RAID1 array composed by 2 drives but with a drive marked as missing&lt;br /&gt;
* Set LVM up on top of it (as the old drive had LVM (it&#039;s a 120GB drive just for the `/` parition, we wanted to have some space available if we&#039;ll ever find in the need)&lt;br /&gt;
* Boot a live distro and copy /&lt;br /&gt;
** Install the bootloader on the new drive adding the necessary modules for RAID and LVM&lt;br /&gt;
* Reboot the server from the RAID-memeber disk&lt;br /&gt;
* Check if everything is OK&lt;br /&gt;
* Add the old disk to the RAID and let mdadm resync the contents.&lt;br /&gt;
&lt;br /&gt;
== Step by step guide ==&lt;br /&gt;
Here I&#039;ll try to cover step by step the command we used, it has been a while since we did it so I&#039;m not 100% sure I&#039;ll remember everything&lt;br /&gt;
&lt;br /&gt;
First a layout of the partition befor the RAID&lt;br /&gt;
 sda                        8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                     8:1    0   243M  0 part /boot &lt;br /&gt;
  ├─sda2                     8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                     8:5    0 114.3G  0 part  &lt;br /&gt;
    ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
    └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
And after the switch&lt;br /&gt;
&lt;br /&gt;
  sda                        8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                     8:1    0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sda2                     8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                     8:5    0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
  sde                        8:64   0 114.5G  0 disk  &lt;br /&gt;
  ├─sde1                     8:65   0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sde2                     8:66   0     1K  0 part  &lt;br /&gt;
  └─sde5                     8:69   0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
In this way we have two arrays, one for the boot and one for the LVM which contains the root and the swap&lt;br /&gt;
&lt;br /&gt;
First of all we need to wipe out every possible header from the new disk as it will become a RAID member&lt;br /&gt;
 dd if=/dev/zero of=/dev/sde bs=100M count=1&lt;br /&gt;
&lt;br /&gt;
Then we created the partitions with sfdisk about the same size as the first disk. It&#039;s not needed for them to be the same as it wasn&#039;t possible to copy the partitions with dd&lt;br /&gt;
&lt;br /&gt;
We need:&lt;br /&gt;
* one parition for the boot marked as Linux raid autodetect&lt;br /&gt;
* the other for LVM marked as Linux raid autodetect that takes the free space left&lt;br /&gt;
&lt;br /&gt;
We then proceeded to create the 2 RAIDS, /dev/sde is the new disk&lt;br /&gt;
 mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sde1 missing&lt;br /&gt;
 mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sde5 missing&lt;br /&gt;
&lt;br /&gt;
We made the filesystem on the newly created /dev/md1&lt;br /&gt;
 mkfs.ext2 /dev/md1&lt;br /&gt;
And copied the files &lt;br /&gt;
 mount /dev/md1 /mnt&lt;br /&gt;
 rsync -avPh /boot /mnt&lt;br /&gt;
 sync &amp;amp;&amp;amp; umount /mnt&lt;br /&gt;
We were done with /boot, ans we needed to create the LVM  volumes:&lt;br /&gt;
&lt;br /&gt;
First we marked /dev/md2 as LVM member then we told LVM /dev/md2 was a device it could use&lt;br /&gt;
 pvcreate /dev/md2&lt;br /&gt;
&lt;br /&gt;
We then created the virtual group that was going to host the logical volumes&lt;br /&gt;
 vgcreate ba-system /dev/md2&lt;br /&gt;
And created the logical volumes over it&lt;br /&gt;
 lvcreate -L30G -n root ba-system&lt;br /&gt;
 lvcreate -L4G -n swap ba-system&lt;br /&gt;
We createed the filesystem for root &lt;br /&gt;
 mkfs.ext4 /dev/mapper/ba--system-root&lt;br /&gt;
And for swap&lt;br /&gt;
 mkswap /dev/mapper/ba--system-swap&lt;br /&gt;
&lt;br /&gt;
Then it was time to poweroff the server and boot from a live, we choosed ArchLinux as it&#039;s lightweight and provides all the packages we need without forcefully bringing up an installation procedure&lt;br /&gt;
&lt;br /&gt;
We mounted the root partitions&lt;br /&gt;
 mkdir /mnt/old /mnt/new&lt;br /&gt;
 mount /dev/mapper/ba--system-root /mnt/new&lt;br /&gt;
 mount /dev/mapper/bitarno--system-root /mnt/old&lt;br /&gt;
&lt;br /&gt;
And copied the datas over:&lt;br /&gt;
 rsync -avPh /mnt/old/ /mnt/new&lt;br /&gt;
&lt;br /&gt;
We then proceeded to mount the boot partition &lt;br /&gt;
 mount /dev/md1 /mnt/new/boot&lt;br /&gt;
&lt;br /&gt;
And arch-chroot&#039;ed into it arch-chroot is a wonderfull piece of software that saves you from bind mounting /dev /proc and /sys in the chroot&lt;br /&gt;
&lt;br /&gt;
 arch-chroot /mnt/new&lt;br /&gt;
&lt;br /&gt;
It was time to install grub and regenerate the image to contain LVM and RAID modules, this was the hardest part as we wrongly supposed all the modules were already present.&lt;br /&gt;
&lt;br /&gt;
We added &amp;quot;domdadm&amp;quot; to  GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, the line should look something like&lt;br /&gt;
 cat /etc/default/grub| grep -i cmdli&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet domdadm&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And we added the modules needed to GRUB_PRELOAD_MODULES in the same file, if the line don&#039;t exist create it&lt;br /&gt;
 GRUB_PRELOAD_MODULES=&amp;quot;lvm diskfilter mdraid1x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then it was time to install grub on both HDD in the MBR, note that it wasn&#039;t needed to specify the boot partition as we were in a chroot&lt;br /&gt;
&lt;br /&gt;
 grub-install /dev/sda&lt;br /&gt;
 grub-install /dev/sde&lt;br /&gt;
&lt;br /&gt;
And just to be sure&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
We exited from the chroot, unmounted everything, rebooted and kept our finger crossed till the password prompt of the root-on-RAID booted system.&lt;br /&gt;
&lt;br /&gt;
This last step I simplified, we made several errors and had to boot into live several times, because we kept forgetting to add the needed modules and command lines arguments&lt;br /&gt;
&lt;br /&gt;
To be sure to boot from the raid root you can edit the grub entry before booting, make sure it&#039;s like the following&lt;br /&gt;
 insmod mdraid1x&lt;br /&gt;
Have to be present inside the menuentry section of your os and the linux entry looks similar to&lt;br /&gt;
 linux   /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/ba--system-root ro  quiet domdadm&lt;br /&gt;
&lt;br /&gt;
As we failed to achieve everithing on the first try we edited the grub command line and the performed grub install from the booted system.&lt;br /&gt;
&lt;br /&gt;
Once we managed to boot we had to finalize the process and add the old drive to the RAID array&lt;br /&gt;
&lt;br /&gt;
We backed up the partition table of the new disk&lt;br /&gt;
 sfdisk -d /dev/sde &amp;gt; /tmp/savetablesde&lt;br /&gt;
 &lt;br /&gt;
Unmounted the automatically-mounted /dev/sda[1,2,5] deactivating the swap and LVM&lt;br /&gt;
&lt;br /&gt;
 swapoff /dev/mapper/bitarno-system-swap&lt;br /&gt;
 vgchange -an bitarno--system&lt;br /&gt;
 &lt;br /&gt;
Whiped out all the old drive first 100M &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda bs=100M count=1&lt;br /&gt;
 sync&lt;br /&gt;
And in the end we copied the partition table on the old disk&lt;br /&gt;
 sfdisk /dev/sda &amp;lt; /tmp/savetablesde&lt;br /&gt;
 &lt;br /&gt;
And we added the partitions to the array&lt;br /&gt;
 mdadm /dev/md1 --add /dev/sda1&lt;br /&gt;
 mdadm /dev/md2 --add /dev/sda5&lt;br /&gt;
&lt;br /&gt;
DONE!&lt;br /&gt;
&lt;br /&gt;
You can check the status of the resync of mdadm with&lt;br /&gt;
 cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
We (of course) had some issues in the process:&lt;br /&gt;
&lt;br /&gt;
* Thougth the drive was of the same model the capacity was a little different and so we couldnt copy the partition scheme as we tougth we could do&lt;br /&gt;
* It&#039;s very important to generate the grub image inserting the modules and the boot parameter needed for lvm and RAID&lt;br /&gt;
* It&#039;s impossible to backup and restore the lvm too as for a while we found ourselves  with the 2 LVMs disk together and names were conflicting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;br /&gt;
[[Categoria:HowTo]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4508</id>
		<title>HowTo Single Disk to RAID</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4508"/>
		<updated>2016-11-19T19:11:54Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Again, saving, not complete&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
We found ourselves in the need of switching from a single disk root to a root backed by a RAID, here&#039;s how we did.&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
We sat up a new/old server, [[BitArno]], it has a nice /home of ~6TB backed by a RAID and a separate dick for the / partition. As the drive for the / was tested before getting to production resulting in no errors we tought we didn&#039;t need a RAID for it. We installed debian stable 8.1, sat up every service, went to bet to wake up with a hung server refusing to boot.&lt;br /&gt;
&lt;br /&gt;
An on site check was required, we got there and found out that the / drive was failing to reallocate sectors, we fsck&#039;ed it and it booted. &amp;quot;Great!&amp;quot; that same evening it was failing again and so we decided to switch from a single disk root to a RAID1 backed root expecially because we do use commodity hardware taken from old computers.&lt;br /&gt;
&lt;br /&gt;
== The general idea ==&lt;br /&gt;
&lt;br /&gt;
We wanted a way to easily switch from a drive to the RAID without having to back everything up and copy it over again with fewer downtime possible and so we decided to:&lt;br /&gt;
* Poweroff the server and attach the new disk of an equal size&lt;br /&gt;
* Power on  the server&lt;br /&gt;
* Create a RAID1 array composed by 2 drives but with a drive marked as missing&lt;br /&gt;
* Set LVM up on top of it (as the old drive had LVM (it&#039;s a 120GB drive just for the `/` parition, we wanted to have some space available if we&#039;ll ever find in the need)&lt;br /&gt;
* Boot a live distro and copy /&lt;br /&gt;
** Install the bootloader on the new drive adding the necessary modules for RAID and LVM&lt;br /&gt;
* Reboot the server from the RAID-memeber disk&lt;br /&gt;
* Check if everything is OK&lt;br /&gt;
* Add the old disk to the RAID and let mdadm resync the contents.&lt;br /&gt;
&lt;br /&gt;
== Step by step guide ==&lt;br /&gt;
Here I&#039;ll try to cover step by step the command we used, it has been a while since we did it so I&#039;m not 100% sure I&#039;ll remember everything&lt;br /&gt;
First a layout of the partition befor the RAID&lt;br /&gt;
 sda                        8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                     8:1    0   243M  0 part /boot &lt;br /&gt;
  ├─sda2                     8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                     8:5    0 114.3G  0 part  &lt;br /&gt;
    ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
    └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
And after the switch&lt;br /&gt;
&lt;br /&gt;
  sda                        8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                     8:1    0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sda2                     8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                     8:5    0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
  sde                        8:64   0 114.5G  0 disk  &lt;br /&gt;
  ├─sde1                     8:65   0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sde2                     8:66   0     1K  0 part  &lt;br /&gt;
  └─sde5                     8:69   0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
In this way we have two arrays, one for the boot and one for the LVM which contains the root and the swap&lt;br /&gt;
&lt;br /&gt;
First of all we need to wipe out every possible header from the new disk as it will become a RAID member&lt;br /&gt;
 dd if=/dev/zero of=/dev/sde bs=100M count=1&lt;br /&gt;
&lt;br /&gt;
Then we created the partitions with sfdisk about the same size as the first disk. It&#039;s not needed for them to be the same as it wasn&#039;t possible to copy the partitions with dd&lt;br /&gt;
&lt;br /&gt;
We need:&lt;br /&gt;
* one parition for the boot marked as Linux raid autodetect&lt;br /&gt;
* the other for LVM marked as Linux raid autodetect that takes the free space left&lt;br /&gt;
&lt;br /&gt;
We then proceeded to create the 2 RAIDS, /dev/sde is the new disk&lt;br /&gt;
 mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sde1 missing&lt;br /&gt;
 mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sde5 missing&lt;br /&gt;
&lt;br /&gt;
We made the filesystem on the newly created /dev/md1&lt;br /&gt;
 mkfs.ext2 /dev/md1&lt;br /&gt;
And copied the files &lt;br /&gt;
 mount /dev/md1 /mnt&lt;br /&gt;
 rsync -avPh /boot /mnt&lt;br /&gt;
 sync &amp;amp;&amp;amp; umount /mnt&lt;br /&gt;
We were done with /boot, ans we needed to create the LVM  volumes:&lt;br /&gt;
&lt;br /&gt;
First we marked /dev/md2 as LVM member then we told LVM /dev/md2 was a device it could use&lt;br /&gt;
 pvcreate /dev/md2&lt;br /&gt;
&lt;br /&gt;
We then created the virtual group that was going to host the logical volumes&lt;br /&gt;
 vgcreate ba-system /dev/md2&lt;br /&gt;
And created the logical volumes over it&lt;br /&gt;
 lvcreate -L30G -n root ba-system&lt;br /&gt;
 lvcreate -L4G -n swap ba-system&lt;br /&gt;
We createed the filesystem for root &lt;br /&gt;
 mkfs.ext4 /dev/mapper/ba--system-root&lt;br /&gt;
And for swap&lt;br /&gt;
 mkswap /dev/mapper/ba--system-swap&lt;br /&gt;
&lt;br /&gt;
Then it was time to poweroff the server and boot from a live, we choosed ArchLinux as it&#039;s lightweight and provides all the packages we need without forcefully bringing up an installation procedure&lt;br /&gt;
&lt;br /&gt;
We mounted the root partitions&lt;br /&gt;
 mkdir /mnt/old /mnt/new&lt;br /&gt;
 mount /dev/mapper/ba--system-root /mnt/new&lt;br /&gt;
 mount /dev/mapper/bitarno--system-root /mnt/old&lt;br /&gt;
&lt;br /&gt;
And copied the datas over:&lt;br /&gt;
 rsync -avPh /mnt/old/ /mnt/new&lt;br /&gt;
&lt;br /&gt;
We then proceeded to mount the boot partition &lt;br /&gt;
 mount /dev/md1 /mnt/new/boot&lt;br /&gt;
&lt;br /&gt;
And arch-chroot&#039;ed into it arch-chroot is a wonderfull piece of software that saves you from bind mounting /dev /proc and /sys in the chroot&lt;br /&gt;
&lt;br /&gt;
 arch-chroot /mnt/new&lt;br /&gt;
&lt;br /&gt;
It was time to install grub and regenerate the image to contain LVM and RAID modules, this was the hardest part as we wrongly supposed all the modules were already present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
We (of course) had some issues in the process:&lt;br /&gt;
&lt;br /&gt;
* Thougth the drive was of the same model the capacity was a little different and so we couldnt copy the partition scheme as we tougth we could do&lt;br /&gt;
* It&#039;s very important to generate the grub image inserting the modules and the boot parameter needed for lvm and RAID&lt;br /&gt;
* It&#039;s impossible to backup and restore the lvm too as for a while we found ourselves  with the 2 LVMs disk together and names were conflicting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;br /&gt;
[[Categoria:HowTo]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4507</id>
		<title>HowTo Single Disk to RAID</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowTo_Single_Disk_to_RAID&amp;diff=4507"/>
		<updated>2016-11-19T18:52:30Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Partial content, just not to loose everything&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
We found ourselves in the need of switching from a single disk root to a root backed by a RAID, here&#039;s how we did.&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
We sat up a new/old server, [[BitArno]], it has a nice /home of ~6TB backed by a RAID and a separate dick for the / partition. As the drive for the / was tested before getting to production resulting in no errors we tought we didn&#039;t need a RAID for it. We installed debian stable 8.1, sat up every service, went to bet to wake up with a hung server refusing to boot.&lt;br /&gt;
&lt;br /&gt;
An on site check was required, we got there and found out that the / drive was failing to reallocate sectors, we fsck&#039;ed it and it booted. &amp;quot;Great!&amp;quot; that same evening it was failing again and so we decided to switch from a single disk root to a RAID1 backed root expecially because we do use commodity hardware taken from old computers.&lt;br /&gt;
&lt;br /&gt;
== The general idea ==&lt;br /&gt;
&lt;br /&gt;
We wanted a way to easily switch from a drive to the RAID without having to back everything up and copy it over again with fewer downtime possible and so we decided to:&lt;br /&gt;
* Poweroff the server and attach the new disk of an equal size&lt;br /&gt;
* Power on  the server&lt;br /&gt;
* Create a RAID1 array composed by 2 drives but with a drive marked as missing&lt;br /&gt;
* Set LVM up on top of it (as the old drive had LVM (it&#039;s a 120GB drive just for the `/` parition, we wanted to have some space available if we&#039;ll ever find in the need)&lt;br /&gt;
* Rsync the files on the new disk (member of the array) &lt;br /&gt;
* Install the bootloader on the new drive adding the necessary modules for RAID and LVM&lt;br /&gt;
* Reboot the server from the RAID-memeber disk&lt;br /&gt;
* Check if everything is OK&lt;br /&gt;
* Add the old disk to the RAID and let mdadm resync the contents.&lt;br /&gt;
&lt;br /&gt;
== Step by step guide ==&lt;br /&gt;
Here I&#039;ll try to cover step by step the command we used, it has been a while since we did it so I&#039;m not 100% sure I&#039;ll remember everything&lt;br /&gt;
First a layout of the partition befor the RAID&lt;br /&gt;
 sda                        8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                     8:1    0   243M  0 part /boot &lt;br /&gt;
  ├─sda2                     8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                     8:5    0 114.3G  0 part  &lt;br /&gt;
    ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
    └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
And after the switch&lt;br /&gt;
&lt;br /&gt;
  sda                        8:0    0 114.5G  0 disk  &lt;br /&gt;
  ├─sda1                     8:1    0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sda2                     8:2    0     1K  0 part  &lt;br /&gt;
  └─sda5                     8:5    0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
  sde                        8:64   0 114.5G  0 disk  &lt;br /&gt;
  ├─sde1                     8:65   0   243M  0 part  &lt;br /&gt;
  │ └─md1                    9:1    0 242.8M  0 raid1 /boot&lt;br /&gt;
  ├─sde2                     8:66   0     1K  0 part  &lt;br /&gt;
  └─sde5                     8:69   0 114.3G  0 part  &lt;br /&gt;
    └─md2                    9:2    0 114.2G  0 raid1 &lt;br /&gt;
      ├─ba--system-root    253:0    0    30G  0 lvm   /&lt;br /&gt;
      └─ba--system-swap    253:3    0     4G  0 lvm   [SWAP]&lt;br /&gt;
&lt;br /&gt;
In this way we have two arrays, one for the boot and one for the LVM which contains the root and the swap&lt;br /&gt;
&lt;br /&gt;
First of all we need to wipe out every possible header from the new disk as it will become a RAID member&lt;br /&gt;
 dd if=/dev/zero of=/dev/sde bs=100M count=1&lt;br /&gt;
&lt;br /&gt;
Then we created the partitions with sfdisk about the same size as the first disk. It&#039;s not needed for them to be the same as it wasn&#039;t possible to copy the partitions with dd&lt;br /&gt;
&lt;br /&gt;
We need:&lt;br /&gt;
* one parition for the boot marked as Linux raid autodetect&lt;br /&gt;
* the other for LVM marked as Linux raid autodetect that takes the free space left&lt;br /&gt;
&lt;br /&gt;
We then proceeded to create the 2 RAIDS, /dev/sde is the new disk&lt;br /&gt;
 mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sde1 missing&lt;br /&gt;
 mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sde5 missing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
We (of course) had some issues in the process:&lt;br /&gt;
&lt;br /&gt;
* Thougth the drive was of the same model the capacity was a little different and so we couldnt copy the partition scheme as we tougth we could do&lt;br /&gt;
* It&#039;s very important to generate the grub image inserting the modules and the boot parameter needed for lvm and RAID&lt;br /&gt;
* It&#039;s impossible to backup and restore the lvm too as for a while we found ourselves  with the 2 LVMs disk together and names were conflicting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;br /&gt;
[[Categoria:HowTo]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowTo_SSL&amp;diff=4506</id>
		<title>HowTo SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowTo_SSL&amp;diff=4506"/>
		<updated>2016-11-19T17:48:12Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Bozza per il momento, contribuite e chiedete nella pag di discussione&lt;br /&gt;
&lt;br /&gt;
esterno-&amp;gt;idra-&amp;gt;idra.proxy+(certificato)-&amp;gt;rete_interna-&amp;gt;server_interno+(certificato)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Accedere a startssl.com e fare il validation wizard dell&#039;host&lt;br /&gt;
*mandare la mail a webmaster@eigenlab.org&lt;br /&gt;
*Controllare la mailinglist&lt;br /&gt;
*Copiare e incollare nella casella di verifica il codice&lt;br /&gt;
*Far partire il certificates wizard, skippare la creazione della chiave privata da parte di startssl (è molto importante!) e crearsi il certificato ssl con openssl sul server di eigenlab.&lt;br /&gt;
Bravo, lo hai fatto? Io non ero bono quindi ecco:&lt;br /&gt;
&lt;br /&gt;
Genera chiave e csr, 4096 è la lunghezza in bit della chiave privata. Questo comando fa tutto in uno step solo, e genera una chiave verificabile con sha256, e non più con sha1 che è vulnerabile:&lt;br /&gt;
&lt;br /&gt;
 openssl req -new -nodes -sha256 -keyout git.eigenlab.key -out git.eigenlab.org.csr -newkey rsa:4096&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*E dai in pasto il csr a startcom che ti darà il crt, &lt;br /&gt;
&lt;br /&gt;
*Mettere tutti i file (anche quelli della chain di fiducia) in /etc/ssl/apache/nomeserver/&lt;br /&gt;
&lt;br /&gt;
*Modificare ad ispirazione il vhost aggiungendo la roba per https&lt;br /&gt;
in /etc/apache/httpd.conf&lt;br /&gt;
&lt;br /&gt;
        NameVirtualHost *:80&lt;br /&gt;
        Listen 80&lt;br /&gt;
&lt;br /&gt;
        NameVirtualHost *:443&lt;br /&gt;
        Listen 443&lt;br /&gt;
&lt;br /&gt;
E nessun Namevirtualhost nei vhost files.&lt;br /&gt;
&lt;br /&gt;
Su idra: Va aggiunta la parte per https:&lt;br /&gt;
facsimile:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName    git.eigenlab.org&lt;br /&gt;
    CustomLog     /var/log/apache2/git.eigenlab.org-access.log combined&lt;br /&gt;
    ErrorLog      /var/log/apache2/git_error_log&lt;br /&gt;
    ServerAdmin   info@eigenlab.org&lt;br /&gt;
    &amp;lt;Proxy *&amp;gt;&lt;br /&gt;
        Order deny,allow&lt;br /&gt;
        Allow from all&lt;br /&gt;
    &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
    SSLEngine                 on&lt;br /&gt;
    SSLCipherSuite            ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL&lt;br /&gt;
    SSLProxyEngine            on&lt;br /&gt;
    SSLProtocol               All -SSlv3&lt;br /&gt;
    SSLCertificateFile        /etc/ssl/apache2/git.eigenlab.org/git.eigenlab.org.crt&lt;br /&gt;
    SSLCertificateKeyFile     /etc/ssl/apache2/git.eigenlab.org/git.eigenlab.org.key&lt;br /&gt;
    SSLCertificateChainFile   /etc/ssl/apache2/GandiStandardSSLCA.pem    &lt;br /&gt;
    ProxyRequests             off&lt;br /&gt;
    ProxyPreserveHost         on&lt;br /&gt;
    ProxyPass                 / https://git.eigenlab.org/&lt;br /&gt;
    ProxyPassReverse          / https://git.eigenlab.org/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Sulla macchina host niente proxy, sì ssl, eventuale directory:&lt;br /&gt;
facsimile&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName    git.eigenlab.org&lt;br /&gt;
    CustomLog     /var/log/apache2/git.eigenlab.org-access.log combined&lt;br /&gt;
    ErrorLog      /var/log/apache2/git_error_log&lt;br /&gt;
    ServerAdmin   info@eigenlab.org&lt;br /&gt;
    DocumentRoot  /home/git/gitlab/public&lt;br /&gt;
    &amp;lt;Directory /home/git/gitlab/public&amp;gt;&lt;br /&gt;
        # This relaxes Apache security settings.&lt;br /&gt;
        Order deny,allow&lt;br /&gt;
        Allow from all &lt;br /&gt;
        # MultiViews must be turned off.&lt;br /&gt;
        Options -MultiViews&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
    SSLEngine                 on&lt;br /&gt;
    SSLCipherSuite            ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:-SSLv2:+EXP:+eNULL&lt;br /&gt;
    SSLProxyEngine            on&lt;br /&gt;
    SSLProtocol               All -SSLv2&lt;br /&gt;
    SSLCertificateFile        /etc/ssl/apache2/git.eigenlab.org/git.eigenlab.org.crt&lt;br /&gt;
    SSLCertificateKeyFile     /etc/ssl/apache2/git.eigenlab.org/git.eigenlab.org.key&lt;br /&gt;
    SSLCertificateChainFile   /etc/ssl/apache2/Startssl.pem&lt;br /&gt;
    SSLCACertificateFile      /etc/ssl/apache2/ca.pem&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:HowTo]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToRete&amp;diff=4505</id>
		<title>HowToRete</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToRete&amp;diff=4505"/>
		<updated>2016-11-19T17:48:00Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bene, hai un&#039;antenna sul tetto, ed ora?&lt;br /&gt;
&lt;br /&gt;
Se tutto è andato a buon fine appena collegato alla rete il tuo computer riceverà delle informazioni come IP, rotte, DNS servers, etc. vediamo un po&#039; cosa sono, se funziona tutto e se hai accesso alla rete...&lt;br /&gt;
&lt;br /&gt;
Essendo noi sostenitori del software con licenze open e libere, usiamo quasi esclusivamente sistemi operativi open (linux, nella fattispecie), quindi per adesso il wiki è d&#039;aiuto solo per chi, come noi, ha interesse nel promuovere licenze open. Se sei interessato a partecipare ugualmente, ma possiedi un altro sistema operativo sentiti pure libero di aggiungere delle sezioni con guide per il tuo sistema operativo.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Quando ti connetti ad una rete di computers, stai usando un insieme di protocolli ed elementi fisici, le loro interazioni sono schematizzate in uno standard chiamato [http://it.wikipedia.org/wiki/Open_Systems_Interconnection OSI]. Per avere un&#039;idea del funzionamento della rete eigenNet, ma non solo, possiamo partire descrivendo il percorso che faranno i dati dalla sorgente alla destinazione, partiamo dal computer (il tuo) passo passo:&lt;br /&gt;
#Dei dati devono essere spediti dal computer client, per esempio il tuo, ad un server, per esempio uno dei server di wikipedia&lt;br /&gt;
#Il computer richiede ad un server DNS qual è l&#039;IP del server di wikipedia (non ti preoccupare, è tutto spiegato più sotto)&lt;br /&gt;
#Una volta ottenuto l&#039;IP, il computer proverà a connettersi al server per ricevere i dati, i testi, le immagini&lt;br /&gt;
#Per fare questo, creerà dei piccoli pacchetti di bits che verranno spediti alla scheda di rete (questa wireless o via cavo) contenenti la richiesta di questo o quel contenuto presente su wikipedia&lt;br /&gt;
#La scheda di rete si occuperà di trasmettere i pacchetti al passo successivo, nel caso della nostra rete i pacchetti verranno trasmessi fino all&#039;antenna che è sul tuo tetto o sul tetto più vicino, e da lì inizierà il percorso fino al gateway più vicino, dal quale raggiungerà il sito richiesto.&lt;br /&gt;
#Per il ritorno basta seguire il percorso inverso ma questa volta non serve il passaggio del DNS, visto che i pacchetti contengono già nei loro header gli IP corretti (come una raccomandata a/r).&lt;br /&gt;
&lt;br /&gt;
Un po&#039; di spiegazioni dei termini usati:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un IP è un indirizzo numerico (ad esempio 123.4.56.78) che identifica un PC in una rete, se il PC viene spostato su una rete diversa il suo IP sarà diverso. Ci sono due tipi di IP: quello classico (IPv4) e quello nuovissimo (IPv6).&lt;br /&gt;
**Un IPv4 è un indirizzo formato da 4 campi di 8 bit ciascuno, in decimale i valori oscillano da 0 a 255 (ad esempio 123.4.56.78)&amp;lt;br /&amp;gt;&lt;br /&gt;
::https://en.wikipedia.org/wiki/IPv4&amp;lt;br /&amp;gt;&lt;br /&gt;
:*Un IPv6 è un indirizzo formato da 8 campi di 16 bit ciascuno, in base 16 i valori oscillano da 0000 a FFFF (ad esempio 2a00:1508:1:f010:abcd:1234:ef56:7890)&amp;lt;br /&amp;gt;&lt;br /&gt;
::https://en.wikipedia.org/wiki/IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Quando ci si connette ad una rete, o si imposta sul proprio PC un IP statico o si chiede al DHCP che ci dia lui un IP.&lt;br /&gt;
:Il [http://it.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol DHCP] è protocollo che permette di avere assegnati i parametri corretti al momento della connessione, esso provvederà (se correttamente configurato lato server) a fornirci principalmente IP, rotte e DNS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Il gateway è chi (il modem di casa, il router wireless, un server...) ci permette di raggiungere internet, è l&#039;apparecchio che inoltrerà i nostri pacchetti verso il resto del mondo e da cui passeranno le risposte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un pacchetto è un blocco di 1 e 0 che viaggia su una linea di comunicazione. Chi vuole inviare dei dati li traduce in uni e zeri, li divide in pacchetti (di solito la dimensione massima di un pacchetto è circa un kilobyte e mezzo) e aggiunge all&#039;inizio del pacchetto (header) delle informazioni come l&#039;IP di destinazione e l&#039;IP del mittente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Una interfaccia di rete rappresenta la componente fisica (di solito, ma non solo) con cui il PC si interfaccia col mondo esterno, ad esempio una interfaccia di rete può essere la porta a cui attacchi il cavo di rete (porta ethernet, su Linux solitamente si chiama eth0) oppure la scheda wireless del portatile (solitamente si chiama wlan0).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo computer in base al suo IP. Ad esempio, una rotta può essere qualcosa tipo: &amp;quot;per comunicare con tutti i PC che hanno un IP che inizia con 12.34. (la destinazione, può riferirsi ad un IP solo o a un grosso gruppo di IP che iniziano tutti nello stesso modo) devi passare tramite il PC che ha IP 11.22.33.44 (il gateway)&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
:Perciò ogni rotta è un&#039;indicazione &amp;quot;stradale&amp;quot; ed è strutturata così:&lt;br /&gt;
 :{| border=1&lt;br /&gt;
    | primo campo&lt;br /&gt;
    | destinazione (default = 0.0.0.0/0 ovvero tutto)&lt;br /&gt;
    | es. 192.168.1.0/24&lt;br /&gt;
    |-&lt;br /&gt;
    | secondo campo&lt;br /&gt;
    | gateway ovvero colui che ti permette di raggiungere la destinazione&lt;br /&gt;
    | es. via 192.168.1.1&lt;br /&gt;
    |-&lt;br /&gt;
    | campo dev&lt;br /&gt;
    | indica l&#039;interfaccia di rete (ad es. wireless o cavo o vpn) attraverso la quale si raggiunge la destinazione&lt;br /&gt;
    | es. dev wlan0&lt;br /&gt;
    |}&lt;br /&gt;
&lt;br /&gt;
Apriamo il terminale: nella maggior parte delle distribuzioni Linux lo troverete sotto &lt;br /&gt;
 Accessori -&amp;gt; Terminale&lt;br /&gt;
o&lt;br /&gt;
 Sistema -&amp;gt; Terminale&lt;br /&gt;
A seconda dell&#039;ambiente grafico.&lt;br /&gt;
&lt;br /&gt;
Useremo la convenzione per cui i comandi che iniziano con&lt;br /&gt;
 user@computer $&lt;br /&gt;
sono dati dall&#039;utente mentre quelli che cominciano con&lt;br /&gt;
 user@computer #&lt;br /&gt;
sono dati dal superutente, per diventare superutente basta digitare&lt;br /&gt;
 user@computer $ su&lt;br /&gt;
o&lt;br /&gt;
 user@computer $ sudo su&lt;br /&gt;
&lt;br /&gt;
Usando il terminale su Linux, vediamo la configurazione delle rotte sul nostro PC, per esempio con il commando &amp;quot;ip route show&amp;quot;, ottenendo qualcosa di simile a:&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ip route show&lt;br /&gt;
 default via 10.175.0.101 dev wlan0  proto static &lt;br /&gt;
 10.0.0.0/8 via 172.18.0.1 dev eigennet &lt;br /&gt;
 10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 &lt;br /&gt;
 172.16.0.0/12 via 172.18.0.1 dev eigennet &lt;br /&gt;
 172.18.0.0/24 dev eigennet  proto kernel  scope link  src 172.18.0.213 &lt;br /&gt;
 192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111 &lt;br /&gt;
&lt;br /&gt;
*&amp;quot;10.0.0.0/8 via 172.18.0.1 dev eigennet&amp;quot; vuol dire che tutti i computer con IP 10.X.Y.Z  sono raggiungibili attraverso il gateway avente IPv4 172.18.0.1 e l&#039;interfaccia di rete &amp;quot;eigennet&amp;quot; (in questo caso non si tratta di interfaccia fisica, come quella via cavo o wireless bensì di una interfaccia che comunica con una [[VPN]], argomento molto più avanzato).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;10.174.0.0/15 dev wlan0&amp;quot; vuol dire che tutti i computer con IP 10.17{cifra che può essere 4 o 5}.X.Y sono raggiungibili direttamente (cioè senza dover passare da un gateway) attraverso l&#039;interfaccia wireless chiamata &amp;quot;wlan0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Un protocollo di routing è ciò che decide come instradare il traffico tra i nodi gestendo le rotte. Nella nostra rete si usano [http://www.open-mesh.org/projects/batman-adv/wiki B.A.T.M.A.N.-adv] e [http://www.pps.univ-paris-diderot.fr/~jch/software/babel/ babel] per i nodi che forniscono uscita su internet.&lt;br /&gt;
&lt;br /&gt;
*I DNS (Domain Name Server) sono dei server che conoscono le associazioni &amp;quot;nome del sito&amp;quot; &amp;lt;-&amp;gt; &amp;quot;indirizzo IP del server su cui sta il sito&amp;quot;. Il punto è che la comunicazione avviene tra l&#039;IP del PC e l&#039;IP del server, dunque non si può contattare un sito, esempio &amp;quot;eigenlab.org&amp;quot; senza prima conoscerne l&#039;indirizzo IP. Quando noi cerchiamo di contattare un sito scrivendone il nome (come eigenlab.org) il nostro PC farà una domanda ad un DNS (del quale conosciamo già l&#039;IP perché ce lo ha detto il DHCP server) il quale ci risponderà con l&#039;indirizzo IP associato a quel nome (nel nostro caso ad esempio l&#039;associazione sarà eigenlab.org-&amp;gt;10.175.0.85).&lt;br /&gt;
:Se ti interessa approfondire cos&#039;è un server DNS puoi dare un&#039;occhiata &amp;lt;br /&amp;gt;&lt;br /&gt;
:https://en.wikipedia.org/wiki/Domain_Name_System&amp;lt;br /&amp;gt;&lt;br /&gt;
:Per vedere come funzionano i DNS distribuiti nella rete eigenNet dai un occhiata a&lt;br /&gt;
:https://wiki.eigenlab.org/index.php/ConfigureBackUpAnycastDNS&lt;br /&gt;
&lt;br /&gt;
Bene innanzitutto vediamo se tutto è ok&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aprendo un terminale digitate&lt;br /&gt;
&lt;br /&gt;
 ping 10.174.0.100 [invio]&lt;br /&gt;
&lt;br /&gt;
Questo farà in modo che il tuo computer provi a parlare con uno dei server interni alla rete, quello che farà sarà mandare tanti piccoli pacchetti con scritto PING ed aspetterà altrettanti PONG in risposta dal server che ha IPv4 10.174.0.100.&lt;br /&gt;
&lt;br /&gt;
Se compare qualcosa simile a:&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ping 10.174.0.100&lt;br /&gt;
 PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=1 ttl=63 time=247 ms&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=5 ttl=63 time=70.9 ms&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=7 ttl=63 time=124 ms&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=8 ttl=63 time=80.9 ms&lt;br /&gt;
&lt;br /&gt;
Allora stai comunicando con il server e sei dentro la rete :-)&lt;br /&gt;
&lt;br /&gt;
Per interrompere il comando, premi “Ctrl+C” (come per fare copia) che nella shell Linux termina un programma&lt;br /&gt;
&lt;br /&gt;
 --- 10.174.0.100 ping statistics ---&lt;br /&gt;
 8 packets transmitted, 4 received, 50% packet loss, time 7029ms&lt;br /&gt;
 rtt min/avg/max/mdev = 70.992/130.862/247.472/70.216 ms&lt;br /&gt;
&lt;br /&gt;
Questa sezione da qualche informazione aggiuntiva, ovvero quanti PING non hanno ricevuto un PONG, il minor tempo di risposta, quello medio, quello massimo e la deviazione standard dei tempi.&lt;br /&gt;
&lt;br /&gt;
Altrimenti se il risultato è &lt;br /&gt;
&lt;br /&gt;
 user@computer $ ping 10.174.0.100&lt;br /&gt;
 PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data.&lt;br /&gt;
 ^C (ovvero Ctrl+C per interrompere)&lt;br /&gt;
 --- 10.174.0.100 ping statistics ---&lt;br /&gt;
 *70 packets transmitted, 0 received, 100% packet loss, time 69058ms*&lt;br /&gt;
&lt;br /&gt;
Vuol dire che non sei collegato alla rete, dobbiamo iniziare a fare un po&#039; di indagini. Intanto capiamo come è configurato il tuo computer.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Cominciamo col controllare un elemento per volta fra quelli coinvolti solitamente nei problemi dal lato client.&lt;br /&gt;
&lt;br /&gt;
=== Controllo Dell&#039;IP===&lt;br /&gt;
&lt;br /&gt;
Sempre da un terminale prova a scrivere&lt;br /&gt;
&lt;br /&gt;
Se sei connesso in wireless &lt;br /&gt;
 ip address show dev wlan0 (o il nome dell&#039;interfaccia wireless, ad es. potrebbe essere wlan1, eth1, ath0, ra0) [invio]&lt;br /&gt;
&lt;br /&gt;
Se sei connesso via cavo &lt;br /&gt;
&lt;br /&gt;
 ip address show dev eth0 (o il nome dell&#039;interfaccia via cavo) [invio]&lt;br /&gt;
&lt;br /&gt;
se il risultato è simile a&lt;br /&gt;
 user@computer $  ip address show dev [nome interfaccia]&lt;br /&gt;
 3: [interfaccia]: : &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1350 qdisc pfifo_fast state UNKNOWN qlen 500&lt;br /&gt;
     link/ether e6:b9:06:73:14:1a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 10.175.0.213/15 brd 10.175.0.255 scope global &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
     inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
     inet6 fe80::e4b9:6ff:fe73:141a/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allora hai un indirizzo ipv4 e ipv6 impostati. Non stupirti se vedi tutti questi indirizzi IP diversi, ne puoi avere quanti vuoi anche sulla stessa interfaccia di rete (anche se normalmente sono pochi).&lt;br /&gt;
&lt;br /&gt;
Cosa guardare:&lt;br /&gt;
 &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; &lt;br /&gt;
*è lo stato dell&#039;interfaccia; le cose importanti sono UP, LOWER_UP, che ci dicono che l&#039;interfaccia è attiva (potrebbe essere disattivata via software, via hardware ad esempio col bottoncino della wireless fisicamente presente sul portatile oppure semplicemente potrebbe esserci il cavo di rete staccato o rovinato (nel caso di scritta NO-CARRIER)).&lt;br /&gt;
&lt;br /&gt;
 inet 10.175.0.213/15 brd 10.175.0.255 scope global &lt;br /&gt;
&lt;br /&gt;
*10.175.0.213 è l&#039;IPv4 dell&#039;interfaccia: la nostra subnet (cioè il nostro gruppo di IP, quelli che il tuo computer, essendo collegato ad eigenNet, può contattare direttamente senza passare da un gateway) inizia con *10.17{5,4}* se hai un IP che comincia in quel modo è uno dei nostri; lo slash in fondo è la dimensione subnet, 15 è corretto.&lt;br /&gt;
&lt;br /&gt;
 inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global &lt;br /&gt;
*questo è l&#039;IPv6 dell&#039;interfaccia: la nostra subnet inizia con *2001:1418:1a9:eebb*, se hai un IP che comincia in quel modo è uno dei nostri, come prima lo slash in fondo indica la subnet, 64 è corretto. Ignora la riga &amp;quot;inet6 fe80[...]/64 scope link&amp;quot; che riguarda un indirizzo presente anche se non si è davvero connessi. &lt;br /&gt;
&lt;br /&gt;
==== Nessun IP ====&lt;br /&gt;
Se non hai gli IP impostati possiamo guardare le interfacce, in questo caso ci viene in aiuto il comando &lt;br /&gt;
&lt;br /&gt;
 ip link&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ip link &lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
 2: eth0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000&lt;br /&gt;
     link/ether 00:23:8b:0b:b5:39 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
 3: wlan0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000&lt;br /&gt;
    link/ether 00:23:4d:69:d5:f7 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&lt;br /&gt;
Anche qui possiamo vedere che ad esempio l&#039;intefaccia eth0 &lt;br /&gt;
  &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; &lt;br /&gt;
Dice NO-CARRIER ovvero non collegato, potrebbe essere il caso di controllare l&#039;attacco del cavo ethernet (cavo staccato o cavo rovinato)&lt;br /&gt;
&lt;br /&gt;
E con state DOWN ci informa  che l&#039;interfaccia eth0 è spenta&lt;br /&gt;
&lt;br /&gt;
Mentre l&#039;interfaccia wlan0 &lt;br /&gt;
 &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt;&lt;br /&gt;
Dice che è collegata e tutto funziona&lt;br /&gt;
&lt;br /&gt;
Una possibile soluzione nel caso che una delle interfacce avesse come state DOWN è la seguente:&lt;br /&gt;
 sudo ip link set dev &amp;lt;interfaccia&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
Dopodiché ricontrollare se l&#039;interfaccia è UP e provare a riconnettersi alla rete per vedere se viene assegnato un IP.&lt;br /&gt;
&lt;br /&gt;
Altre cose &#039;&#039;esotiche&#039;&#039; che potrebbero impedire ad una interfaccia di rete di essere UP: il bottoncino della wireless sul portatile è su off, è necessario sbloccare l&#039;interfaccia wireless via software con &lt;br /&gt;
 rfkill unblock all&lt;br /&gt;
oppure raramente può esser necessario ricaricate i driver della scheda di rete, trovate il nome del driver con&lt;br /&gt;
 lspci -k&lt;br /&gt;
sotto &amp;quot;Network controller&amp;quot; o &amp;quot;Ethernet controller&amp;quot;, dopo &amp;quot;Kernel driver in use:&amp;quot;, lo rimuovete e ricaricate con&lt;br /&gt;
 sudo rmmod &amp;lt;nome del driver&amp;gt;; sudo modprobe &amp;lt;nome del driver&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nel caso l&#039;interfaccia indicasse UP per un certo tempo ma non si ricevesse un IP dal server DHCP è possibile capire cosa stia succedendo:&lt;br /&gt;
*Se usate NetworkManager controllate se siete associati all&#039;Access Point (AP) di eigennet con&lt;br /&gt;
 nm-tool&lt;br /&gt;
*Altrimenti provate con&lt;br /&gt;
 iwconfig&lt;br /&gt;
* O ancora &lt;br /&gt;
 iw dev &amp;lt;interfaccia&amp;gt; link&lt;br /&gt;
&lt;br /&gt;
Che vi daranno informazioni sulla connessione wireless, sopratutto i primi campi. Se risultate associati all&#039;access point (cioè c&#039;è scritto il nome della rete, ad esempio &amp;quot;eigenNet&amp;quot;) allora provate a dare&lt;br /&gt;
 sudo dhcpcd wlan0 &lt;br /&gt;
oppure, se lamenta che dhcpcd non esiste&lt;br /&gt;
 sudo dhclient -v wlan0&lt;br /&gt;
Che cercherà nuovamente di ottenere i parametri (IP, rotte, DNS...) chiedendo se nella rete sono presenti dei server DHCP. In base all&#039;output (il testo che esce dai comandi sopra riportati) capirete se ci sono altri problemi e potrete contattarci per segnalarlo ed aiutarci.&lt;br /&gt;
&lt;br /&gt;
=== Controllo Delle Rotte ===&lt;br /&gt;
&lt;br /&gt;
A questo punto controlliamo le rotte. Le possiamo controllare usando il comando &lt;br /&gt;
&lt;br /&gt;
 ip route show&lt;br /&gt;
&lt;br /&gt;
Ottenendo qualcosa di simile a&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ip route show&lt;br /&gt;
 default via 10.175.0.101 dev wlan0  proto static &lt;br /&gt;
 10.0.0.0/8 via 172.18.0.1 dev eigennet &lt;br /&gt;
 10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 &lt;br /&gt;
 172.16.0.0/12 via 172.18.0.1 dev eigennet &lt;br /&gt;
 172.18.0.0/24 dev eigennet  proto kernel  scope link  src 172.18.0.213 &lt;br /&gt;
 192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111 &lt;br /&gt;
&lt;br /&gt;
==== Nessuna rotta ====&lt;br /&gt;
Per navigare dentro eigennet non serve una rotta global (0.0.0.0/0), perché è una rete locale e, una volta connessi, si può raggiungere ogni risorsa dall&#039;interno. &lt;br /&gt;
&lt;br /&gt;
Se quindi il comando vi restituisce qualcosa di simile a &lt;br /&gt;
 user@computer $ ip route show&lt;br /&gt;
 10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 &lt;br /&gt;
&lt;br /&gt;
Vuol dire che avete la possibilità di raggiungere tutte le risorse interne ma che non potete raggiungere internet. Questo può essere a causa di qualche problema con i gateway o un problema nel raggiungerli. Se conoscete l&#039;IP della macchina che dovrebbe farvi da gateway per il mondo, provate a pingarla (ovvero fare un ping al suo indirizzo) per vedere se la raggiungete. Nel caso non riusciste fatecelo sapere, qualcosa sta succedendo sulla rete.&lt;br /&gt;
&lt;br /&gt;
==== Rotta presente ma comunque non raggiungo internet ====&lt;br /&gt;
&lt;br /&gt;
Nel caso ci sia una rotta definita anche per default, ma non foste comunque in grado di connettervi potete aiutarci nel risolvere il problema digitando in un terminale il comando&lt;br /&gt;
 traceroute wikipedia.org&lt;br /&gt;
o &lt;br /&gt;
 tracepath wikipedia.org&lt;br /&gt;
&lt;br /&gt;
questo dovrebbe dare un risultato simile a &lt;br /&gt;
&lt;br /&gt;
 user@computer $ tracepath wikipedia.org&lt;br /&gt;
 1:  etherpad.eigenlab.org                           0.090ms pmtu 1500&lt;br /&gt;
 1:  10.175.0.101                                       0.811ms &lt;br /&gt;
 1:  10.175.0.101                                       0.496ms &lt;br /&gt;
 2:  131.114.186.1                                     0.946ms &lt;br /&gt;
 3:  fib-ser.unipi.it                                      0.945ms asymm  4 &lt;br /&gt;
 4:  ru-unipi-rx1-pi1.pi1.garr.net                   0.970ms &lt;br /&gt;
 5:  rx1-pi1-rx1-rm2.rm2.garr.net                 9.030ms &lt;br /&gt;
 6:  r-rm2-rx1-rm2.rm2.garr.net                   5.639ms asymm  7 &lt;br /&gt;
 7:  no reply                                              alcuni server nascondono il loro nome&lt;br /&gt;
 8:  no reply                                              &lt;br /&gt;
 9:  tiscali.mil01.atlas.cogentco.com           18.962ms asymm 10 &lt;br /&gt;
 10:  xe-9-2-0.was10.ip4.tinet.net                 113.285ms asymm 15 &lt;br /&gt;
 11:  no reply&lt;br /&gt;
 12:  no reply&lt;br /&gt;
 13:  no reply&lt;br /&gt;
 14:  no reply&lt;br /&gt;
 15:  no reply&lt;br /&gt;
 16: 208.80.152.201                                              152.453ms reached&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questo comando restituisce il percorso che hanno fatto i nostri pacchetti per raggiungere la destinazione, nel caso non riusciste a vedere un &amp;quot;&amp;quot;reached&amp;quot;&amp;quot; in fondo all&#039;output del comando segnalatecelo includendo anche l&#039;ultimo ip che vedete.&lt;br /&gt;
&lt;br /&gt;
Per servizi interni alla rete, per come essa è strutturata, questo comando non funziona&lt;br /&gt;
&lt;br /&gt;
=== Controllo dei DNS === &lt;br /&gt;
Se tutto è andato bene ma non riuscite comunque a navigare potrebbe essere un problema di DNS per vedere quali avete impostati controllate il file /etc/resolv.conf&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Il risultato dovrebbe essere simile a questo:&lt;br /&gt;
&lt;br /&gt;
 user@computer $ cat /etc/resolv.conf &lt;br /&gt;
 nameserver 10.174.0.101&lt;br /&gt;
 nameserver 10.174.0.100&lt;br /&gt;
&lt;br /&gt;
queste due righe indicano gli IP dei server DNS, se il file è vuoto, lancia questo comando da shell&lt;br /&gt;
&lt;br /&gt;
 echo -e &amp;quot;nameserver 10.174.0.100\nnameserver 10.174.0.101&amp;quot;&amp;gt;/etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Che sovrascrive in /etc/resolv.conf con le due righe corrette.&lt;br /&gt;
&lt;br /&gt;
Un sintomo del fatto che i DNS non funzionino può essere che facendo&lt;br /&gt;
 ping google.it&lt;br /&gt;
&lt;br /&gt;
il terminale non reagisce (come succedeva all&#039;inizio della pagina ) ma&lt;br /&gt;
 ping 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
Invece funziona.&lt;br /&gt;
&lt;br /&gt;
Per fare manualmente la richiesta dell&#039;IP associato ad un nome&lt;br /&gt;
&lt;br /&gt;
 dig nomesi.to&lt;br /&gt;
&lt;br /&gt;
o se volete chiedere ad un server particolare (ad esempio a 8.8.8.8, un dns di google)&lt;br /&gt;
&lt;br /&gt;
 dig @8.8.8.8 nomesi.to&lt;br /&gt;
&lt;br /&gt;
Dig solitamente è installato di default, se non lo fosse cercate su internet il nome della vostra distribuzione più dig (solitamente sta in qualche programma chiamato dnsutils, bindtools...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ma la mia antenna funziona/è accesa? ===&lt;br /&gt;
&lt;br /&gt;
Per controllare che l&#039;antenna sia accesa si possono sfruttare un paio di cose:&lt;br /&gt;
&lt;br /&gt;
* Prima di tutto collegarsi via cavo all&#039;antenna usando il cavo ethernet che arriva in casa o attaccandosi al POE (Power Over Ethernet ovvero lo scatolino nero che alimenta l&#039;antenna usando la porta con scritto LAN, NON POE (perché altrimenti forse si frigge la scheda di rete)&lt;br /&gt;
 &lt;br /&gt;
* controllare che sull&#039;interfaccia cablata &#039;&#039;&#039;non&#039;&#039;&#039; compaia NO-CARRIER col comando&lt;br /&gt;
&lt;br /&gt;
 ip link show dev &amp;lt;interfaccia&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*provare a fare dei ping IPv6 link local, ovvero provare a pingare un indirizzo che viene tradotto dal protocollo ipv6 in “ ogni scheda attaccata direttamente all&#039;interfaccia “ questo si può fare digitando il comando&lt;br /&gt;
&lt;br /&gt;
 ping6 ff02::1%&amp;lt;nome dell&#039;interfaccia di rete cablata ad esempio eth0&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se si riceve risposta bisogna prendere nota dell&#039;IPv6 locale della propria scheda di rete ethernet, in modo da poter vedere se l&#039;antenna risponde ai ping. Questo si fa facilmente con&lt;br /&gt;
&lt;br /&gt;
 ip -6 address show dev eth0&lt;br /&gt;
&lt;br /&gt;
e guardando l&#039;IP che comincia con fe80:: , se ai ping risponde anche un altro IP, l&#039;antenna è accesa e risponde&lt;br /&gt;
=== Entrare nelle antenne ===&lt;br /&gt;
Abbiamo trovato nella sezione precedente l&#039;IP dell&#039;antenna. Per entrarci dobbiamo usare il programma SSH, che permette di interagire con l&#039;antenna facendo apparire sul nostro computer il suo terminale, i comandi disponibili quindi saranno quelli installati sull&#039;antenna.&lt;br /&gt;
Il comando da lanciare è:&lt;br /&gt;
 ssh -i &amp;lt;chiaveprivata&amp;gt; root@&amp;lt;ip antenna&amp;gt; [invio]&lt;br /&gt;
A questo punto il sistema chiederà di inserire la password della chiave (nel caso fosse protetta), altrimenti l&#039;antenna ci darà subito il benvenuto con la ricetta di un drink seguito dal prompt.&lt;br /&gt;
 BusyBox v1.19.4 (2012-10-02 10:56:10 CEST) built-in shell (ash)&lt;br /&gt;
 Enter &#039;help&#039; for a list of built-in commands. &lt;br /&gt;
   _______                     ________        __&lt;br /&gt;
  |       |.-----.-----.-----.|  |  |  |.----.|  |_&lt;br /&gt;
  |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|&lt;br /&gt;
  |_______||   __|_____|__|__||________||__|  |____|&lt;br /&gt;
           |__| W I R E L E S S   F R E E D O M&lt;br /&gt;
  -----------------------------------------------------&lt;br /&gt;
  ATTITUDE ADJUSTMENT (Bleeding Edge, r33603)&lt;br /&gt;
  -----------------------------------------------------&lt;br /&gt;
   * 1/4 oz Vodka      Pour all ingredients into mixing&lt;br /&gt;
   * 1/4 oz Gin        tin with ice, strain into glass.&lt;br /&gt;
   * 1/4 oz Amaretto&lt;br /&gt;
   * 1/4 oz Triple sec&lt;br /&gt;
   * 1/4 oz Peach schnapps&lt;br /&gt;
   * 1/4 oz Sour mix&lt;br /&gt;
   * 1 splash Cranberry juice&lt;br /&gt;
  -----------------------------------------------------&lt;br /&gt;
 root@OpenWrt:~#&lt;br /&gt;
&lt;br /&gt;
Vediamo ora come fare alcune operazioni comuni:&lt;br /&gt;
&lt;br /&gt;
* Per ottenere la lista dei nodi raggiungibili si usa il comando &amp;quot;batctl originators&amp;quot; o il comando abbreviato &amp;quot;batctl o&amp;quot;&lt;br /&gt;
 root@OpenWrt:~# batctl o&lt;br /&gt;
 [B.A.T.M.A.N. adv 2012.3.0, MainIF/MAC: br-clients/00:27:22:c3:34:cb (bat0)]&lt;br /&gt;
   Originator      last-seen (#/255)           Nexthop [outgoingIF]:   Potential nexthops ...&lt;br /&gt;
 00:27:22:c3:34:38    0.070s   (170) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (170)&lt;br /&gt;
 00:27:22:c3:34:86    0.070s   (200) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (200)&lt;br /&gt;
 de:9f:db:5c:c0:85    0.420s   (169) 00:27:22:c2:34:86 [     wlan0]: de:9f:db:5c:c0:85 (  0) 00:27:22:c2:34:86 (169)&lt;br /&gt;
 06:15:6d:fc:71:f4    0.840s   (147) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (147)&lt;br /&gt;
 00:15:6d:fd:71:f4    0.400s   (148) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (148)&lt;br /&gt;
 dc:9f:db:5d:c0:85    0.400s   (168) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (168)&lt;br /&gt;
 00:15:6d:7b:97:0b    0.290s   (143) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (143)&lt;br /&gt;
 00:27:22:c2:34:86    0.600s   (200) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (200)&lt;br /&gt;
La prima colonna indica il nodo destinazione, Nexthop è il prossimo nodo a cui verranno consegnati i pacchetti. Gli originators sono tutti i nodi raggiungibili direttamente o indirettamente, cioè tutta la porzione di rete che possiamo vedere; gli indirizzi contenuti nella colonna NextHop sono i nostri vicini più prossimi, ovvero solamente quelli direttamente raggiungibili.&lt;br /&gt;
&lt;br /&gt;
* Per abilitare o disabilitare la modalità &amp;quot;hotspot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La modalità &amp;quot;access point&amp;quot; o &amp;quot;hotspot&amp;quot; permette ai normali computer di connettersi ad eigenNet, purché ci sia un server DHCP nelle vicinanze (oppure puoi usare un indirizzo IP statico).&lt;br /&gt;
Normalmente, è consigliabile avere questa opzione disabilitata e utilizzare un access point dedicato, in quanto influisce negativamente sulle performance come nodo della rete.&lt;br /&gt;
&lt;br /&gt;
Per attivare la modalità &amp;quot;hotspot&amp;quot;, è necessario cambiare un paio di valori nel file di configurazione &amp;lt;pre&amp;gt;/etc/config/eigennet&amp;lt;/pre&amp;gt; utilizzando vim, l&#039;editor di testo predefinito.&lt;br /&gt;
&lt;br /&gt;
La riga &amp;lt;pre&amp;gt;option wifi_clients &#039;false&#039;&amp;lt;/pre&amp;gt; deve diventare &amp;lt;pre&amp;gt;option wifi_clients &#039;true&#039;&amp;lt;/pre&amp;gt; o viceversa, nel caso si volesse disattivare.&lt;br /&gt;
&lt;br /&gt;
La riga &amp;lt;pre&amp;gt;option bootmode &#039;2&#039;&amp;lt;/pre&amp;gt; deve diventare &amp;lt;pre&amp;gt;option bootmode &#039;1&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;anntenna va poi riavviata. La seconda modifica chiede all&#039;antenna di rileggere la configurazione e applicare le modifiche, il valore di bootmode tornerà automaticamente a 2.&lt;br /&gt;
&lt;br /&gt;
* Per cambiare la chiave di accesso all&#039;antenna bisogna modificare la riga &amp;lt;pre&amp;gt;option sshAuthorizedKeys &#039;...&#039;&amp;lt;/pre&amp;gt; sostituendo al posto dei puntini, il contenuto del file della chiave pubblica.&lt;br /&gt;
&lt;br /&gt;
[http://support.suso.com/supki/SSH_Tutorial_for_Linux Tutorial SSH]&lt;br /&gt;
[http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Editors/ViIntro.html Tutorial vim]&lt;br /&gt;
&lt;br /&gt;
=== Riavviare ===&lt;br /&gt;
Una cosa buona, se l&#039;antenna per qualche motivo non si comporta bene, è riavviarla. Per farlo basta staccare il cavo attaccato allo scatolino nero alla porta con scritto POE oppure togliere la corrente se per caso il montaggio è stato fatto portando la corrente sul tetto, aspettare 12 secondi contando&lt;br /&gt;
* Prealpi Trivenete 1 &lt;br /&gt;
* Alpi Giulie 2&lt;br /&gt;
* Alpi Carniche 3&lt;br /&gt;
* ...&lt;br /&gt;
* Alpi Liguri e Alpi Marittime 12&lt;br /&gt;
&lt;br /&gt;
Se comunque non sei riuscito a risolvere [https://eigenlab.org/index.php/dove-siamo contattaci].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Su eigenNet ci sono diversi servizi, li puoi scoprire qui:&lt;br /&gt;
&lt;br /&gt;
http://eigenlab.org/index.php/eigennet/servizi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;br /&gt;
[[Categoria:HowTo]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=4504</id>
		<title>HowToOCsync</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=4504"/>
		<updated>2016-11-19T17:47:46Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abbiamo un istanza di [https://owncloud.org/ Owncloud] su un server della rete, ottimo, mo che ci facciamo? Oltre a poterlo usare per caricare i files e condividerli con gruppi/utenti/tiziaccasosuinternet lo possiamo pure usare per evitare di sincronizzare la nostra rubrica e i nostri calendari con Google.&lt;br /&gt;
=Il problema=&lt;br /&gt;
Di default da una certa versione di Android i contatti vengono automaticamente sincronizzati coi server di Google, se non si desidera bisogna esplicitamente dirgli di non farlo ed usare un account locale. &lt;br /&gt;
Da Android 6 invece non è più possibile (almeno sui telefoni sui quali ho messo le mani) avere account locali e quindi i contatti e calendari sono *forzatamente* caricati su  google.&lt;br /&gt;
=La svolta=&lt;br /&gt;
La nostra istanza di owncloud ha abilitato il modulo per i contatti, quello per il calendario ed anche un modulo per le todolist, vediamo come usarli:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039; Caricando i tuoi dati ti stai fidando del proprietario del server e di chi ha accesso alla macchina, chiunque con un accesso alla macchina potrà leggere i dati caricati&lt;br /&gt;
&lt;br /&gt;
==Contatti==&lt;br /&gt;
La tecnologia che OC usa per syncronizzare il contatti è [https://en.wikipedia.org/wiki/CardDAV carddav], il nostro server forza l&#039;uso di HTTPS (connessioni cifrate fra dispositivo e server verificate da StarCom) quindi i dati non viaggiano mai in &amp;quot;chiaro&amp;quot; sulla rete, nè Internet ne eigenNet. &lt;br /&gt;
====Cosa ci serve:====&lt;br /&gt;
* Uno smartphone/computer/tablet o qualsiasi cosa che possa usare carddav e abbia una rubrica&lt;br /&gt;
* Per Android l&#039;app [https://f-droid.org/repository/browse/?fdfilter=davdroid&amp;amp;fdid=at.bitfire.davdroid Davdroid] installabile da [https://f-droid.org/about/ F-droid] (Un repository aggiuntivo per applicazioni OpenSource per android)&lt;br /&gt;
* Un account sul nostro [https://apollo.eigenlab.org/owncloud/ Owncloud]&lt;br /&gt;
* Internet/eigenNet&lt;br /&gt;
&lt;br /&gt;
E ora con ordine:&lt;br /&gt;
# [[Installare F-droid]]&lt;br /&gt;
# Cerca l&#039;app &#039;Davdroid ed installala&lt;br /&gt;
# Apri Davdroid&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Davdroid.png| Pigia sulla chiave col + &lt;br /&gt;
File:DavdroidLogin.png&lt;br /&gt;
File:DavLogin.png                                                                                                                                                                              &lt;br /&gt;
File:DavNext.png|L&#039;indirizzo da inserire è apollo.eigenlab.org/owncoud e le credenziali personali&lt;br /&gt;
File:DavContacts.png|Seleziona le rubriche che vuoi sincronizzare, ce ne possono essere più di una&lt;br /&gt;
File:DavFinal.png &lt;br /&gt;
File:Accounts.png&lt;br /&gt;
File:DavDatails.png&lt;br /&gt;
File:DavAccountDetails.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Calendario==&lt;br /&gt;
Tutto uguale ma seleziona&lt;br /&gt;
[[File:DavCal.png|miniatura|none]]&lt;br /&gt;
==Note==&lt;br /&gt;
Tutto uguale ma selezionanone&lt;br /&gt;
[[File:DavNotes.png    |miniatura|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:HowTo]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToBatman&amp;diff=4503</id>
		<title>HowToBatman</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToBatman&amp;diff=4503"/>
		<updated>2016-11-19T17:47:29Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Con queste istruzioni si può creare una mesh di prova fra diversi pc oppure collegarsi ad [[EigenNet]], utilizzando batman-adv e antenna wireless integrata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prima di inziare fermiamo il nostro network manager, potrebbe interferire.&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/network-manager stop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dobbiamo impostare la modalità della nostra scheda wireless. Può essere Managed (client che si connette ad access point), Master (agisce da access point), Ad-Hoc (nodi che si collegano fra loro senza access point). Quindi scegliamo la modalità Ad-Hoc.&lt;br /&gt;
&lt;br /&gt;
 iwconfig wlan0 mode Ad-Hoc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Batman incapsula il traffico aggiungendo un header di 28 bytes in ogni pacchetto, quindi bisogna aumentare la dimensione massima dei pacchetti che possono essere trasmessi sull&#039;interfaccia fisica da 1500 a 1528 (in modo che possano passare i pacchetti originariamente grandi 1500)&lt;br /&gt;
&lt;br /&gt;
 ifconfig wlan0 mtu 1528&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Possiamo scegliere il canale su cui operare. Saltando questo passaggio si usa il canale 1&lt;br /&gt;
&lt;br /&gt;
 iwconfig wlan0 channel [n]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;essid serve ad identificare gli altri nodi della mesh&lt;br /&gt;
&lt;br /&gt;
 iwconfig wlan0 essid &amp;quot;lamiamesh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Impostiamo anche lo stesso bssid perchè alcuni driver wifi hanno problemi quando ci sono molti nodi con bssid diversi e non si associano.&lt;br /&gt;
&lt;br /&gt;
 iwconfig wlan0 ap 02:aa:bb:cc:dd:ee&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A questo punto possiamo tirare su l&#039;interfaccia&lt;br /&gt;
&lt;br /&gt;
 ip link set wlan0 up&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Molto probabilmente avremo già il modulo batman-adv, in caso contrario lo scarichiamo e installiamo da http://www.open-mesh.org . Per caricarlo&lt;br /&gt;
&lt;br /&gt;
 modprobe batman-adv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Batman opera in kernel space per evitare il sovraccarico di read() e write() che avrebbe processando i pacchetti in user space.&lt;br /&gt;
Per configurare il modulo batman-adv si usa il programma batctl.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adesso aggiungiamo le interfacce su cui vogliamo fare la mesh&lt;br /&gt;
 batctl if add wlan0&lt;br /&gt;
&lt;br /&gt;
e batman crea automagicamente una nuova interfaccia virtuale bat0 inconsapevole del layer inferiore, che ci collega a tutti gli altri partecianti alla mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configuriamo il layer 3. Tutti i partecipanti possono assegnarsi un ip oppure uno può attivare un server dhcp su bat0&lt;br /&gt;
&lt;br /&gt;
 ip a add 192.168.1.1/24 dev bat0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
per l&#039;accesso ad internet uno dei nodi può agire da gateway:&lt;br /&gt;
 iptables -t nat -A POSTROUTING -o intefaccia_con_internet -j MASQUERADE&lt;br /&gt;
e sui client&lt;br /&gt;
 ip r add default via ip_del_gateway dev bat0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
per dare la possibilità ad altri di partecipare alla mesh, senza usare batman e collegandosi alla porta ethernet del pc, si usano i bridge.&lt;br /&gt;
&lt;br /&gt;
 brctl addbr mesh-bridge&lt;br /&gt;
 brctl addif mesh-bridge eth0&lt;br /&gt;
 brctl addif mesh-bridge bat0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== e per openwrt? ==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openwrt.org/12.09/openwrt.git&lt;br /&gt;
 make menuconfig e classica configurazione. kmod-batman-adv si trova sotto Kernel modules -&amp;gt; Network Support&lt;br /&gt;
&lt;br /&gt;
Si usano appositi file di configurazione&lt;br /&gt;
in /etc/config/wireless&lt;br /&gt;
 config wifi-iface &#039;wmesh&#039;&lt;br /&gt;
        option device &#039;device fisico&#039;&lt;br /&gt;
        option ifname &#039;adhoc0&#039;&lt;br /&gt;
        option network &#039;mesh&#039;&lt;br /&gt;
        option mode &#039;adhoc&#039;&lt;br /&gt;
        option ssid &#039;lamiamesh&#039;&lt;br /&gt;
        option bssid &#039;02:aa:bb:cc:dd:ee&#039;&lt;br /&gt;
in /etc/config/network&lt;br /&gt;
 config interface &#039;mesh&#039;&lt;br /&gt;
        option ifname &#039;adhoc0&#039;&lt;br /&gt;
        option mtu &#039;1528&#039;&lt;br /&gt;
        option proto &#039;batadv&#039;&lt;br /&gt;
        option mesh &#039;bat0&#039;&lt;br /&gt;
[[Categoria:HowTo]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=How2SitoHM&amp;diff=4502</id>
		<title>How2SitoHM</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=How2SitoHM&amp;diff=4502"/>
		<updated>2016-11-19T17:47:18Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prerequisiti: ==&lt;br /&gt;
&lt;br /&gt;
# Un account su http://git.lattuga.net/user/sign_up &lt;br /&gt;
# Fare amicizia con il terminale su Linux&lt;br /&gt;
# Avere voglia di imparare 3 comani di git&lt;br /&gt;
# Imparare un comando di fabric&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti software: ==&lt;br /&gt;
&lt;br /&gt;
# python2.7&lt;br /&gt;
# virtualenv2&lt;br /&gt;
# git&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian-Ubuntu:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python python-virtualenv git&lt;br /&gt;
&#039;&#039;&#039;Arch:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S python2 python2-virtualenv git&lt;br /&gt;
&lt;br /&gt;
[Da qui in poi appariranno termini tecnici, non mordono, pensateli come delle pallette fuffose rosa] [[File:HairyBall.png|150x150px|Palletta fuffosa]]&lt;br /&gt;
&lt;br /&gt;
La prima cosa da fare per iniziare a lavorare sul sito è creare un virtualenv per python, altro non è che una cartella sul pc nella quale valgono alcune regole che ci semplificano il lavoro.&lt;br /&gt;
&lt;br /&gt;
Scegliamo la cartella in cui vogliamo lavorare, da qui in poi faccio finta che sia:&lt;br /&gt;
 /home/svalo/eigenLab/sitoHM&lt;br /&gt;
Voi sostituite ogni occorrenza col vostro percorso&lt;br /&gt;
&lt;br /&gt;
Per prima cosa apriamo un terminale (Menu -&amp;gt; Accessori -&amp;gt; Terminale) e ci spostiamo dentro la cartella&lt;br /&gt;
 cd /home/svalo/eigenLab/sitoHM&lt;br /&gt;
&lt;br /&gt;
E creiamo un virtualenv&lt;br /&gt;
&lt;br /&gt;
 virtualenv HM16&lt;br /&gt;
&lt;br /&gt;
Appariranno un po&#039; di scritte che ci informano che sta installando una versione di python dentro la cartella HM16 e vari altri componenti. Questo serve perché così possiamo lavorare installando un sacco di cose e fare un sacco di configurazioni che non &amp;quot;sporcano&amp;quot; il sistema in generale ma che hanno valore solo dentro la cartella. Una volta finito HM potremo cancellare la cartella ed il sistema tornerà com&#039;era prima.&lt;br /&gt;
&lt;br /&gt;
Poi attiviamo il virtualenv&lt;br /&gt;
 source ./HM16/bin/activate&lt;br /&gt;
&lt;br /&gt;
Per essere sicuri che tutto sia andato a buon fine dal terminale digitate&lt;br /&gt;
 which python&lt;br /&gt;
Se la risposta è qualcosa di simile a&lt;br /&gt;
 /home/svalo/eigenLab/sitoHM/HM16/bin/python&lt;br /&gt;
&lt;br /&gt;
Allora tutto bene, se assomiglia a /usr/bin/python2.7 allora qualcosa non è andato bene, contatta lo smanettone più vicino :P&lt;br /&gt;
&lt;br /&gt;
A questo punto abbiamo creato il nostro virtualenv e lo abbiamo attivato, sarà il nostro spazio di lavoro, ogni volta che vorremo lavorare sul sito dovremmo entrare nella cartella che abbiamo scelto e attivare il virtualenv.&lt;br /&gt;
&lt;br /&gt;
Versione compatta per dalla seconda volta in poi&lt;br /&gt;
&lt;br /&gt;
 cd /home/svalo/eigenLab/sitoHM&lt;br /&gt;
 . ./HM16/bin/activate&lt;br /&gt;
&lt;br /&gt;
Quando abbiamo finito di sviluppare e vogliamo fare altro basta scrivere nel terminale&lt;br /&gt;
 deactivate&lt;br /&gt;
&lt;br /&gt;
== Prendere il codice del sito == &lt;br /&gt;
&lt;br /&gt;
Siamo dentro la cartella /home/svalo/eigenLab/sitoHM/ adesso prendiamo il codice del sito&lt;br /&gt;
&lt;br /&gt;
Il codice del sito vive in un repository git su git.lattuga.net, lo potete recuperare col comando&lt;br /&gt;
 git clone http://git.lattuga.net/boyska/sito-hackit-16.git&lt;br /&gt;
&lt;br /&gt;
Questo sparerà un po&#039; di messaggi e, se tutto va bene, ci ritroveremo con una bellissima cartella di sono sito-hackit-16 accanto a HM16&lt;br /&gt;
&lt;br /&gt;
Ovvero dando il comando ls in /home/svalo/eigenLab/sitoHM dovremmo vedere&lt;br /&gt;
 (HM16) /home/svalo/eigenLab/Developing/HM16/&lt;br /&gt;
 svalo:$ ls&lt;br /&gt;
 HM16  sito-hackit-16&lt;br /&gt;
&lt;br /&gt;
Ottimo adesso abbiamo il codice del sito, se entrate nella cartella sito-hackit-16 vedrete la struttura del progetto&lt;br /&gt;
&lt;br /&gt;
 cd sito-hackit-16&lt;br /&gt;
&lt;br /&gt;
ls vi dirà cosa c&#039;è dentro.&lt;br /&gt;
&lt;br /&gt;
La prima, e unica, volta dovremo installare le dipendenze del progetto per poter lavorare al sito&lt;br /&gt;
 pip install -r requirements.txt&lt;br /&gt;
&lt;br /&gt;
Questo legge il file requirements ed installa i programmi che servono per creare il sito.&lt;br /&gt;
&lt;br /&gt;
CI SIAMO! Abbiamo tutto quello che ci serve per cominciare&lt;br /&gt;
&lt;br /&gt;
Sempre da dentro la cartella sito-hackit-16 diamo il comando&lt;br /&gt;
&lt;br /&gt;
 ./develop-server.sh start &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
Queso farà partire un mini server web il python che ci farà vedere il sito allo stato attuale all&#039;indirizzo http://localhost:8000&lt;br /&gt;
&lt;br /&gt;
Quando vorremo fermare il server python, dallo stesso terminale dal quale lo abbiamo lanciato dobbiamo dare&lt;br /&gt;
 ./develop-server.sh stop&lt;br /&gt;
&lt;br /&gt;
== Modificare il sito ==&lt;br /&gt;
&lt;br /&gt;
Ok tutto figo maaaa come si modifica? &lt;br /&gt;
&lt;br /&gt;
Tutto questo accrocchio serve per generare il sito, il sito vero e proprio è solo una manciata di pagine html e di css, lo trovate dentro la cartella output. Quello è ciò che effettivamente andrà poi nel server che ospita il sito.&lt;br /&gt;
&lt;br /&gt;
Le pagine del sito stanno dentro &lt;br /&gt;
 content/pages/&lt;br /&gt;
&lt;br /&gt;
Possiamo modificarle  e vedere cosa succede alla pagina http://localhost:8000 tutto quello che faremo rimarrà sul nostro pc, se facciamo qualche cazzata basterà dare il comando&lt;br /&gt;
 git checkout -- nomedelfiledaripristinare&lt;br /&gt;
&lt;br /&gt;
Le pagine sono scritte in markdown,  le potete modificare con un editor di testo grafico tipo kate o gedit o dal terminale con vim o nano(bleah)&lt;br /&gt;
&lt;br /&gt;
Se abbiamo lanciato il develop server appena salviamo le modifiche ai files questo appariranno nella pagina su localhost.&lt;br /&gt;
&lt;br /&gt;
== Pubblicare le modifiche ==&lt;br /&gt;
&lt;br /&gt;
Prima di modificare o pubblicare le modifiche bisogna dare&lt;br /&gt;
 git pull origin master&lt;br /&gt;
&lt;br /&gt;
Questo serve per ricevere le modifiche che altri potrebbero aver fatto fra il momento in cui abbiamo scaricato il codice del sito e quello in cui vorremmo pubblicare le modifiche&lt;br /&gt;
&lt;br /&gt;
A questo punto possiamo inserire nella storia di git le nostre modifiche.&lt;br /&gt;
&lt;br /&gt;
 git status &lt;br /&gt;
ci dice quello che è cambiato dall&#039;ultima modifica che git conosce (Non tutti i files e non tutte le modifiche che vediamo dentro la cartella sono note a git, lui conosce solo quello che noi gli diciamo di memorizzare)&lt;br /&gt;
&lt;br /&gt;
se ad esempio abbiamo modificato la pagina content/pages/info.md &lt;br /&gt;
&lt;br /&gt;
git ci dirà che quel file è stato modificato&lt;br /&gt;
&lt;br /&gt;
 git diff&lt;br /&gt;
&lt;br /&gt;
ci farà vedere le modifiche&lt;br /&gt;
&lt;br /&gt;
 git add content/pages/info.md &lt;br /&gt;
Aggiungerà le modifiche alla coda delle modifiche da aggiungere&lt;br /&gt;
&lt;br /&gt;
 git commit -m &amp;quot;Un messaggio breve ma significativo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Aggiungerà le nostre modifiche alla storia di git&lt;br /&gt;
&lt;br /&gt;
Questo aggiunge le modifiche solo alla storia presente sul nostro pc, per poterle vedere online dobbiamo mandarle repository di boyska. &lt;br /&gt;
&lt;br /&gt;
Questo però lo copriremo più in là di persona&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:HowTo]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4500</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4500"/>
		<updated>2016-11-19T17:35:37Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Inseriti un po&amp;#039; di  contenuti&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;XMPP è un protocollo di chat federato, questo vuol dire che chiunque abbia un&#039;istanza di un server XMPP può comunicare con il resto della rete anche se gli account di chat sono su server diversi.&lt;br /&gt;
&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]]&lt;br /&gt;
&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Queste limitazioni esistono perché siamo fermamente convinti che le comunicazioni debbano avvenire in modalità protetta.&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039;, se vuoi un&#039;account scrivi a info[at]eigenlab[dot]org.&lt;br /&gt;
&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
&lt;br /&gt;
* MUC a.k.a. [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo&lt;br /&gt;
* SMACKS a.k.a. [https://modules.prosody.im/mod_smacks.html XEP-0198] Per il resume di una sessione interrotta per la caduta della connessione&lt;br /&gt;
* MAM a.k.a. [https://modules.prosody.im/mod_mam.html XEP-0313] Per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Il modulo è configurabile per utente&lt;br /&gt;
* Carbons a.k.a. [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i device che supportano la XEP. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile come con altri client di chat moderni. &lt;br /&gt;
* CSI, Throttle_presence e filter_chatstarter a.k.a. [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates] Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle di &#039;il contatto sta scrivendo&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
pasticcera mi sdubbi alquanto col tuo deplorevole ardore&lt;br /&gt;
&lt;br /&gt;
=== Alcuni programmi che abbiamo provato ===&lt;br /&gt;
&#039;&#039;‎[01:02:10] ‎kiba‎: FYI per ricevere i messaggi su tutti i dispositivi bisogna selezionare in gajim account-&amp;gt;general-&amp;gt;&amp;quot;receive conversation from other resources&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Gajim : Il più completo client desktop per numero di plugin e di XEP recenti supportate&lt;br /&gt;
* Conversations : Il migliore client per Android per numero di XEP integrate&lt;br /&gt;
* Telepathy : Integrato in KDE manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving&lt;br /&gt;
* Pidgin : &lt;br /&gt;
* XabberDev : &lt;br /&gt;
&lt;br /&gt;
=== Sicurezza: OTR, PGP OMEMO===&lt;br /&gt;
&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra dispositivi diversi usati dallo stesso account mentre con [https://gajim.org/ Gajim] (desktop) e [https://conversations.im/ Conversations]  (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi l&#039;unica pecca è che ancora poco supportato dai client. &lt;br /&gt;
&lt;br /&gt;
Per poterlo usare in Gajim va installato un plugin dal menu interno al programma; alla prima connessione con un cliente che supporta omemo verrà richiesto se fidarsi della chiave con cui si è presentato, è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
&lt;br /&gt;
Conversation lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device, si può abilitare andando sul proprio profilo utente e confermando la chiave&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Cloud&amp;diff=4499</id>
		<title>Cloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Cloud&amp;diff=4499"/>
		<updated>2016-11-19T16:52:15Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Link alla pagina con istruzioni per DavDroid&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:NextCloudLogin.jpg|miniatura|Giovannina cerca di ricordarsi la password.]]&lt;br /&gt;
Abbiamo organizzato la nostra [https://cloud.eigenlab.org &#039;&#039;&#039;Cloud&#039;&#039;&#039;] autogestita, così da rimanere in possesso dei dati che condividiamo e decidere insieme le policy da adottare.&lt;br /&gt;
Praticamente un servizio come [https://www.dropbox.com/ Dropbox], ma molto più bello.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Il cloud gira su [[BitArno]] ed è raggiungibile all&#039;indirizzo &amp;lt;code&amp;gt;http://cloud.eigenlab.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
Una volta che i/le mantainer ti avranno creato un&#039;utenza puoi accedere al cloud tramite un browser web inserendo le tue credenziali.&lt;br /&gt;
[[File:CloudSharedFiles.jpg|miniatura|Vista di alcuni file condivisi.]]&lt;br /&gt;
&lt;br /&gt;
Di norma la prima pagina mostrata è un elenco di file condivisi; un sistema di permessi ti consente di caricare file e modificarli solo nelle cartelle condivise in cui hai i permessi &#039;&#039;di scrittura&#039;&#039;, e di vedere e scaricare file nella cartelle condivise in cui hai i permessi &#039;&#039;di lettura&#039;&#039;. Facile.&lt;br /&gt;
&lt;br /&gt;
In alto a sinistra c&#039;è un menu da cui si può selezionare la pagina da utilizzare: file condivisi, calendari, contatti, il player audio, etc.&lt;br /&gt;
&lt;br /&gt;
=== Calendario ===&lt;br /&gt;
Chi ha la mania dell&#039;ordine trarrà grande giovamento dall&#039;uso del calendario condiviso: si può tenere traccia degli appuntamenti e chiunque abbia accesso ad un dato calendario può aggiungere appuntamenti e accolli, segnando (facoltativamente): data, ora, luogo, durata, descrizione, etc.&lt;br /&gt;
&lt;br /&gt;
Ovviamente i veri &#039;&#039;pro&#039;&#039; non usano soltanto [https://cloud.eigenlab.org/apps/calendar l&#039;interfaccia web] del calendario, ma lo sincronizzano con una applicazione&amp;lt;ref&amp;gt;ce ne sono miliardi&amp;lt;/ref&amp;gt; sullo smartfone e/o con il client di posta elettronica; in questo modo sono sempre al corrente di tutte le cose da fare e all&#039;erta grazie agli allarmi che suonano con anticipo programmato. Nervi in poltiglia per un&#039;efficienza &#039;&#039;&#039;massima&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
# Apri quindi il tuo programma o la tua app e dille che vuoi aggiungere un nuovo calendario.&lt;br /&gt;
# &#039;&#039;&#039;Se&#039;&#039;&#039; ti propone &amp;quot;locale&amp;quot;, &amp;quot;su questo dispositivo&amp;quot;, &amp;quot;privato&amp;quot; (o cose simili) in alternativa a &amp;quot;condiviso&amp;quot;, &amp;quot;in rete&amp;quot; (o cose simili), scegli la seconda alternativa.&lt;br /&gt;
# &#039;&#039;&#039;Se&#039;&#039;&#039; ti chiede di scegliere il &amp;quot;formato&amp;quot; o il &amp;quot;protocollo&amp;quot; scegli &#039;&#039;&#039;CalDAV&#039;&#039;&#039;.&lt;br /&gt;
# Laddove ti chiede l&#039;&#039;&#039;indirizzo&#039;&#039; del calendario inserisci quello che compare cliccando su &amp;quot;Settings&amp;quot; in basso a sinistra, scegliendo tra &#039;&#039;Primary CalDAV Address&#039;&#039; e  &#039;&#039;iOS/OS X CalDAV Address&#039;&#039; a seconda di dove ti porta il cuore.&lt;br /&gt;
# Prima o poi ti verranno chieste le credenziali per l&#039;accesso al cloud.&lt;br /&gt;
# Gòditi la tua nuova ansia tecnologica.&lt;br /&gt;
&lt;br /&gt;
[[HowToOCsync|Qui]] una guida passo passo per DavDroid, un app open source che può essere scaricata da F-Droid, funziona su piattaforma Android&lt;br /&gt;
&lt;br /&gt;
== nextCloud ==&lt;br /&gt;
[http://cloud.eigenlab.org nextCloud] è l&#039;implementazione di cloud computing che abbiamo scelto. Nativamente supporta lo web-storage una rubrica sincronizzabile tramite CardDav con tutti i dispositivi che supportano tale protocollo, un calendario sicronizzabile tramite CalDav, un riproduttore musicale integrato che legge dalla collezione locale. È estensibile grazie alle applicazioni [apps.owncloud.com] che possono essere installate facilmente.&lt;br /&gt;
&lt;br /&gt;
=== Collegamenti esterni ===&lt;br /&gt;
* [https://nextcloud.com/support/ Guide e manuali]&lt;br /&gt;
* [https://nextcloud.com Sito del progetto]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4291</id>
		<title>Hackmeeting0x13:WarmUp</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4291"/>
		<updated>2016-05-06T09:27:54Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In grassetto i warmup che devono ancora essere tenuti:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data !! Ora !! Città !! Spazio !! Titolo !! Descrizione !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 22/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della puntata pilota di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 29/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 2° e 3° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 5/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 4° e 5° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 12/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 6° e 7° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 16/04/2016 || 17.00 || Pisa || Exploit, largo Bruno Pontecorvo 2 || Il tuo server? A 40€ e Open Hardware  || Presentazione delle Single Board Computer, con particolare attenzione all&#039;Open Hardware. Cos&#039;è e perchè é importante l&#039;OH, alcuni esempi pratici di cose può essere fatto con una SBC. Il WarmUp è accessibile a tutt@ e non richiede particolari conoscenze tecniche||&lt;br /&gt;
|-&lt;br /&gt;
| 17/04/2016 || 17.00 || Bologna || Xm24 (Via Fioravanti, 24) || Laboratorio di fallimento ed elettronica  || Laboratorio di elettroncia di base, cena vegan e concerto ||http://www.ecn.org/xm24/?ai1ec_event=laboratorio-di-fallimento-ed-elettronica&amp;amp;instance_id=26678&lt;br /&gt;
|-&lt;br /&gt;
| 19/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione dell&#039; 8° e 9° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 22/04/2016 || 17.30 || Pisa || eXploit (Largo Bruno Pontecorvo 2) || DIY bio: hackers, DNA e curiosità || La biologia do-it-yourself è un nuovo campo tutto da scoprire che però sta già prendendo piede in tutto il mondo. eigenLab e Open Wet Lab (da Trento) introdurranno il mondo del biohacking, i motivi per cui è nato e gli obbiettivi che si pone. Presenteranno poi i loro progetti di biologia casereccia, frutto di autoformazione e autoproduzione. Insomma la biologia non si deve per forza fare in un laboratorio superattrezzato, solo per la ricerca: con curiosità e passione si può fare molto anche in un laboratorio autocostruito. A seguire aperitivo moecolare! || &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;23/04/2016&#039;&#039;&#039; || 15.00 || Bologna || Biblioteca Salaborsa || Internet è rotta, aggiustiamo internet || Sabato 23 aprile, dalle 15 alle 18.30, l&#039;Auditorium Enzo Biagi ospita il secondo incontro del ciclo Culture e pratiche open per farsi un&#039;idea più ricca della internet di oggi e poter discutere con esperti del settore di temi come la privacy digitale, perché l&#039;anonimato è importante e quali sono le alternative che si possono utilizzare anche nella vita di tutti i giorni.&lt;br /&gt;
Programma dettagliato:&lt;br /&gt;
* Privacy e anonimato in rete: a cura di Renato Gabriele&lt;br /&gt;
* Che cos&#039;è il Deep web: a cura di Carola Frediani (giornalista)&lt;br /&gt;
* Tor, un sistema per la comunicazione anonima su internet: a cura di Daniele Pizio&lt;br /&gt;
* Le reti wireless comunitarie: a cura di Leonardo Maccari (Ninux Firenze)&lt;br /&gt;
 || http://www.bibliotecasalaborsa.it/eventi/26092&lt;br /&gt;
|-&lt;br /&gt;
| 26/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione del finale di stagione di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4287</id>
		<title>Hackmeeting0x13:WarmUp</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4287"/>
		<updated>2016-04-13T12:22:09Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In grassetto i warmup che devono ancora essere tenuti:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data !! Ora !! Città !! Spazio !! Titolo !! Descrizione !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 22/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della puntata pilota di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 29/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 2° e 3° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 5/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 4° e 5° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 12/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 6° e 7° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;16/04/2016&#039;&#039;&#039; || 17.00 || Pisa || Exploit, largo Bruno Pontecorvo 2 || Il tuo server? A 40€ e Open Hardware  || Presentazione delle Single Board Computer, con particolare attenzione all&#039;Open Hardware. Cos&#039;è e perchè é importante l&#039;OH, alcuni esempi pratici di cose può essere fatto con una SBC. Il WarmUp è accessibile a tutt@ e non richiede particolari conoscenze tecniche||&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;17/04/2016&#039;&#039;&#039; || 17.00 || Bologna || Xm24 (Via Fioravanti, 24) || Laboratorio di fallimento ed elettronica  || Laboratorio di elettroncia di base, cena vegan e concerto ||http://www.ecn.org/xm24/?ai1ec_event=laboratorio-di-fallimento-ed-elettronica&amp;amp;instance_id=26678&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;19/04/2016&#039;&#039;&#039; || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione dell&#039; 8° e 9° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;22/04/2016&#039;&#039;&#039; || 17.30 || Pisa || eXploit (Largo Bruno Pontecorvo 2) || DIY bio: hackers, DNA e curiosità || La biologia do-it-yourself è un nuovo campo tutto da scoprire che però sta già prendendo piede in tutto il mondo. eigenLab e Open Wet Lab (da Trento) introdurranno il mondo del biohacking, i motivi per cui è nato e gli obbiettivi che si pone. Presenteranno poi i loro progetti di biologia casereccia, frutto di autoformazione e autoproduzione. Insomma la biologia non si deve per forza fare in un laboratorio superattrezzato, solo per la ricerca: con curiosità e passione si può fare molto anche in un laboratorio autocostruito. A seguire aperitivo moecolare! || &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;23/04/2016&#039;&#039;&#039; || 15.00 || Bologna || Biblioteca Salaborsa || Internet è rotta, aggiustiamo internet || Sabato 23 aprile, dalle 15 alle 18.30, l&#039;Auditorium Enzo Biagi ospita il secondo incontro del ciclo Culture e pratiche open per farsi un&#039;idea più ricca della internet di oggi e poter discutere con esperti del settore di temi come la privacy digitale, perché l&#039;anonimato è importante e quali sono le alternative che si possono utilizzare anche nella vita di tutti i giorni.&lt;br /&gt;
Programma dettagliato:&lt;br /&gt;
* Privacy e anonimato in rete: a cura di Renato Gabriele&lt;br /&gt;
* Che cos&#039;è il Deep web: a cura di Carola Frediani (giornalista)&lt;br /&gt;
* Tor, un sistema per la comunicazione anonima su internet: a cura di Daniele Pizio&lt;br /&gt;
* Le reti wireless comunitarie: a cura di Leonardo Maccari (Ninux Firenze)&lt;br /&gt;
 || http://www.bibliotecasalaborsa.it/eventi/26092&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;26/04/2016&#039;&#039;&#039; || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione del finale di stagione di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4286</id>
		<title>Hackmeeting0x13:WarmUp</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4286"/>
		<updated>2016-04-13T12:20:15Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Aggiunta WarmUp SBC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In grassetto i warmup che devono ancora essere tenuti:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data !! Ora !! Città !! Spazio !! Titolo !! Descrizione !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 22/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della puntata pilota di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 29/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 2° e 3° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 5/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 4° e 5° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 12/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 6° e 7° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;16/04/2016&#039;&#039;&#039; || 17.00 || Pisa || Exploit || Il tuo server? A 40€ e Open Hardware  || Presentazione delle Single Board Computer, con particolare attenzione all&#039;Open Hardware. Cos&#039;è e perchè é importante l&#039;OH, alcuni esempi pratici di cose può essere fatto con una SBC. Il WarmUp è accessibile a tutt@ e non richiede particolari conoscenze tecniche||&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;17/04/2016&#039;&#039;&#039; || 17.00 || Bologna || Xm24 (Via Fioravanti, 24) || Laboratorio di fallimento ed elettronica  || Laboratorio di elettroncia di base, cena vegan e concerto ||http://www.ecn.org/xm24/?ai1ec_event=laboratorio-di-fallimento-ed-elettronica&amp;amp;instance_id=26678&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;19/04/2016&#039;&#039;&#039; || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione dell&#039; 8° e 9° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;22/04/2016&#039;&#039;&#039; || 17.30 || Pisa || eXploit (Largo Bruno Pontecorvo 2) || DIY bio: hackers, DNA e curiosità || La biologia do-it-yourself è un nuovo campo tutto da scoprire che però sta già prendendo piede in tutto il mondo. eigenLab e Open Wet Lab (da Trento) introdurranno il mondo del biohacking, i motivi per cui è nato e gli obbiettivi che si pone. Presenteranno poi i loro progetti di biologia casereccia, frutto di autoformazione e autoproduzione. Insomma la biologia non si deve per forza fare in un laboratorio superattrezzato, solo per la ricerca: con curiosità e passione si può fare molto anche in un laboratorio autocostruito. A seguire aperitivo moecolare! || &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;23/04/2016&#039;&#039;&#039; || 15.00 || Bologna || Biblioteca Salaborsa || Internet è rotta, aggiustiamo internet || Sabato 23 aprile, dalle 15 alle 18.30, l&#039;Auditorium Enzo Biagi ospita il secondo incontro del ciclo Culture e pratiche open per farsi un&#039;idea più ricca della internet di oggi e poter discutere con esperti del settore di temi come la privacy digitale, perché l&#039;anonimato è importante e quali sono le alternative che si possono utilizzare anche nella vita di tutti i giorni.&lt;br /&gt;
Programma dettagliato:&lt;br /&gt;
* Privacy e anonimato in rete: a cura di Renato Gabriele&lt;br /&gt;
* Che cos&#039;è il Deep web: a cura di Carola Frediani (giornalista)&lt;br /&gt;
* Tor, un sistema per la comunicazione anonima su internet: a cura di Daniele Pizio&lt;br /&gt;
* Le reti wireless comunitarie: a cura di Leonardo Maccari (Ninux Firenze)&lt;br /&gt;
 || http://www.bibliotecasalaborsa.it/eventi/26092&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;26/04/2016&#039;&#039;&#039; || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione del finale di stagione di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4281</id>
		<title>Hackmeeting0x13:WarmUp</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4281"/>
		<updated>2016-04-05T10:08:47Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Aggiunta dettagli&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data !! Ora !! Città !! Spazio !! Titolo !! Descrizione !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 22/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della puntata pilota di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 29/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 2° e 3° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 5/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 4° e 5° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 12/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione della 6° e 7° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 19/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione dell&#039; 8° e 9° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 23/04/2016 || 15.00 || Bologna || Biblioteca Salaborsa || Internet è rotta, aggiustiamo internet || Sabato 23 aprile, dalle 15 alle 18.30, l&#039;Auditorium Enzo Biagi ospita il secondo incontro del ciclo Culture e pratiche open per farsi un&#039;idea più ricca della internet di oggi e poter discutere con esperti del settore di temi come la privacy digitale, perché l&#039;anonimato è importante e quali sono le alternative che si possono utilizzare anche nella vita di tutti i giorni.&lt;br /&gt;
Programma dettagliato:&lt;br /&gt;
* Privacy e anonimato in rete: a cura di Renato Gabriele&lt;br /&gt;
* Che cos&#039;è il Deep web: a cura di Carola Frediani (giornalista)&lt;br /&gt;
* Tor, un sistema per la comunicazione anonima su internet: a cura di Daniele Pizio&lt;br /&gt;
* Le reti wireless comunitarie: a cura di Leonardo Maccari (Ninux Firenze)&lt;br /&gt;
 || http://www.bibliotecasalaborsa.it/eventi/26092&lt;br /&gt;
|-&lt;br /&gt;
| 26/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F || Mr.Robot  || Proiezione del finale di stagione di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4280</id>
		<title>Hackmeeting0x13:WarmUp</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4280"/>
		<updated>2016-04-05T10:05:27Z</updated>

		<summary type="html">&lt;p&gt;Svalo: edit della descrizione&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data !! Ora !! Città !! Spazio !! Cosa !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 22/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della puntata pilota di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 29/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della 2° e 3° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 5/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della 4° e 5° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 12/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della 6° e 7° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 19/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione dell&#039; 8° e 9° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 23/04/2016 || 15.00 || Bologna || Biblioteca Salaborsa || Internet è rotta, aggiustiamo internet || http://www.bibliotecasalaborsa.it/eventi/26092&lt;br /&gt;
|-&lt;br /&gt;
| 26/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione del finale di stagione di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:Talks&amp;diff=4276</id>
		<title>Hackmeeting0x13:Talks</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:Talks&amp;diff=4276"/>
		<updated>2016-03-31T16:00:46Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa è la lista dei talks che saranno offerti all&#039;Hackmeeting 0x13&lt;br /&gt;
&lt;br /&gt;
Se vuoi proporne uno o richiederne uno vai [http://hackmeeting.org/hackit16/calls.html Qui]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Speaker !! Title  !! Abstract !! Room !! Schedule !! Day !! Link alla Lista&lt;br /&gt;
|-&lt;br /&gt;
| blackflag || Non di solo 2.4GHz vive l&#039;hacker || Negli ultimi anni l&#039;sdr e&#039; evoluto tantissimo, e&#039; possibile avere in mano strumenti come rad1o del CCC, le chiavette a basso costo sono molto piu&#039; precise e il software comincia a diventare utilizzabile anche da chi non vuole dedicare la vita a risolvere dipendenze (software :D )... Penso sia utile riproporre l&#039;argomento in maniera aggiornata sostituendo, al posto della questione crittografica, la comprensione delle &amp;quot;fake BTS&amp;quot;. || Stanza n° || Ora || Giorno n *  || [https://lists.autistici.org/message/20160315.170355.b78763c5.en.html Qui]&lt;br /&gt;
|-&lt;br /&gt;
| incandenza || Signal unleashed || Ho installato e messo in funzione tutto il full-stack di Signal from scratch il che, in ottica di questa comunità, potrebbe aprire le porte per un sistema di messaggistica totalmente autogestito Whatsapp-clone ma, come ben sapete, con cifratura End-To-End.  || Stanza n° || Ora || Giorno n * || [https://lists.autistici.org/message/20160324.144549.8e68fc74.en.html Qui]&lt;br /&gt;
|-&lt;br /&gt;
| boyska || Streampunk: un servizio di streaming distribuito e scalabile || [http://streampunk.cc streampunk.cc] è un servizio di streaming aperto a tutte le realtà antifasciste, antisessiste e non commerciali; la differenza con una tradizionale istanza di icecast e&#039; nell&#039;utilizzo di autoradio, un software che implementa un sistema di streaming distribuito, scalabile, resiliente. [https://git.autistici.org/ale/autoradio Autoradio ] è un sistema distribuito minimale, che funziona bene usando uno sputo di risorse. Per gli utenti il suo utilizzo è trasparente, comportandosi come un classico server Icecast.|| Stanza n° || Ora || Giorno n * || [https://lists.autistici.org/message/20160324.183509.f4a75f4f.en.html Qui]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:Talks&amp;diff=4275</id>
		<title>Hackmeeting0x13:Talks</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:Talks&amp;diff=4275"/>
		<updated>2016-03-31T16:00:30Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Primi talks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa è la lista dei talks che saranno offerti all&#039;Hackmeeting 0x13&lt;br /&gt;
&lt;br /&gt;
Se vuoi proporne uno o richiederne uno vai [http://hackmeeting.org/hackit16/calls.html Qui]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Speaker !! Title  !! Abstract !! Room !! Schedule !! Day !! Link alla Lista&lt;br /&gt;
|-&lt;br /&gt;
| blackflag || Non di solo 2.4GHz vive l&#039;hacker || Negli ultimi anni l&#039;sdr e&#039; evoluto tantissimo, e&#039; possibile avere in mano strumenti come rad1o del CCC, le chiavette a basso costo sono molto piu&#039; precise e il software comincia a diventare utilizzabile anche da chi non vuole dedicare la vita a risolvere dipendenze (software :D )... Penso sia utile riproporre l&#039;argomento in maniera aggiornata sostituendo, al posto della questione crittografica, la comprensione delle &amp;quot;fake BTS&amp;quot;. || Stanza n° || Ora || Giorno n *  || [https://lists.autistici.org/message/20160315.170355.b78763c5.en.html Qui]&lt;br /&gt;
|-&lt;br /&gt;
| incandenza || Signal unleashed || Ho installato e messo in funzione tutto il full-stack di Signal from scratch il che, in ottica di questa comunità, potrebbe aprire le porte per un sistema di messaggistica totalmente autogestito Whatsapp-clone ma, come ben sapete, con cifratura End-To-End.  || Stanza n° || Ora || Giorno n * || [https://lists.autistici.org/message/20160324.144549.8e68fc74.en.html Qui]&lt;br /&gt;
|-&lt;br /&gt;
| boyska || Streampunk: un servizio di streaming distribuito e scalabile || [http://streampunk.cc streampunk.cc] è un servizio di streaming aperto a tutte le realtà antifasciste, antisessiste e non commerciali; la differenza con una tradizionale istanza di icecast e&#039; nell&#039;utilizzo di autoradio, un software che implementa un sistema di streaming distribuito, scalabile, resiliente. [https://git.autistici.org/ale/autoradio Autoradio ] è un sistema distribuito minimale, che funziona bene usando uno sputo di risorse. Per gli utenti il suo utilizzo è trasparente, comportandosi come un classico server Icecast.|| || Stanza n° || Ora || Giorno n * || [https://lists.autistici.org/message/20160324.183509.f4a75f4f.en.html Qui]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Let%27s_Encrypt&amp;diff=4274</id>
		<title>Let&#039;s Encrypt</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Let%27s_Encrypt&amp;diff=4274"/>
		<updated>2016-03-23T08:46:49Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Creazione della pagina con le note sulla configurazione di apache per let&amp;#039;encrypt in caso di proxy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://letsencrypt.org/ Let&#039;sencrypt] è un progetto di Mozilla per fornire certificati HTTPS gratuitamente ed in modo automatico. Let&#039;s encrypt permette di richiedere un certificato, di autoconfigurare apache, di creare un webserver in python per far avvenire l&#039;autenticazione del nome dominio ed altre cose simili tutto in maniera quasi completamente automatica. &lt;br /&gt;
&lt;br /&gt;
Quasi completamente appunto.&lt;br /&gt;
&lt;br /&gt;
Per esempio un caso più complesso è quello di un&#039;applicazione, ad esempio etherpad, in cui il ruolo di apache è solo di proxy. In questo caso bisogna scegliere il metodo manuale e fare un po&#039; di configurazioni nel virtualhost.&lt;br /&gt;
&lt;br /&gt;
== Scenario ==&lt;br /&gt;
&lt;br /&gt;
 Internert -&amp;gt; Apache di frontiera -&amp;gt; Apache dell&#039;host che fa da proxy -&amp;gt; Server dell&#039;applicazione&lt;br /&gt;
&lt;br /&gt;
In questo caso, non volendo mettere offline i servizi forniti dall&#039;host, bisogna scegliere il percorso manuale di let&#039;sencrypt che consiste nel far mostrare ad un url deciso da letsencrypt un certo contenuto.&lt;br /&gt;
&lt;br /&gt;
Assumendo che l&#039;Apache di frontiera passi tutte le richieste all&#039;apache dell&#039;host bisogna configurare quest&#039;ultimo per non proxare all&#039;applicazione i contenuti che dobbiamo servire a let&#039;sencrypt.&lt;br /&gt;
&lt;br /&gt;
== Come fare ==&lt;br /&gt;
&lt;br /&gt;
Editiamo il file di configurazione dell sito pad.eigenlab.org:&lt;br /&gt;
All&#039;inizio pensavo che bastasse una direttiva alias per mappare un url ad un path sul filesystem ma ricevevo un permission denied, ho optato quindi per definire un blocco directory&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost  *:80&amp;gt;&lt;br /&gt;
    ServerName          etherpad.eigenlab.org&lt;br /&gt;
    ServerAlias         pad.eigenlab.org&lt;br /&gt;
    CustomLog           /var/log/apache2/etherpad.eigenlab.org-access.log combined&lt;br /&gt;
    ErrorLog            /var/log/apache2/etherpad.eigenlab.org-error.log&lt;br /&gt;
 # Sta roba server per letsencrypt&lt;br /&gt;
    DocumentRoot        /var/www/localhost/htdocs&lt;br /&gt;
Definisco la document root per pescare i files da lì&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Proxy *&amp;gt;&lt;br /&gt;
        Order deny,allow &lt;br /&gt;
        Allow from all &lt;br /&gt;
    &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
Direttive normali per il proxy&lt;br /&gt;
&lt;br /&gt;
 # Staroba serve per letsencrypt&lt;br /&gt;
    ProxyPass /.well-known/acme-challenge !&lt;br /&gt;
Questo dice ad apache che l&#039;url che inizia con .well-known/acme-challenge non deve essere proxato, questo path ce lo ha indicato lets&#039;encrypt.&lt;br /&gt;
    &amp;lt;Directory &amp;quot;/&amp;quot; &amp;gt;&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Order allow,deny&lt;br /&gt;
        Allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
Questo definisce un blocco directory che serve per mostrare il file impostando i permessi di accesso&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ProxyRequests       off&lt;br /&gt;
    ProxyPreserveHost   on&lt;br /&gt;
    ProxyPass           / http://etherpad.eigenlab.org:9002/&lt;br /&gt;
    ProxyPassReverse    / http://etherpad.eigenlab.org:9002/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
Questa è la solita configurazione di un proxy&lt;br /&gt;
&lt;br /&gt;
In questo modo tutte le richieste del tipo pad.eigenlab.org/.well-known/acme-challenge verranno servite da apache stesso e non proxate. Nella document root creiamo quindi una cartella &lt;br /&gt;
 .well-known/acme-challenge&lt;br /&gt;
e dentro creiamo il file che dovrà essere servito per dimostrare a letsencrypt che possediamo quel dominio.&lt;br /&gt;
&lt;br /&gt;
Fatto!&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:Talks&amp;diff=4273</id>
		<title>Hackmeeting0x13:Talks</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:Talks&amp;diff=4273"/>
		<updated>2016-03-19T17:39:47Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Creazione pagina talks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa è la lista dei talks che saranno offerti all&#039;Hackmeeting 0x13&lt;br /&gt;
&lt;br /&gt;
Se vuoi proporne uno o richiederne uno vai [http://hackmeeting.org/hackit16/calls.html Qui]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Speaker !! Title  !! Abstract !! Room !! Schedule !! Day&lt;br /&gt;
|-&lt;br /&gt;
| Filling up soon! || Just a placeholder || Just a placeholder || Just a placeholder || Just a placeholder || Just a placeholder&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4272</id>
		<title>Hackmeeting0x13:WarmUp</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4272"/>
		<updated>2016-03-19T17:31:43Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data !! Ora !! Città !! Spazio !! Cosa !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 22/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della puntata pilota di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 29/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della 2° e 3° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 5/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della 4° e 5° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 12/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della 6° e 7° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 19/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione dell&#039; 8° e 9° puntata di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|-&lt;br /&gt;
| 23/04/2016 || 15.00 || Bologna || Biblioteca Salaborsa || Internet va aggiustata? || http://www.bibliotecasalaborsa.it/eventi/26092&lt;br /&gt;
|-&lt;br /&gt;
| 26/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione del finale di stagione di Mr.Robot||https://eigenlab.org/2016/03/mr-robot/&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4271</id>
		<title>Hackmeeting0x13:WarmUp</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4271"/>
		<updated>2016-03-19T17:30:19Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data !! Ora !! Città !! Spazio !! Cosa !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 22/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della puntata pilota di Mr.Robot||&lt;br /&gt;
|-&lt;br /&gt;
| 29/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della 2° e 3° puntata di Mr.Robot||&lt;br /&gt;
|-&lt;br /&gt;
| 5/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della 4° e 5° puntata di Mr.Robot||&lt;br /&gt;
|-&lt;br /&gt;
| 12/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della 6° e 7° puntata di Mr.Robot||&lt;br /&gt;
|-&lt;br /&gt;
| 19/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione dell&#039; 8° e 9° puntata di Mr.Robot||&lt;br /&gt;
|-&lt;br /&gt;
| 23/04/2016 || 15.00 || Bologna || Biblioteca Salaborsa || Internet va aggiustata? || http://www.bibliotecasalaborsa.it/eventi/26092&lt;br /&gt;
|-&lt;br /&gt;
| 26/04/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione del finale di stagione di Mr.Robot||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4270</id>
		<title>Hackmeeting0x13:WarmUp</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4270"/>
		<updated>2016-03-19T17:21:36Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data !! Ora !! Città !! Spazio !! Cosa !! Links&lt;br /&gt;
|-&lt;br /&gt;
| 22/03/2016 || 21.00 || Pisa || Polo Fibonacci (Largo Bruno Pontecorvo) Aula F  || Proiezione della puntata pilota di Mr.Robot||&lt;br /&gt;
|-&lt;br /&gt;
| 23/04/2016 || 15.00 || Bologna || Biblioteca Salaborsa || Internet va aggiustata? || http://www.bibliotecasalaborsa.it/eventi/26092&lt;br /&gt;
|-&lt;br /&gt;
| Testo della cella || Testo della cella || Testo della cella || Testo della cella&lt;br /&gt;
|-&lt;br /&gt;
| Testo della cella || Testo della cella || Testo della cella || Testo della cella&lt;br /&gt;
|-&lt;br /&gt;
| Testo della cella || Testo della cella || Testo della cella || Testo della cella&lt;br /&gt;
|-&lt;br /&gt;
| Testo della cella || Testo della cella || Testo della cella || Testo della cella&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4269</id>
		<title>Hackmeeting0x13:WarmUp</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Hackmeeting0x13:WarmUp&amp;diff=4269"/>
		<updated>2016-03-19T17:10:21Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Creazione della pagina&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Qui appariranno gli WarmUp organizzati per l&#039;Hhackmeeting 2016&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=EigenOrto&amp;diff=4268</id>
		<title>EigenOrto</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=EigenOrto&amp;diff=4268"/>
		<updated>2016-03-19T17:08:37Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==La sfida!== &lt;br /&gt;
&lt;br /&gt;
La creazione di un orto urbano completamente biologico, era per noi, studenti e studentesse dell&#039;università di Pisa, una sfida che all&#039;inizio pareva ben oltre le nostre possibilità. Vari elementi ci scoraggiavano, primo tra tutti il problema logistico. Lo spazio inutilizzato di cui ci siamo appropriati è infatti un giardino nella facoltà di Scienze, con un terreno assolutamente inadatto allo scopo da noi prefissato. &lt;br /&gt;
&lt;br /&gt;
Il primo ostacolo stato risolto mestando la terra con altra nuova, insieme a molti litri di stallatico. &lt;br /&gt;
Altro nodo gordiano, dove rifornirci di tutto ci che non avremmo potuto riciclare/recuperare? Non senza sforzi abbiamo trovato un piccolo rivenditore locale che ci ha profuso consigli contadini per il futuro.&lt;br /&gt;
Il tempo ha sicuramente costituito un altro problema, essendo noi tutti studenti e dovendo coniugare lo studio con gli improrogabili obblighi che la produzione di cibo porta con sé. &lt;br /&gt;
Abbiamo costituito dei turni che prevedevano l&#039;annaffiatura, la concimazione, l&#039;uso di biopesticidi, l&#039;estirpazione di graminacee e, infine, la raccolta.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;E&#039; stata una sfida con noi stessi prima di tutto, che ha messo alla prova il nostro ingegno, la nostra pazienza, la nostra voglia di fare.&#039;&#039;&#039; Rendere produttiva un pezzo di terra altrimenti abbandonato a se stesso, e farlo in modo sostenibile, questo era l&#039;obiettivo che ci eravamo prefissati.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;La realtà degli orti urbani ormai estesa a macchia d&#039;olio in tutta Europa,&#039;&#039;&#039; con esempi importanti in &#039;&#039;&#039;Gran Bretagna&#039;&#039;&#039; per esempio, dove la Ong, che occupa della gestione del patrimonio culturale inglese, ha assegnato appezzamenti a chi ha espresso il desiderio di coltivarsi in proprio frutta e verdura. La lista d&#039;attesa di oltre 100 mila persone che hanno fatto richiesta di piccoli appezzamenti ad uso agricolo  situati nel centro delle città ha fatto maturare la decisione del National Trust di intraprendere questa nuova iniziativa che renderebbe profiqui terreni e che altrimenti andrebbero inutilizzati. &amp;quot;Capital growth&amp;quot; il nome della recente campagna atta a trasformare zone derelitte della città in progetti comunitari di coltivazione e autoproduzione di frutta e ortaggi in loco. Il progetto consiste nell&#039;offerta di un supporto tecnico e finanziario alle comunità interessate (che spaziano da scuole ad aziende a singoli cittadini) ad avviare esperienze di &#039;&#039;&#039;autosufficienza alimentare&#039;&#039;&#039;. La previsione ambiziosa è di creare entro il 2012 nuovi spazi produttivi in oltre 2000 aree urbane.&lt;br /&gt;
Addirittura oltreoceano arrivano testimonianze simili: a &#039;&#039;&#039;Montréal&#039;&#039;&#039;, in Canada, si è effettuato un progetto sociale per mobilitare le persone attorno ad un orto collettivo applicato ad alcuni quartieri della città.&lt;br /&gt;
Negli Stati Uniti, a &#039;&#039;&#039;Los Angeles&#039;&#039;&#039;, si parla di giardini commestibili. Si propone di sostituire il prato con un paesaggio domestico commestibile. Gli ortaggi che si coltivano nei cortili, sostiene Haeg, l&#039;architetto che ha ideato il progetto, ricreano un rapporto, che ormai si credeva perso per sempre, tra l&#039;uomo e le stagioni, i cicli organici della terra ed il vicinato. &amp;quot;Lo spazio banale e senza vita del prato uniforme antistante la casa sarà sostituito dall&#039;abbondanza caotica della biodiversità.&lt;br /&gt;
&lt;br /&gt;
==Perché abbiamo creato un orto urbano?== &lt;br /&gt;
&lt;br /&gt;
Eccone i motivi: [https://eigenlab.org/articoli-e-comunicati/approfondimenti/108-eigenorto-esempio-di-autoproduzione-e-consumo-critico Articolo]&lt;br /&gt;
&lt;br /&gt;
==Blog dei lavori all&#039;orto== &lt;br /&gt;
&lt;br /&gt;
Abbiamo deciso di scrivere questo day by day per aiutare chi volesse imitare il nostro percorso in qualunque modo, sul terrazzo di casa o ancora meglio, in un prato incolto come abbiamo fatto noi! &lt;br /&gt;
[https://eigenlab.org/eigenorto/day-by-day-10 Blog del primo anno], [https://eigenlab.org/eigenorto/orto blog del secondo anno].&lt;br /&gt;
&lt;br /&gt;
==Prodotti da noi coltivati, e relative caratteristiche nutrizionali== &lt;br /&gt;
&lt;br /&gt;
Primo anno: &lt;br /&gt;
* [[Pomodoro]]  &lt;br /&gt;
* [[Cipolla]]  &lt;br /&gt;
* [[Basilico]] &lt;br /&gt;
* [[Melanzana]] &lt;br /&gt;
* [[Prezzemolo]] &lt;br /&gt;
* [[Zucchina]] &lt;br /&gt;
* [[Cavolo]] &lt;br /&gt;
* [[Zucca]] &lt;br /&gt;
&lt;br /&gt;
Secondo anno: &lt;br /&gt;
(Oltre ai precedenti) &lt;br /&gt;
* [[Piselli]] &lt;br /&gt;
* [[Carote]] &lt;br /&gt;
* [[Patate]] &lt;br /&gt;
* [[Ceci]] &lt;br /&gt;
* [[Rucola]]  &lt;br /&gt;
* [[Peperoni]] &lt;br /&gt;
* [[Spinaci]] &lt;br /&gt;
* [[Lattuga]] &lt;br /&gt;
* [[Peperoncino]] &lt;br /&gt;
&lt;br /&gt;
==Attrezzi usati (e altro)== &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PRIMO ANNO&#039;&#039;&#039; &lt;br /&gt;
(aggiungi foto)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cosa abbiamo utilizzato per realizzare tutto il progetto (orto di 25 mq):&#039;&#039;&#039; &lt;br /&gt;
* Vanghe, 2 (riciclate) &lt;br /&gt;
* Zappe, 2 (riciclate) &lt;br /&gt;
* Rastrello (riciclato) &lt;br /&gt;
* Guanti da lavoro (riciclati) &lt;br /&gt;
* Argilla espansa, 80 L (comprata, costo totale 46 Euro) &lt;br /&gt;
* Terriccio, 80 L (comprato, costo totale 30 Euro) &lt;br /&gt;
* Stallatico, 20 L (comprato, costo totale 21 Euro) &lt;br /&gt;
* Infuso all&#039;ortica (preparato) &lt;br /&gt;
* Pompa dell&#039;acqua (comprato, costo totale 35 Euro) &lt;br /&gt;
* Semi (comprati, costo totale 5 Euro) &lt;br /&gt;
* Vasi (riciclati) &lt;br /&gt;
* Sostegni pomodori -canne di bamboo- (recuperate)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;SECONDO ANNO&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[File:orto2.jpg|200px|thumb|left|orto2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cosa abbiiamo utilizzato per realizzare tutto il progetto (orto di 60 mq)&#039;&#039;&#039; &lt;br /&gt;
* Vanghe, 3 (2 riciclate, 1 comprata) &lt;br /&gt;
* Zappe, 2 (riciclate) &lt;br /&gt;
* Rastrello (riciclato) &lt;br /&gt;
* Guanti da lavoro (riciclati) &lt;br /&gt;
* Argilla espansa, 160 L (comprata, costo totale 80 Euro) &lt;br /&gt;
* Terriccio, 120 L (comprato, costo totale 50 Euro) &lt;br /&gt;
* Stallatico, 30 L (comprato, costo totale 31 Euro) &lt;br /&gt;
* Pompa dell&#039;acqua (comprata l&#039;anno precedente) &lt;br /&gt;
* Semi (comprati, costo totale 5 Euro) &lt;br /&gt;
* Vasi (riciclati) &lt;br /&gt;
* Sostegni ceci e piselli -Spago,legni- (comprato, 1.80 Euro) &lt;br /&gt;
* Camminamenti in plastica (riutilizzati)&lt;br /&gt;
&lt;br /&gt;
==I nostri biopesticidi/integratori/fertilizzanti== &lt;br /&gt;
&lt;br /&gt;
* [[Infuso di ortica]] &lt;br /&gt;
* [[Integratore al calcio]] &lt;br /&gt;
* [[Compost]] &lt;br /&gt;
&lt;br /&gt;
== La giusta terminologia ortesca!== &lt;br /&gt;
&lt;br /&gt;
* [[Mettere a dimora]] &lt;br /&gt;
* [[Pane di terra]] &lt;br /&gt;
* [[Innesto]] &lt;br /&gt;
* [[Talea]] &lt;br /&gt;
* [[Rotazione annuale]] &lt;br /&gt;
* [[Verdura epigea]] &lt;br /&gt;
* [[Verdura ipogea]]&lt;br /&gt;
* [[Sfemminellatura]]&lt;br /&gt;
* [[Consociazione]]&lt;br /&gt;
* [[Pacciamatura]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=EigenOrto&amp;diff=4267</id>
		<title>EigenOrto</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=EigenOrto&amp;diff=4267"/>
		<updated>2016-03-19T17:07:57Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Annullate le modifiche di Lunaele (discussione), riportata alla versione precedente di Lunaele&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==La sfida!== &lt;br /&gt;
&lt;br /&gt;
La creazione di un orto urbano completamente biologico, era per noi, studenti e studentesse dell&#039;università di Pisa, una sfida che all&#039;inizio pareva ben oltre le nostre possibilità. Vari elementi ci scoraggiavano, primo tra tutti il problema logistico. Lo spazio inutilizzato di cui ci siamo appropriati è infatti un giardino nella facoltà di Scienze, con un terreno assolutamente inadatto allo scopo da noi prefissato. &lt;br /&gt;
&lt;br /&gt;
Il primo ostacolo stato risolto mestando la terra con altra nuova, insieme a molti litri di stallatico. &lt;br /&gt;
Altro nodo gordiano, dove rifornirci di tutto ci che non avremmo potuto riciclare/recuperare? Non senza sforzi abbiamo trovato un piccolo rivenditore locale che ci ha profuso consigli contadini per il futuro.&lt;br /&gt;
Il tempo ha sicuramente costituito un altro problema, essendo noi tutti studenti e dovendo coniugare lo studio con gli improrogabili obblighi che la produzione di cibo porta con sé. &lt;br /&gt;
Abbiamo costituito dei turni che prevedevano l&#039;annaffiatura, la concimazione, l&#039;uso di biopesticidi, l&#039;estirpazione di graminacee e, infine, la raccolta.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;E&#039; stata una sfida con noi stessi prima di tutto, che ha messo alla prova il nostro ingegno, la nostra pazienza, la nostra voglia di fare.&#039;&#039;&#039; Rendere produttiva un pezzo di terra altrimenti abbandonato a se stesso, e farlo in modo sostenibile, questo era l&#039;obiettivo che ci eravamo prefissati.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;La realtà degli orti urbani ormai estesa a macchia d&#039;olio in tutta Europa,&#039;&#039;&#039; con esempi importanti in &#039;&#039;&#039;Gran Bretagna&#039;&#039;&#039; per esempio, dove la Ong, che occupa della gestione del patrimonio culturale inglese, ha assegnato appezzamenti a chi ha espresso il desiderio di coltivarsi in proprio frutta e verdura. La lista d&#039;attesa di oltre 100 mila persone che hanno fatto richiesta di piccoli appezzamenti ad uso agricolo  situati nel centro delle città ha fatto maturare la decisione del National Trust di intraprendere questa nuova iniziativa che renderebbe profiqui terreni e che altrimenti andrebbero inutilizzati. &amp;quot;Capital growth&amp;quot; il nome della recente campagna atta a trasformare zone derelitte della città in progetti comunitari di coltivazione e autoproduzione di frutta e ortaggi in loco. Il progetto consiste nell&#039;offerta di un supporto tecnico e finanziario alle comunità interessate (che spaziano da scuole ad aziende a singoli cittadini) ad avviare esperienze di &#039;&#039;&#039;autosufficienza alimentare&#039;&#039;&#039;. La previsione ambiziosa è di creare entro il 2012 nuovi spazi produttivi in oltre 2000 aree urbane.&lt;br /&gt;
Addirittura oltreoceano arrivano testimonianze simili: a &#039;&#039;&#039;Montréal&#039;&#039;&#039;, in Canada, si è effettuato un progetto sociale per mobilitare le persone attorno ad un orto collettivo applicato ad alcuni quartieri della città.&lt;br /&gt;
Negli Stati Uniti, a &#039;&#039;&#039;Los Angeles&#039;&#039;&#039;, si parla di giardini commestibili. Si propone di sostituire il prato con un paesaggio domestico commestibile. Gli ortaggi che si coltivano nei cortili, sostiene Haeg, l&#039;architetto che ha ideato il progetto, ricreano un rapporto, che ormai si credeva perso per sempre, tra l&#039;uomo e le stagioni, i cicli organici della terra ed il vicinato. &amp;quot;Lo spazio banale e senza vita del prato uniforme antistante la casa sarà sostituito dall&#039;abbondanza caotica della biodiversità.&lt;br /&gt;
&lt;br /&gt;
==Perché abbiamo creato un orto urbano?== &lt;br /&gt;
&lt;br /&gt;
Eccone i motivi: [https://eigenlab.org/articoli-e-comunicati/approfondimenti/108-eigenorto-esempio-di-autoproduzione-e-consumo-critico Articolo]&lt;br /&gt;
&lt;br /&gt;
==Blog dei lavori all&#039;orto== &lt;br /&gt;
&lt;br /&gt;
Abbiamo deciso di scrivere questo day by day per aiutare chi volesse imitare il nostro percorso in qualunque modo, sul terrazzo di casa o ancora meglio, in un prato incolto come abbiamo fatto noi! &lt;br /&gt;
[https://eigenlab.org/eigenorto/day-by-day-10 Blog del primo anno], [https://eigenlab.org/eigenorto/orto blog del secondo anno].&lt;br /&gt;
&lt;br /&gt;
==Prodotti da noi coltivati, e relative caratteristiche nutrizionali== &lt;br /&gt;
&lt;br /&gt;
Primo anno: &lt;br /&gt;
* [[Pomodoro]]  &lt;br /&gt;
* [[Cipolla]]  &lt;br /&gt;
* [[Basilico]] &lt;br /&gt;
* [[Melanzana]] &lt;br /&gt;
* [[Prezzemolo]] &lt;br /&gt;
* [[Zucchina]] &lt;br /&gt;
* [[Cavolo]] &lt;br /&gt;
* [[Zucca]] &lt;br /&gt;
&lt;br /&gt;
Secondo anno: &lt;br /&gt;
(Oltre ai precedenti) &lt;br /&gt;
* [[Piselli]] &lt;br /&gt;
* [[Carote]] &lt;br /&gt;
* [[Patate]] &lt;br /&gt;
* [[Ceci]] &lt;br /&gt;
* [[Rucola]]  &lt;br /&gt;
* [[Peperoni]] &lt;br /&gt;
* [[Spinaci]] &lt;br /&gt;
* [[Lattuga]] &lt;br /&gt;
* [[Peperoncino]] &lt;br /&gt;
&lt;br /&gt;
==Attrezzi usati (e altro)== &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PRIMO ANNO&#039;&#039;&#039; &lt;br /&gt;
(aggiungi foto)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cosa abbiamo utilizzato per realizzare tutto il progetto (orto di 25 mq):&#039;&#039;&#039; &lt;br /&gt;
* Vanghe, 2 (riciclate) &lt;br /&gt;
* Zappe, 2 (riciclate) &lt;br /&gt;
* Rastrello (riciclato) &lt;br /&gt;
* Guanti da lavoro (riciclati) &lt;br /&gt;
* Argilla espansa, 80 L (comprata, costo totale 46 Euro) &lt;br /&gt;
* Terriccio, 80 L (comprato, costo totale 30 Euro) &lt;br /&gt;
* Stallatico, 20 L (comprato, costo totale 21 Euro) &lt;br /&gt;
* Infuso all&#039;ortica (preparato) &lt;br /&gt;
* Pompa dell&#039;acqua (comprato, costo totale 35 Euro) &lt;br /&gt;
* Semi (comprati, costo totale 5 Euro) &lt;br /&gt;
* Vasi (riciclati) &lt;br /&gt;
* Sostegni pomodori -canne di bamboo- (recuperate)&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;SECONDO ANNO&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[File:orto2.jpg|200px|thumb|left|orto2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cosa abbiiamo utilizzato per realizzare tutto il progetto (orto di 60 mq)&#039;&#039;&#039; &lt;br /&gt;
* Vanghe, 3 (2 riciclate, 1 comprata) &lt;br /&gt;
* Zappe, 2 (riciclate) &lt;br /&gt;
* Rastrello (riciclato) &lt;br /&gt;
* Guanti da lavoro (riciclati) &lt;br /&gt;
* Argilla espansa, 160 L (comprata, costo totale 80 Euro) &lt;br /&gt;
* Terriccio, 120 L (comprato, costo totale 50 Euro) &lt;br /&gt;
* Stallatico, 30 L (comprato, costo totale 31 Euro) &lt;br /&gt;
* Pompa dell&#039;acqua (comprata l&#039;anno precedente) &lt;br /&gt;
* Semi (comprati, costo totale 5 Euro) &lt;br /&gt;
* Vasi (riciclati) &lt;br /&gt;
* Sostegni ceci e piselli -Spago,legni- (comprato, 1.80 Euro) &lt;br /&gt;
* Camminamenti in plastica (riutilizzati)&lt;br /&gt;
&lt;br /&gt;
==I nostri biopesticidi/integratori/fertilizzanti== &lt;br /&gt;
&lt;br /&gt;
* [[Infuso di ortica]] &lt;br /&gt;
* [[Integratore al calcio]] &lt;br /&gt;
* [[Compost]] &lt;br /&gt;
&lt;br /&gt;
== La giusta terminologia ortesca!== &lt;br /&gt;
&lt;br /&gt;
* [[Mettere a dimora]] &lt;br /&gt;
* [[Pane di terra]] &lt;br /&gt;
* [[Innesto]] &lt;br /&gt;
* [[Talea]] &lt;br /&gt;
* [[Rotazione annuale]] &lt;br /&gt;
* [[Verdura epigea]] &lt;br /&gt;
* [[Verdura ipogea]]&lt;br /&gt;
* [[Sfemminellatura]]&lt;br /&gt;
* [[Consociazione]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=How2SitoHM&amp;diff=4266</id>
		<title>How2SitoHM</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=How2SitoHM&amp;diff=4266"/>
		<updated>2016-03-19T15:27:07Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Ricreata la pagina che da gonfio avevo eliminato&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prerequisiti: ==&lt;br /&gt;
&lt;br /&gt;
# Un account su http://git.lattuga.net/user/sign_up &lt;br /&gt;
# Fare amicizia con il terminale su Linux&lt;br /&gt;
# Avere voglia di imparare 3 comani di git&lt;br /&gt;
# Imparare un comando di fabric&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti software: ==&lt;br /&gt;
&lt;br /&gt;
# python2.7&lt;br /&gt;
# virtualenv2&lt;br /&gt;
# git&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian-Ubuntu:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install python python-virtualenv git&lt;br /&gt;
&#039;&#039;&#039;Arch:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 sudo pacman -S python2 python2-virtualenv git&lt;br /&gt;
&lt;br /&gt;
[Da qui in poi appariranno termini tecnici, non mordono, pensateli come delle pallette fuffose rosa] [[File:HairyBall.png|150x150px|Palletta fuffosa]]&lt;br /&gt;
&lt;br /&gt;
La prima cosa da fare per iniziare a lavorare sul sito è creare un virtualenv per python, altro non è che una cartella sul pc nella quale valgono alcune regole che ci semplificano il lavoro.&lt;br /&gt;
&lt;br /&gt;
Scegliamo la cartella in cui vogliamo lavorare, da qui in poi faccio finta che sia:&lt;br /&gt;
 /home/svalo/eigenLab/sitoHM&lt;br /&gt;
Voi sostituite ogni occorrenza col vostro percorso&lt;br /&gt;
&lt;br /&gt;
Per prima cosa apriamo un terminale (Menu -&amp;gt; Accessori -&amp;gt; Terminale) e ci spostiamo dentro la cartella&lt;br /&gt;
 cd /home/svalo/eigenLab/sitoHM&lt;br /&gt;
&lt;br /&gt;
E creiamo un virtualenv&lt;br /&gt;
&lt;br /&gt;
 virtualenv HM16&lt;br /&gt;
&lt;br /&gt;
Appariranno un po&#039; di scritte che ci informano che sta installando una versione di python dentro la cartella HM16 e vari altri componenti. Questo serve perché così possiamo lavorare installando un sacco di cose e fare un sacco di configurazioni che non &amp;quot;sporcano&amp;quot; il sistema in generale ma che hanno valore solo dentro la cartella. Una volta finito HM potremo cancellare la cartella ed il sistema tornerà com&#039;era prima.&lt;br /&gt;
&lt;br /&gt;
Poi attiviamo il virtualenv&lt;br /&gt;
 source ./HM16/bin/activate&lt;br /&gt;
&lt;br /&gt;
Per essere sicuri che tutto sia andato a buon fine dal terminale digitate&lt;br /&gt;
 which python&lt;br /&gt;
Se la risposta è qualcosa di simile a&lt;br /&gt;
 /home/svalo/eigenLab/sitoHM/HM16/bin/python&lt;br /&gt;
&lt;br /&gt;
Allora tutto bene, se assomiglia a /usr/bin/python2.7 allora qualcosa non è andato bene, contatta lo smanettone più vicino :P&lt;br /&gt;
&lt;br /&gt;
A questo punto abbiamo creato il nostro virtualenv e lo abbiamo attivato, sarà il nostro spazio di lavoro, ogni volta che vorremo lavorare sul sito dovremmo entrare nella cartella che abbiamo scelto e attivare il virtualenv.&lt;br /&gt;
&lt;br /&gt;
Versione compatta per dalla seconda volta in poi&lt;br /&gt;
&lt;br /&gt;
 cd /home/svalo/eigenLab/sitoHM&lt;br /&gt;
 . ./HM16/bin/activate&lt;br /&gt;
&lt;br /&gt;
Quando abbiamo finito di sviluppare e vogliamo fare altro basta scrivere nel terminale&lt;br /&gt;
 deactivate&lt;br /&gt;
&lt;br /&gt;
== Prendere il codice del sito == &lt;br /&gt;
&lt;br /&gt;
Siamo dentro la cartella /home/svalo/eigenLab/sitoHM/ adesso prendiamo il codice del sito&lt;br /&gt;
&lt;br /&gt;
Il codice del sito vive in un repository git su git.lattuga.net, lo potete recuperare col comando&lt;br /&gt;
 git clone http://git.lattuga.net/boyska/sito-hackit-16.git&lt;br /&gt;
&lt;br /&gt;
Questo sparerà un po&#039; di messaggi e, se tutto va bene, ci ritroveremo con una bellissima cartella di sono sito-hackit-16 accanto a HM16&lt;br /&gt;
&lt;br /&gt;
Ovvero dando il comando ls in /home/svalo/eigenLab/sitoHM dovremmo vedere&lt;br /&gt;
 (HM16) /home/svalo/eigenLab/Developing/HM16/&lt;br /&gt;
 svalo:$ ls&lt;br /&gt;
 HM16  sito-hackit-16&lt;br /&gt;
&lt;br /&gt;
Ottimo adesso abbiamo il codice del sito, se entrate nella cartella sito-hackit-16 vedrete la struttura del progetto&lt;br /&gt;
&lt;br /&gt;
 cd sito-hackit-16&lt;br /&gt;
&lt;br /&gt;
ls vi dirà cosa c&#039;è dentro.&lt;br /&gt;
&lt;br /&gt;
La prima, e unica, volta dovremo installare le dipendenze del progetto per poter lavorare al sito&lt;br /&gt;
 pip install -r requirements.txt&lt;br /&gt;
&lt;br /&gt;
Questo legge il file requirements ed installa i programmi che servono per creare il sito.&lt;br /&gt;
&lt;br /&gt;
CI SIAMO! Abbiamo tutto quello che ci serve per cominciare&lt;br /&gt;
&lt;br /&gt;
Sempre da dentro la cartella sito-hackit-16 diamo il comando&lt;br /&gt;
&lt;br /&gt;
 ./develop-server.sh start &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
Queso farà partire un mini server web il python che ci farà vedere il sito allo stato attuale all&#039;indirizzo http://localhost:8000&lt;br /&gt;
&lt;br /&gt;
Quando vorremo fermare il server python, dallo stesso terminale dal quale lo abbiamo lanciato dobbiamo dare&lt;br /&gt;
 ./develop-server.sh stop&lt;br /&gt;
&lt;br /&gt;
== Modificare il sito ==&lt;br /&gt;
&lt;br /&gt;
Ok tutto figo maaaa come si modifica? &lt;br /&gt;
&lt;br /&gt;
Tutto questo accrocchio serve per generare il sito, il sito vero e proprio è solo una manciata di pagine html e di css, lo trovate dentro la cartella output. Quello è ciò che effettivamente andrà poi nel server che ospita il sito.&lt;br /&gt;
&lt;br /&gt;
Le pagine del sito stanno dentro &lt;br /&gt;
 content/pages/&lt;br /&gt;
&lt;br /&gt;
Possiamo modificarle  e vedere cosa succede alla pagina http://localhost:8000 tutto quello che faremo rimarrà sul nostro pc, se facciamo qualche cazzata basterà dare il comando&lt;br /&gt;
 git checkout -- nomedelfiledaripristinare&lt;br /&gt;
&lt;br /&gt;
Le pagine sono scritte in markdown,  le potete modificare con un editor di testo grafico tipo kate o gedit o dal terminale con vim o nano(bleah)&lt;br /&gt;
&lt;br /&gt;
Se abbiamo lanciato il develop server appena salviamo le modifiche ai files questo appariranno nella pagina su localhost.&lt;br /&gt;
&lt;br /&gt;
== Pubblicare le modifiche ==&lt;br /&gt;
&lt;br /&gt;
Prima di modificare o pubblicare le modifiche bisogna dare&lt;br /&gt;
 git pull origin master&lt;br /&gt;
&lt;br /&gt;
Questo serve per ricevere le modifiche che altri potrebbero aver fatto fra il momento in cui abbiamo scaricato il codice del sito e quello in cui vorremmo pubblicare le modifiche&lt;br /&gt;
&lt;br /&gt;
A questo punto possiamo inserire nella storia di git le nostre modifiche.&lt;br /&gt;
&lt;br /&gt;
 git status &lt;br /&gt;
ci dice quello che è cambiato dall&#039;ultima modifica che git conosce (Non tutti i files e non tutte le modifiche che vediamo dentro la cartella sono note a git, lui conosce solo quello che noi gli diciamo di memorizzare)&lt;br /&gt;
&lt;br /&gt;
se ad esempio abbiamo modificato la pagina content/pages/info.md &lt;br /&gt;
&lt;br /&gt;
git ci dirà che quel file è stato modificato&lt;br /&gt;
&lt;br /&gt;
 git diff&lt;br /&gt;
&lt;br /&gt;
ci farà vedere le modifiche&lt;br /&gt;
&lt;br /&gt;
 git add content/pages/info.md &lt;br /&gt;
Aggiungerà le modifiche alla coda delle modifiche da aggiungere&lt;br /&gt;
&lt;br /&gt;
 git commit -m &amp;quot;Un messaggio breve ma significativo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Aggiungerà le nostre modifiche alla storia di git&lt;br /&gt;
&lt;br /&gt;
Questo aggiunge le modifiche solo alla storia presente sul nostro pc, per poterle vedere online dobbiamo mandarle repository di boyska. &lt;br /&gt;
&lt;br /&gt;
Questo però lo copriremo più in là di persona&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=523</id>
		<title>HowToOCsync</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=523"/>
		<updated>2016-02-03T12:04:32Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abbiamo un istanza di [https://owncloud.org/ Owncloud] su un server della rete, ottimo, mo che ci facciamo? Oltre a poterlo usare per caricare i files e condividerli con gruppi/utenti/tiziaccasosuinternet lo possiamo pure usare per evitare di sincronizzare la nostra rubrica e i nostri calendari con Google.&lt;br /&gt;
=Il problema=&lt;br /&gt;
Di default da una certa versione di Android i contatti vengono automaticamente sincronizzati coi server di Google, se non si desidera bisogna esplicitamente dirgli di non farlo ed usare un account locale. &lt;br /&gt;
Da Android 6 invece non è più possibile (almeno sui telefoni sui quali ho messo le mani) avere account locali e quindi i contatti e calendari sono *forzatamente* caricati su  google.&lt;br /&gt;
=La svolta=&lt;br /&gt;
La nostra istanza di owncloud ha abilitato il modulo per i contatti, quello per il calendario ed anche un modulo per le todolist, vediamo come usarli:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039; Caricando i tuoi dati ti stai fidando del proprietario del server e di chi ha accesso alla macchina, chiunque con un accesso alla macchina potrà leggere i dati caricati&lt;br /&gt;
&lt;br /&gt;
==Contatti==&lt;br /&gt;
La tecnologia che OC usa per syncronizzare il contatti è [https://en.wikipedia.org/wiki/CardDAV carddav], il nostro server forza l&#039;uso di HTTPS (connessioni cifrate fra dispositivo e server verificate da StarCom) quindi i dati non viaggiano mai in &amp;quot;chiaro&amp;quot; sulla rete, nè Internet ne eigenNet. &lt;br /&gt;
====Cosa ci serve:====&lt;br /&gt;
* Uno smartphone/computer/tablet o qualsiasi cosa che possa usare carddav e abbia una rubrica&lt;br /&gt;
* Per Android l&#039;app [https://f-droid.org/repository/browse/?fdfilter=davdroid&amp;amp;fdid=at.bitfire.davdroid Davdroid] installabile da [https://f-droid.org/about/ F-droid] (Un repository aggiuntivo per applicazioni OpenSource per android)&lt;br /&gt;
* Un account sul nostro [https://apollo.eigenlab.org/owncloud/ Owncloud]&lt;br /&gt;
* Internet/eigenNet&lt;br /&gt;
&lt;br /&gt;
E ora con ordine:&lt;br /&gt;
# [[Installare F-droid]]&lt;br /&gt;
# Cerca l&#039;app &#039;Davdroidì ed installala&lt;br /&gt;
# Apri Davdroid&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Davdroid.png| Pigia sulla chiave col + &lt;br /&gt;
File:DavdroidLogin.png&lt;br /&gt;
File:DavLogin.png                                                                                                                                                                              &lt;br /&gt;
File:DavNext.png|L&#039;indirizzo da inserire è apollo.eigenlab.org/owncoud e le credenziali personali&lt;br /&gt;
File:DavContacts.png|Seleziona le rubriche che vuoi sincronizzare, ce ne possono essere più di una&lt;br /&gt;
File:DavFinal.png &lt;br /&gt;
File:Accounts.png&lt;br /&gt;
File:DavDatails.png&lt;br /&gt;
File:DavAccountDetails.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
==Calendario==&lt;br /&gt;
Tutto uguale ma seleziona&lt;br /&gt;
[[File:DavCal.png|miniatura|none]]&lt;br /&gt;
==Note==&lt;br /&gt;
Tutto uguale ma selezionanone&lt;br /&gt;
[[File:DavNotes.png    |miniatura|none]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=522</id>
		<title>HowToOCsync</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=522"/>
		<updated>2016-02-03T12:03:17Z</updated>

		<summary type="html">&lt;p&gt;Svalo: /* Cosa ci serve: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abbiamo un istanza di [https://owncloud.org/ Owncloud] su un server della rete, ottimo, mo che ci facciamo? Oltre a poterlo usare per caricare i files e condividerli con gruppi/utenti/tiziaccasosuinternet lo possiamo pure usare per evitare di sincronizzare la nostra rubrica e i nostri calendari con Google.&lt;br /&gt;
=Il problema=&lt;br /&gt;
Di default da una certa versione di Android i contatti vengono automaticamente sincronizzati coi server di Google, se non si desidera bisogna esplicitamente dirgli di non farlo ed usare un account locale. &lt;br /&gt;
Da Android 6 invece non è più possibile (almeno sui telefoni sui quali ho messo le mani) avere account locali e quindi i contatti e calendari sono *forzatamente* caricati su  google.&lt;br /&gt;
=La svolta=&lt;br /&gt;
La nostra istanza di owncloud ha abilitato il modulo per i contatti, quello per il calendario ed anche un modulo per le todolist, vediamo come usarli:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039; Caricando i tuoi dati ti stai fidando del proprietario del server e di chi ha accesso alla macchina, chiunque con un accesso alla macchina potrà leggere i dati caricati&lt;br /&gt;
&lt;br /&gt;
==Contatti==&lt;br /&gt;
La tecnologia che OC usa per syncronizzare il contatti è [https://en.wikipedia.org/wiki/CardDAV carddav], il nostro server forza l&#039;uso di HTTPS (connessioni cifrate fra dispositivo e server verificate da StarCom) quindi i dati non viaggiano mai in &amp;quot;chiaro&amp;quot; sulla rete, nè Internet ne eigenNet. &lt;br /&gt;
====Cosa ci serve:====&lt;br /&gt;
* Uno smartphone/computer/tablet o qualsiasi cosa che possa usare carddav e abbia una rubrica&lt;br /&gt;
* Per Android l&#039;app [https://f-droid.org/repository/browse/?fdfilter=davdroid&amp;amp;fdid=at.bitfire.davdroid Davdroid] installabile da [https://f-droid.org/about/ F-droid] (Un repository aggiuntivo per applicazioni OpenSource per android)&lt;br /&gt;
* Un account sul nostro [https://apollo.eigenlab.org/owncloud/ Owncloud]&lt;br /&gt;
* Internet/eigenNet&lt;br /&gt;
&lt;br /&gt;
E ora con ordine:&lt;br /&gt;
# [[Installare F-droid]]&lt;br /&gt;
# Cerca l&#039;app &#039;Davdroidì ed installala&lt;br /&gt;
# Apri Davdroid&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Davdroid.png| Pigia sulla chiave col + &lt;br /&gt;
File:DavdroidLogin.png&lt;br /&gt;
File:DavLogin.png                                                                                                                                                                              &lt;br /&gt;
File:DavNext.png|L&#039;indirizzo da inserire è apollo.eigenlab.org/owncoud e le credenziali personali&lt;br /&gt;
File:DavContacts.png&lt;br /&gt;
File:DavFinal.png&lt;br /&gt;
File:Accounts.png&lt;br /&gt;
File:DavDatails.png&lt;br /&gt;
File:DavAccountDetails.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
==Calendario==&lt;br /&gt;
Tutto uguale ma seleziona&lt;br /&gt;
[[File:DavCal.png|miniatura|none]]&lt;br /&gt;
==Note==&lt;br /&gt;
Tutto uguale ma selezionanone&lt;br /&gt;
[[File:DavNotes.png    |miniatura|none]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=521</id>
		<title>HowToOCsync</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=521"/>
		<updated>2016-02-03T11:55:54Z</updated>

		<summary type="html">&lt;p&gt;Svalo: Creata pagina con &amp;quot;Abbiamo un istanza di [https://owncloud.org/ Owncloud] su un server della rete, ottimo, mo che ci facciamo? Oltre a poterlo usare per caricare i files e condividerli con grupp...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abbiamo un istanza di [https://owncloud.org/ Owncloud] su un server della rete, ottimo, mo che ci facciamo? Oltre a poterlo usare per caricare i files e condividerli con gruppi/utenti/tiziaccasosuinternet lo possiamo pure usare per evitare di sincronizzare la nostra rubrica e i nostri calendari con Google.&lt;br /&gt;
=Il problema=&lt;br /&gt;
Di default da una certa versione di Android i contatti vengono automaticamente sincronizzati coi server di Google, se non si desidera bisogna esplicitamente dirgli di non farlo ed usare un account locale. &lt;br /&gt;
Da Android 6 invece non è più possibile (almeno sui telefoni sui quali ho messo le mani) avere account locali e quindi i contatti e calendari sono *forzatamente* caricati su  google.&lt;br /&gt;
=La svolta=&lt;br /&gt;
La nostra istanza di owncloud ha abilitato il modulo per i contatti, quello per il calendario ed anche un modulo per le todolist, vediamo come usarli:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039; Caricando i tuoi dati ti stai fidando del proprietario del server e di chi ha accesso alla macchina, chiunque con un accesso alla macchina potrà leggere i dati caricati&lt;br /&gt;
&lt;br /&gt;
==Contatti==&lt;br /&gt;
La tecnologia che OC usa per syncronizzare il contatti è [https://en.wikipedia.org/wiki/CardDAV carddav], il nostro server forza l&#039;uso di HTTPS (connessioni cifrate fra dispositivo e server verificate da StarCom) quindi i dati non viaggiano mai in &amp;quot;chiaro&amp;quot; sulla rete, nè Internet ne eigenNet. &lt;br /&gt;
====Cosa ci serve:====&lt;br /&gt;
* Uno smartphone/computer/tablet o qualsiasi cosa che possa usare carddav e abbia una rubrica&lt;br /&gt;
* Per Android l&#039;app [https://f-droid.org/repository/browse/?fdfilter=davdroid&amp;amp;fdid=at.bitfire.davdroid Davdroid] installabile da [https://f-droid.org/about/ F-droid] (Un repository aggiuntivo per applicazioni OpenSource per android)&lt;br /&gt;
* Un account sul nostro [https://apollo.eigenlab.org/owncloud/ Owncloud]&lt;br /&gt;
* Internet/eigenNet&lt;br /&gt;
&lt;br /&gt;
E ora con ordine:&lt;br /&gt;
# [[Installare F-droid]]&lt;br /&gt;
# Cerca l&#039;app &#039;Davdroidì ed installala&lt;br /&gt;
# Apri Davdroid&lt;br /&gt;
Pigia sulla chiave col + [[File:Davdroid.png|miniatura|left]]&lt;br /&gt;
[[File:DavdroidLogin.png|miniatura|left]]&lt;br /&gt;
[[File:DavLogin.png|miniatura|left]]                                                                                                                                                           &lt;br /&gt;
[[File:DavNext.png|miniatura|left]]&lt;br /&gt;
[[File:DavContacts.png|miniatura|left]]&lt;br /&gt;
[[File:DavCal.png|miniatura|left]]&lt;br /&gt;
[[File:DavNotes.png    |miniatura|left]]&lt;br /&gt;
[[File:DavFinal.png|miniatura|left]]&lt;br /&gt;
[[File:Accounts.png|miniatura|left]]&lt;br /&gt;
[[File:DavDatails.png|miniatura|left]]&lt;br /&gt;
[[File:DavAccountDetails.png|miniatura|left]]&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=File:DavAccountDetails.png&amp;diff=520</id>
		<title>File:DavAccountDetails.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=File:DavAccountDetails.png&amp;diff=520"/>
		<updated>2016-02-03T11:43:06Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=File:DavDatails.png&amp;diff=519</id>
		<title>File:DavDatails.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=File:DavDatails.png&amp;diff=519"/>
		<updated>2016-02-03T11:42:36Z</updated>

		<summary type="html">&lt;p&gt;Svalo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Svalo</name></author>
	</entry>
</feed>