Visualizzazione post con etichetta OpenSource. Mostra tutti i post
Visualizzazione post con etichetta OpenSource. Mostra tutti i post

martedì 29 novembre 2011

YaCy

Una di quelle cose che potrebbe ingenerare un vero terremoto nel web.

Un motore di ricerca libero (licenza GPL), aperto (codice Java open source) decentralizzato (tecnologia peer to peer), flessibile, configurabile, che si installa con facilità e gira nel browser preferito.

Ed è, soprattutto, rispettoso della privacy, perchè non traccia i gusti degli utenti per proporre pubblicità su misura.

E' YaCy :-)

lunedì 27 giugno 2011

LibreCAD - Un'altra soluzione open source



Per quanto non ancora munita delle feature dei blasonati (e costosi) concorrenti closed source, la soluzione LibreCAD sembra pulita, funzionale e destinata ad un buon successo, specie in periodi di vacche magre come questo, dove si cerca di risparmiare su tutto, nell'immediato ed in prospettiva

Piccolo ma non trascurabile vantaggio: gira su tutte le piattaforme, ed è pacchettizzata per il mondo rpm e deb sia 32 che 64 bit per una facile e rapida installazione.

sabato 12 marzo 2011

Joomla: caricamento lento ed errore 504 gateway timeout

WebOpenLife, la mia struttura informatica, è posizionata su server americani del provider Mochahost, che mostrano un ping medio, a partire da una ADSL italiana di media efficacia, di 130 ms.
Questo ping è sicuramente superiore rispetto a molti provider italiani (indiscutibilmente più rapidi ma anche più onerosi e nettamente meno funzionali) che viaggiano intorno ai 20-30 ms (come ad esempio Sic.Am. sas posizionata su server italiano Fastnom), ma la perdita, se il sito è di rapido caricamento, non incide più di tanto su potenziali clienti italiani.
Se il sito è di rapido caricamento...
Sia i siti statici che dinamici non danno grossi problemi, semprechè si imposti la home page, o meglio la primary landing page, in modo tale da non avere ammenicoli tali da renderne artificiosamente pesante il caricamento; per tale motivo la landing page va adeguatamente impostata fin dalla sua progettazione e continuamente monitorata una volta on line.
Nel caso di WebOpenLife, il problema incontrato consisteva nella scelta del template base, con relativa presenza di slideshow, che si mostrava particolarmente lento al caricamento, aggravando la questione relativa al posizionamento estero.
Lentezza che, in alcuni casi, legati probabilmente a momenti di intenso traffico, portavano anche al messaggio di errore 504 gateway timeout.
Dopo una breve googlata ho verificato che, specie in caso di caricamento di immagini, particolarmente valido quando si hanno estensioni con molte immagini da caricare che non si possono ridurre dimensionalmente se non comprimendole a scapito di una forte perdita di qualità, motivo significativo di rallentamento è dato dal check delle immagini che il sito, sia da parte dell'amministrazione che da parte dell'estensione specifica, effettua prima di fare l'upload.
La soluzione a questo piccolo ma serio problema, che ho trovato in questo thread, è la seguente:

<root>/administrator/components/com_media/models/manager.php

posizionarsi alle  righe 63 e 102

$folders = JFolder::folders($base, '.', true, true)

e modificarle in

$folders = JFolder::folders($base, '.', false, true)

Questo nel caso del comportamento administrator; analoga cosa, eventualmente, andrà fatta nella gestione della specifica estensione, come ad es. nel caso di un'estensione che fa solitamente un largo uso di immagini come virtuemart .

lunedì 17 gennaio 2011

Joomla security base

Premessa: questo post è in fase di revisione ed aggiornamento; vedrò di migliorarlo col tempo lasciando la data di prima pubblicazione.

