Ciao Claudio, fantastico caso limite! Di seguito provo a fornirti qualche ulteriore spunto per la tua riflessione. On Sun, 16 Dec 2018 at 21:47, Claudio Agosti <claudio.agosti@logioshermes.org> wrote:
Io lavoro in un progetto che vuole analizzare i dati di facebook; facebook ostacola attiviamente la sua analisi* Io mi sveglio alla mattina, vado a vedere i grafici, e se un parser dei miei è rotto, devo aggiornarlo. e questo task diventa la priorità su qualunque altra cosa. Non mi trovo in una posizione agevole.
In questa situazione, pubblicare le logiche che usi, è un modo per rendere il lavoro di facebook più semplice. I poteri in gioco non sono per nulla comparabili. Fb ha dei team dedicati all'antiscraping; [...] Ma al momento non siamo in questa condizione, e con che coraggio, quel componente, lo tengo free software (tutto il resto rimane free sw, ma su quel componente, ho dubbi).
Non conosco il codice in questione ma suppongo (per comodità di ragionamento) che i parser/scraper di cui stiamo parlando siano isolati ciascuno in una singola classe/comando e che tutti implementino la medesima interfaccia/cli. Il framework che li esegue può naturalmente essere software libero, ma si pone effettivamente un problema nel momento in cui condividere un tuo strumento di studio facilita inevitabilmente il lavoro di chi ti vuole tenere nell'ignoranza. La tua priorità è imparare, studiare la scatola nera che è Facebook. Una soluzione consiste nel pubblicare il codice del framework senza il componente mancante, e pubblicare il codice del componente mancante solo dopo che Facebook riesce a romperlo, magari con un'analisi delle contromisure che hanno preso. In questo modo puoi provare a costruire, pian piano, una comunità di persone che siano capaci di scrivere questi scaper e che ti aiutino su questo lavoro. Non so cosa ne direbbe Stallman, ma in realtà non è che mi interessi molto. Il tuo software segreto sarebbe, a tutti gli effetti, software libero (SACRILEGIO ! ! ! :-D). Pensaci: se il parser/scraper lo esegui solo tu, non lo distribuisci. Dunque se pure fosse licenziato sotto una licenza GPL o anche AGPL, non staresti violando la licenza. Inoltre, se il software l'hai scritto tu, non sei vincolato da una licenza. La tua scelta di distribuire il tuo software sotto una licenza libera DEVE restare una scelta libera (fintanto che non riusciamo a vietare il software proprietario su tutto il pianeta). E non perde nulla del proprio valore se lo rilasci quando ormai è inutile dal punto di vista di Facebook (e degli altri). L'idea che il software libero DEBBA essere utile a qualcuno è una aberrazione. Il software libero PUÒ essere utile, ma si chiama "software libero", non "software utile". E' caratterizzato dal diritto di studiare, modificare e distribuire, non da quello di usare per un qualsiasi scopo. Per collaborare con progetti simili che volessero utilizzare i tuoi script, potresti concedergli una licenza gratuita non trasferibile, chiarendo lo scopo di tale licenza: fargli causa se il tuo codice finisce nelle mani di Facebook (ma in questo caso ti conviene mettere il software stesso in vendita con una licenza proprietaria ad un prezzo esorbitante, in modo da poter richiedere danni patrimoniali molto consistenti in caso di violazione). D'altro canto, se gli utenti eseguono questi scaper nei propri browser per tuo conto, puoi tranquillamente pubblicarli come software libero: per Facebook deoffuscarli/decompilarli è probabilmente già ora questione di minuti.
La soluzione dovrebbe essere una community solida, la quantità di creatività che potremmo metterci supererebbe quella della compagnia che investe.
Infatti questa è la soluzione definitiva. Insegnare a programmare a tutti gli esseri umani, in modo che ciascuno possa scrivere/modificare il proprio software. Tuttavia credo che per quando avremo raggiunto questo obbiettivo, Facebook sarà già un breve paragrafo sui libri di storia. A presto! Giacomo