Social Network aperto e distribuito

Hubzilla Social NetworkI social network tradizionali come Facebook, Linkedin, Twitter, ecc. hanno successo perché sono gratuiti, comodi, relativamente semplici da usare. Il principale lato negativo, secondo me, è che sono chiusi e privati.

Per accedervi devi disporre di un account con username e password, devi accettare le condizioni d'uso dettate dalla proprietà del social network e quindi cedere sovranità al padrone del social network che quasi sempre inserisce nelle condizioni d'uso la facoltà di cancellare i tuoi post nel caso non rispettino le sue linee guida. E' normale, fa parte del gioco, e non c'è nulla di male in tutto questo. Tuttavia, quando il social network raggiunge una dimensione pubblica, la facoltà di cancellare post e account degli utenti andrebbe regolata per legge e dovrebbe essere un giudice a decidere.

Un altro elemento negativo dei social network tradizionali, secondo me, è che una persona può avere diversi account su più social network e se a te interessa seguire quella persona per interagire con lei, sei costretto ad iscriverti o a farti tanti account quanti sono i social network ai quali quella persona è iscritta.

Qui intendo andare oltre e proporre Internet come social network universale, aperto, sicuro e distribuito, senza togliere nulla ai social network tradizionali. I vantaggi sarebbero molti: un account unico, il controllo dei propri dati, la libertà di espressione senza il timore di violare le linee guida dettate dal padrone del social network e vedersi chiuso il proprio account, il mantenimento della propria sovranità digitale.

Lo svantaggio principale, poiché viviamo sotto il dominio della Proprietà Privata, è quello che occorre essere disposti a pagare un prezzo in denaro per pagarsi lo spazio su un server dove memorizzare i propri dati e il proprio account.

Mi chiedo cosa occorre per fare di Internet il Social Network universale, aperto e distribuito.

Una parziale risposta può venire dai social network distribuiti. Una guida comparativa è presente su Wikipedia all'indirizzo Comparison of software and protocols for distributed social networking

Ho voluto provare Hubzilla, una piattaforma software libera, opensource, sotto licenza MIT e che implementa un social network distribuito.

Programmare in C++

Copertina libro programmare C++La programmazione dei computer è un esercizio dove si lavora sia di testa che di mani nell'impegnativo esercizio manuale di muovere le dita su di una tastiera e su di un mouse. E' un esercizio molto impegnativo perché basta una piccola distrazione nel movimento delle mani per sbagliare tasto e mandare in tilt l'algoritmo. La testa serve nell'esercizio di pensare quale algoritmo usare per risolvere o automatizzare un calcalo. Le mani invece sono lo strumento mobile che vanno a toccare e a premere i tasti della tastiera. Lo sforzo delle mani comunque non è eccessivo e si sopporta bene.

Tuttavia, per i programmatori dermatologicamente più sensibili e sviluppati, può essere piacevole la senzazione tattile dei polpastrelli che toccano i tasti della tastiera. In alcuni casi, per i programmatori musicalmente più raffinati e con le tastiere più sviluppate, è possibile abbinare un feedback sonoro alla pressione del tasto. In questo modo il suono proveniente dal click della tastiera entra nel cervello dello sviluppatore programmatore tramite il timpano e va a sovrapporsi allo sforzo mentale nel lavorare l'algoritmo idoneo al suo sviluppo.

Il C++ è un linguaggio di programmazione per sviluppatori orientato agli oggetti che deriva dal C, un linguaggio di programmazione procedurale. I due suffissi ++ che seguono la lettera C traggono origine da un costrutto sintattico tipico del C pensato per condensare la sintassi al prezzo di una maggiore confusione mentale che nasce quando i due suffissi seguono la variabile o la precedono (prefissi).

Se io il libro in foto lo avessi intitolato "Programmare in ++C", dove suppongo che al posto di "in" ci sia un "=" non sarebbe stata la stessa cosa per il verbo "Programmare" che possiamo benissimo sostituire con "sviluppare". Nel primo caso: "Programmare = C++"  il verbo Programmare rimane a zero, mentre C va ad 1, per cui Programmare è diverso da C. Nel secondo caso: "Programmare = ++C"  il verbo "Programmare" va ad 1 come C, quindi C è uguale a Programmare. Da qui capisci la confusione mentale che generano i prefissi e i suffissi in C++ che non sono mai uguali a C. 

In questi giochi mentali consiste lo sviluppo dello sviluppatore.