Si, lo so, è già uscita la 1.6 stable, ma il processo di migrazione sarà lungo (ci sono addirittura moltissimi siti ancora in 1.0) e presumibilmente non doloroso, specie per i template.
Quindi, non è male intanto rivedere, assemblare e possibilmente completare in un unico post le varie checklist sui requisiti e le procedure di sicurezza minimi che un sito in Joomla 1.5.x DEVE possedere od attuare.
Tenete conto che molte di queste impostazioni possono essere ottenute sia sulla versione 1.5.x che sulla versione 1.6 caricando sul sito l'ottima estensione gratuita (nella versione base) Akeeba, sia nelle funzionalità Back up che Admin Tool
NB L'admin tool consente anche di effettuare l'aggiornamento fino all'ultima versione della 1.5.x. Nel caso della versione italiana, akeeba non riesce a fare l'aggiornamento in quanto punta ai server di Joomla.org.
Se volete usare questa funzionalità del tool dovete quindi aver installato la versione inglese da Joomla.org ed il package corrispondente alla lingua italiana per il back end.


INSTALLAZIONE

Prova locale
Effettuare sempre una prova in locale del sito per verificarne la funzionalità. Installare, sul proprio PC, LAMP/XAMPP od analoghi

Hosting
Nella scelta dello spazio web, nel caso di hosting condiviso, scegliere hoster:
  • che non siano troppo a buon mercato;
  • che forniscano spazio gestito da server *nix Red Hat / CentOS / Debian;
  • in grado di fornire servizi SFTP (secure FTP), cioè sistemi di scambio dati tra locale e remoto in condizioni di sicurezza, al fine di uploadare e downloadare i dati in modo più controllato
  • che abbiano impostato la direttiva PHP register_globals su OFF; ciò al fine di poter utilizzare le proprie specifiche impostazioni di .htaccess e php.ini (NB con php6 questo problema non si presenterà più);
  • che garantisca la disponibilità dell'ultimo aggiornamento dei sistemi operativi e dei servizi server side (apache, php, mysql, ecc.);
  • che informi correttamente sulla policy di sicurezza e sugli eventi, anche negativi, che lo riguardano, e che intervenga rapidaente anche per problemi che ci riguardano da loro individuati e ci informi adeguatamente;
  • che consentano l'accesso ai log di sistema, utile in caso di problemi al nostro sito;
  • che gestisca direttamente il centro dati e garantisca adeguata ridondanza e backups;
  • accertarsi di non utilizzare hoster che facciano condividere lo spazio a troppi siti, soprattutto se questi sono siti di spammers o di porno ad intenso traffico ( Verificare con http://www.robtex.com/dns/ )
  • che possano offrire soluzioni di server dedicato a costi ragionevoli ed alta qualità, utile in caso di crescita del sito e del traffico annesso;
Installazione core
Utilizzare sempre, ove possibile, la versione più aggiornate di Joomla e delle estensioni/plugins aggiuntivi che si intende utilizzare

Non usare jos_ come tag delle tabelle del database (feature Akeeba)
Non usare "jos_" come prefisso delle tabelle. Il prefisso è richiesto in fase di installazione di Joomla, per cui basterà modificarlo.
Se è già stata eseguita l'installazione seguire le seguenti istruzioni:
b) (browser) entrare in phpmyadmin --> selezionare il database da modificare --> selezionare "export" --> assegnare un nome specifico al database (file name template) --> dare "esegui" --> il file .sql verrà salvato nella cartella scelta
a) (browser) entrare nel sito come amministratore --> configurazione --> server
Nel riquadro "configurazione database" alla voce "prefisso database" modificare il prefisso con quello scelto (ad es pippo_ ) e salvare. Verrà (ovviamente) segnalato un errore di lettura del database
NB!! attenzione a riportare correttamente il nuovo prefisso nella fase successiva!!;
c) (window manager) selezionare il file .sql salvato e farne una copia di riserva (non si sa mai)
d) aprire il file .sql con gedit o simili  --> selezionare "sostituisci" --> inserire nel campo "cerca" il valore jos_ e nel campo sostituisci il nuovo prefisso (ad es pippo_) --> dare "sostituisci" --> ripetere l'operazione per verificare che tutto sia stato effettivamente sostituito --> uscire dalla finestra "sostituisci" --> salvare
d) (browser) tornare in phpmyadmin --> selezionare il database originario --> selezionare tutte le tabelle --> selezionare "elimina" (drop) --> dare "yes"; a questo punto avremo una scatola vuota, cioè un database privo di tabelle;
f) selezionare importa --> selezionare il file .sql modificato --> dare "esegui".

Qui un video che descrive la procedura

Utilizzare nomi utente e password diversi e complessi per sito e database
Nome utente e password del database, e nome utente (di default admin, modificabile in seguito) e password dell'amministratore del sito, devono essere molto diversi tra loro e complessi (sequenze non intuitive di caratteri maiuscoli e/o minuscoli e simboli e numeri), al fine di rendere più complicati eventuali attacchi brute force


POST INSTALLAZIONE

Usare estensioni fidate
Non utilizzare estensioni non fidate, o perlomeno di cui non si può essere certi dei requisiti di qualità e sicurezza con cui sono state scritte, specie se provenienti da repository non ufficiali di Joomla.

Aggornamenti periodici
Mantenere sempre aggiornate la versione di Joomla in uso e quelle dei componenti aggiuntivi utilizzati e da utilizzarsi, ed effettuare gli upgrade appena disponibili.


Cancellare superadmin userid 62 e rinominare l'utente amministratore (feature Akeeba)
Andare in Sito --> Gestione utenti
Creare un nuovo utente con un suo nome, un suo nome utente e una sua password (ricordatevi tutto: sarà il nuovo login di amministratore) utilizzando termini insoliti e non riconoscibili (ad es non usate admin :-D ); inserite la mail di amministrazione, selezionate Super Administrator, mettete su NO il blocca utente e su SI ricevi le mail di sistema.
--> (NB se per caso avete la necessità di utilizzare la stessa mail del vecchio administrator, inserendola qui il sistema vi impedirà di salvare a causa della presenza dello stesso parametro nell'utente già presente.
A questo punto è necessario tornare nel menu utente, selezionare administrator (quello attualmente loggato) e modificare i parametri (basta aggiungere una lettera a caso in quelli di questo amministratore) che vi interessa riportare nel nuovo amministratore, in modo che non risultino identici). Create quindi il nuovo utente con i parametri che vi interessano<--
A questo punto avete due super amministratori, ma NE VEDRETE SOLO UNO, cioè quello con cui vi siete loggati.
Date esci in modo da tornare al login e loggatevi con i nuovi parametri che avete impostato (nuovo nome utente e nuova password)
Andate in Sito --> Gestione utenti e vedrete il vostro amministratore (quello con cui vi siete loggato) con user id 63 e quello precedente, che in questo momento ha i privilegi di administrator e non di super administrator, con l'user id 62.
A questo punto potete eliminare il vecchio amministratore o ridurne i privilegi a quelli di semplice utente.
Ripetendo la procedura otterrete un amministratore con user id 64, 65 ecc.


Permessi (feature Akeeba)
Impostare a file e cartelle i giusti permessi al fine di incrementare la sicurezza; normalmente sono: file = 644 e directory 755

Disabilitare componenti inutili
Pannello di controllo --> gestione Estensioni --> disabilita

Back up sito e database (feature Akeeba)
Effettuare back up sistematici del sito e del database e conservare le subversion !
Installare l'estensione akeebabackup e akeeba site admin

Abilitare htaccess
Entrare nella cartella del sito con i privilegi di aministratore e rinominare htaccess.txt in .htaccess
Verificare che sussistano i permessi per il server web (apache o www-data)
(browser) entrare nel sito come amministratore --> configurazione --> sito e nel modulo Configurazione SEO selezionare l'opzione "utilizza mod_rewrite"

Eliminare template position (tp=1)
Inserire in .htaccess :

# Start ?tp=1 prevention #
RewriteCond %{QUERY_STRING} tp=(.*)
RewriteRule ^(.*)$ index.php [F,L]
# End ?tp=1 prevention #

Disabilitare ricerca immagini dal file robots
Se non esiste, creare nella directory principale un file chiamato "robots.txt"
“...
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
..."

Rimuovere Generation tag
templates/name-template/index.php :
riportare nell'header
<?php
// Remove the generator meta tag
$this->setGenerator(null);
?>

o, in modo più divertente (ma attenzione ad eventuali conflitti)  :-)
<?php
// Remove the generator meta tag
$this->setGenerator(Drupal);
?>

Nascondere la versione
Nel file .htaccess inserire:
<Files ~ "\.xml$">
Order allow,deny
Deny from all
Satisfy All
</Files>
E' probabile che queste linee siano già presenti entro il file sotto la voce :
## Deny access to extension xml files (uncomment out to activate)
Basta quindi eliminare il # iniziale per decommentarle e renderle attive

Settaggi Joomla e Php (feature Akeeba)
Impostare i parametri del sito in modo da incrementarne al massimo la sicurezza

Ricostruzione totale in caso di defacciamento od altro hackeraggio
Controllare i logs di sistema, modificare le password, rimuovere l'intera directory e ricostruire l'intero sito a partire da un back up "pulito"

mercoledì 12 gennaio 2011

Installare Joomla in locale su Ubuntu step by step con virtual host

Ma come, mi direte, ti dai alla concorrenza ? :-DDD
E poi, con tutti gli how to che ci sono per Ubuntu ?
Si, ma stavolta è per una buona causa (e per risolvere qualche piccolo tips... ;-) )
In ogni caso, sarò più breve dell'altra volta :-P

Installare LAMP


Aprire sistema --> amministrazione --> gestore pacchetti (synaptic)
Selezionare modifica --> selezionare per attività
Si aprirà una finestra: spuntare la voce LAMP server e dare OK.

In caso questa opzione non sia presente si può seguire la seguente procedura
NB marcatevi i dati (specialmente le password) che vi verranno via via richiesti, o diventerete matti :-| .


Installare Apache

Apache è il server web per eccellenza ed è quello che stiamo per installare, ma non è l'unico: ci sono anche Cherokee, Lighthttp, ecc., a vostra scelta.
Da terminale dare:

sudo apt-get install apache2

--> password root


Testare Apache

Copiare (o digitare) nello spazio URL del browser:

http://localhost/

Dovrà comparire la scritta "It works!"

Installare PHP

Da terminale dare:

sudo apt-get install php5 libapache2-mod-php5

Quindi riavviare Apache. Da terminale dare:

sudo /etc/init.d/apache2 restart


Verificare installazione PHP

Da terminale dare:

sudo gedit /var/www/testphp.php

per aprire un file chiamato phptest.php.
Copiare ed incollare entro il file la stringa:

<?php phpinfo(); ?>

Salvare e chiudere il file
Per verifica, copiare (o digitare) nello spazio URL del browser:

http://localhost/testphp.php


Installare MySQL

Da terminale, dare:

sudo apt-get install mysql-server

MySQL dovrebbe partire in automatico per richiedere l'impostazione della password dell'amministratore del database server. Qualora non succedesse, allora, da terminale dare:

mysql -u root

Al prompt di mysql inserire la seguente linea, inserendo al posto di yourpassword la nostra password scelta

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

NB1 il punto e virgola finale è essenziale per comunicare a mysql la chiusura del comando

NB2 in caso di problemi con la password di mysql possiamo riconfigurare il servizio dando da terminale

sudo dpkg-reconfigure mysql-server

--> /// passo opzionale: se vogliamo pubblicare nella nostra rete privata (o in internet) il nostro server, va modificato il “Bind Address”, cioè l'indirizzo di rete di loopback del nostro pc al fine di farlo riconoscere dagli altri computer; nel caso di una rete privata è sufficiente inserire l'indirizzo di rete stabilito dal router per il nostro pc (ad es. 192.168.1.4).
Da terminale dare:

gksudo gedit /etc/mysql/my.cnf

Cambiare quindi la linea

bind-address = 127.0.0.1

sostituendo 127.0.0.1 (tipicamente il localhost) con l'indirizzo adeguato. Fine passo opzionale /// <--
.

Installare PhpMyAdmin

PhpMyAdmin è un ottimo (e semplice) tool lanciabile da browser per gestire il database server MySQL
Da terminale dare:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Per far si che php possa lavorare con mysql bisogna modificare il file php.ini.
Per editarlo, dare da terminale:

gksudo gedit /etc/php5/apache2/php.ini

e decommentiamo (cioè togliamo il punto e virgola iniziale) dalla linea

;extension=mysql.so

(NB per trovare rapidamente la linea possiamo usare la funzione Trova... dal menu Cerca di Gedit inserendo la parola extension)
così da farla diventare:

extension=mysql.so

Salviamo e usciamo da Gedit.
Riavviamo infine Apache. Da terminale dare:

sudo /etc/init.d/apache2 restart

Verifichiamo il funzionamento digitando nel browser

http://localhost/phpmyadmin

Digitiamo la password per loggarci come amministratore di server database ed inseriamola nella finestra che comparirà.

Fine installazione LAMP

Installare Joomla
Scarichiamo la versione di Joomla che ci interessa (supponiamo che si chiami Joomla_1.x.x_ita - Stable) in una cartella qualunque (ad es. /home/utente/scaricati) e scompattiamola.
Per scompattarla, possiamo farlo come utente da terminale

cd /home/utente/scaricati

tar -xvzf Joomla_1 .x.x _ita – Stable.tgz

oppure possiamo farlo graficamente.
Apriamo Nautilus (o Dolphin o Konqueror o altro window manager), spostiamoci in scaricati, diamo tasto destro sul file archivio e digitiamo 'Estrai qui' (con Konqueror, scegliamo l'opzione 'autorileva la sottocartella')
Quindi apriamo Nautilus in modalità root (da terminale: sudo nautilus) o l'ottimo Krusader in modalità root (si, lo so, usare il window manager per fare 'ste cose non è da geek, ma chissenefrega, ogni tanto bisogna pur cambiare, no ? :-D ), copiamo la cartella estratta dentro la cartella /var/www/ e rinominiamola come ci interessa (ad es miojoomla)
Diamo quindi ad Apache (ricordiamoci che il trasferimento lo abbiamo fatto come root, cui appartiene la cartella) il controllo della cartella miojoomla modificando il proprietario ed il gruppo.
Verifichiamo con

cat /etc/group

che esista www-data, cioè l'utente speciale, con relativo gruppo, che Apache crea per scrivere nella cartella /var/www/.
Una volta verificato consegnamogli il controllo della cartella dando:

sudo chown -R www-data:www-data /var/www/miojoomla


Creare il database mysql per Joomla e l'utente amministratore del database
NB // --> Nota: Joomla è impostato con set di caratteri UTF. Spesso invece il database MySQL database viene impostato di default con collation latin1_xxxxxx_ci e ciò può causare problemi di visualizzazione nell'utilizzo di caratteri non latini (ad es cirillico).
Per fare in modo che Jomla lavori correttamente è necessario scegliere, all'atto della creazione del database, il collation UTF-8 Unicode (utf8) (va bene utf8-general-ci)
In caso di database già creati, sarà necessario effettuare il back up del database (non si sa mai) ed in seguito lanciare, per ogni tabella del database, la seguente query SQL al fine di modificarne l'impostazione:

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

fine nota <-- //

Nel browser digitiamo

http://localhost/phpmyadmin


inseriamo il nome scelto per il database (ad es joomladb), verifichiamo la collation utf8-general-ci e diamo Crea

Quindi selezioniamo il database nell'elenco sulla sinistra, scegliamo 'Privilegi', selezioniamo 'Crea un nuovo utente' (sarà l'utente che gestirà il database di Joomla durante l'amministrazione del sito Joomla)
Nella schermata inseriamo nel campo 'nome' il nome scelto (ad es joomlauserdb), nel campo 'host' inseriamo localhost, e nei campi password la password scelta (ad es (joomlapwdb), lasciando i grant (i privilegi) così come impostati di default, quindi salviamo.

NB la stessa operazione può essere fatta da linea di comando dando

mysql -u root -

per entrare come amministratore di mysql. Quindi (enter dopo ogni riga):

CREATE DATABASE joomladb;

GRANT ALL on joomladb.* TO ’ joomlauserdb’@’localhost’ IDENTIFIED BY ’joomlapwdb ’;

FLUSH PRIVILEGES;

EXIT;

Installare Joomla
Digitiamo


http://localhost/miojoomla ed avviamo l'installazione

Al termine, sarà necessario rimuovere la cartella installation presente dentro /var/www/miojoomla.
Potremo farlo tramite sudo Nautilus o Krusader root, oppure da terminale

sudo rm - R / var/www/miojoomla/installation

Fatto ! :-)


Per chi volesse trasferire in locale una installazione già esistente sul server sarà necessario:
- trasferire la cartella del sito dal server remoto via ftp in una cartella utente locale
- spostare (come root) la cartella in /var/www/
- trasferire i permessi della cartella ad Apache
- scaricare il database del sito, ad es via phpmyadmin fornito dal server del sito con l'opzione esporta (semprechè non sia stato impostato già il back up automatico quotidiano via email)
- importare il database nel server mysql locale con phpmyadmin locale
- verificare l'avvenuta associazione loggandosi nel sito come amministratore

PS addendum del 13/07/2011

Gestione dei virtual host

E' una cosa abbastanza semplice e nota, ma un breve riassunto posizionato qui penso possa essere di utilità, specie per chi trasferisce più di un sito da remoto a locale.

Qui una valida guida

Passo primo: verifichiamo che apache2 sia in grado di vedere i virtual host.

sudo gedit /etc/apache2/apache2.conf

la linea finale

Include /etc/apache2/sites-enabled/

deve essere decommentata (cioè non deve iniziare con un #)
Se c'è, rimuoviamolo e salviamo.
In questo modo apache2 è in grado di leggere i puntatori dei files di configurazione presenti nella cartella /etc/apache2/sites-enabled/ che corrispondono ai virtual host che ci interessano.

Passo secondo: creiamo i files di configurazione dei virtual host

Assumiamo che:
- la cartella contenente il sito (o che vogliamo contenga il sito se dobbiamo ancora crearlo) sia nominata miosito1
- la cartella sia posizionata entro la cartella /var/www - NB solo root ed apache2 possono scrivere dentro questa cartella - è possibile spostare la cartella in questa posizione con un file manager con privilegi di root, dando ad esempio sudo nautilus
- il proprietario della cartella miosito1 sia apache2 ed abbia su questa ed il suo contenuto i permessi adeguati (755); lo si può verificare, ed eventualmente modificare, graficamente chiedendo le proprietà alla cartella con il sudo nautilus di prima, oppure nel caso in cui si voglia usare la console diamo:

sudo chown -R www-data:www-data /var/www/

Creiamo a questo punto il file di configurazione di miosito1

sudo gedit /etc/apache2/sites-avaiable/miosito1

ed inseriamo 

<VirtualHost miosito1>

ServerAdmin webmaster@localhost
ServerName miosito1
#We want to be able to access the web site using www.miosito1 or miosito1
ServerAlias www.miosito1
DocumentRoot /var/www/miosito1
Errorlog /var/log/apache2/error.log
#if using awstats
ScriptAlias /awstats/ /usr/lib/cgi-bin/
#we want specific log file for this server
CustomLog /var/log/apache2/other_vhost_access.log combined

</VirtualHost>

Verifichiamo che nella cartella /etc/apache2/sites-enabled sia presente il link simbolico al file miosito1 (che abbiamo creato nella cartella sites-avaiable); se non ci fosse, creiamolo.

Passo terzo: creiamo gli alias, in modo da far capire al sistema di cercare il sito nella macchina locale e non in rete

sudo gedit /etc/hosts

ed aggiungiamo

127.0.0.1 miosito1
127.0.0.1 www.miosito1

quindi salviamo. In realtà non servono entrambe le linee, ma se vogliamo che il server trovi comunque la nostra cartella lasciamocele tutte e due, che non si sa mai :-).

Passo quarto: abilitiamo il virtual host

sudo a2ensite miosito1

//////////////// Nel caso in cui avessimo bisogno di disabilitarlo
//////////////// sudo a2dissite miosito1

infine riavviamo apache2

sudo /etc/init.d/apache2 restart

Fatto. Carichiamo il sito, e l'eventuale database, andiamo nel browser e digitiamo

http://localhost/miosito1

ed il sito magicamente comparirà

mercoledì 6 ottobre 2010

L'Open Source ha già vinto...

... ma non lo sa ancora :-)

Clay Shirky: come il surplus cognitivo cambierà il mondo



Il quantitativo di ore/uomo disponibili alla creatività ed alla collaborazione qualitativa nei rapporti sociali in rete sta salendo a dismisura con grande rapidità.
Ne basta una minima parte dedicata al'Open Source, come già adesso sta accadendo, perchè per gli arcaici soloni del closed sia la fine del loro innaturale business.
Ma al posto di open source e closed source potete mettere i termini che volete, purchè rappresentino da una parte obiettivi ottenibili con la creatività e la collaborazione delle persone in rete e dall'altra parte conservazione di posizioni o raggiungimento di obiettivi che non prevedano condivisione.