dubbio filosofico (ma pratico) Analisi di piattaforme: segretezza o free software?
Vagamente inspirato dall'email di Giacomo Tesio, che diceva "*L'etica hacker che il software libero esprime si fonda sul valore della Curiosità, da cui derivano strumentalmente gli altri valori: Libertà, Condivisione, Onestà Intellettuale etc... sono funzionali a massimizzare la conoscenza tecnologica disponibile, verificandone la correttezza sperimentalmente, applicandola attraverso la creazione del software.*", Voglio portvi un quesito non teorico che devo affrontare in questi giorni... Scenario: https://twitter.com/WolfieChristl/status/1071473931784212480 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; La soluzione dovrebbe essere una community solida, la quantità di creatività che potremmo metterci supererebbe quella della compagnia che investe. 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). Come si fa? ciao, Claudio * Il tweet riporta di una una tecnica che hanno messo in atto 1 anno fa, ora ne hanno affiancate altre più subdole. -- Claudio Agosti, https://facebook.tracking.exposed, @_vecna PGP keybase.io/vecna - Research Associate - DATACTIVE University of Amsterdam https://data-activism.net
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
On 16/12/2018 21:46, Claudio Agosti wrote:
Vagamente inspirato dall'email di Giacomo Tesio, che diceva "/L'etica hacker che il software libero esprime si fonda sul valore della Curiosità, da cui derivano strumentalmente gli altri valori: Libertà, Condivisione, Onestà Intellettuale etc... sono funzionali a massimizzare la conoscenza tecnologica disponibile, verificandone la correttezza sperimentalmente, applicandola attraverso la creazione del software./", Voglio portvi un quesito non teorico che devo affrontare in questi giorni...
Scenario: https://twitter.com/WolfieChristl/status/1071473931784212480
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. Ti capisco, facco lo stesso per un progetto che riguarda gli articoli di giornale. <https://gitlab.com/mmzz/hactar>
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;
In pratica svilupperesti i regression tests per il team di antiscraping di FB. :-) Se il tuo modulo è efficace, loro cambiano la struttura della pagina finché non si rompe di nuovo. E la cosa può essere automatizzata.
La soluzione dovrebbe essere una community solida, la quantità di creatività che potremmo metterci supererebbe quella della compagnia che investe.
La gara sarebbe comunque impari. Già mi immagino batterie di AI a escogitare pagine sempre più bizantine...
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).
Per il fatto che è free software la licenza ti obbliga a dare il sorgente al committente (che però può farne quello che vuole) ma non ti obbliga a distribuirlo a terzi. Il componente può essere free ma è necessario pubblicarlo universalmente. Tu lo sviluppi e lo mantieni, ma d'accordo con il committente non pubblichi il codice, o pubblichi quello vecchio di una release. Puoi comunque costruire una community trusted nella quale limitare la distribuzione dell'ultima versione del modulo. Se fosse indispensabile farlo girare fuori dalla community trusted puoi pensare ad un dual licensing, usando una licenza proprietaria per lo stesso codice e mantenere un controllo sulla sua diffusione e uso. Quello che non sempre è chiaro è che modello di licenza, modello di sviluppo, di distribuzione e di pricing sono ortogonali. Sono ammesse tutte le combinazioni o quasi. Puoi benissimo sviluppare free software in modalità "cattedrale" (con buona pace di Eric Raymond), per denaro e senza distribuirlo a terzi... Ciao, Alberto
Come si fa? ciao, Claudio
* Il tweet riporta di una una tecnica che hanno messo in atto 1 anno fa, ora ne hanno affiancate altre più subdole.
-- Claudio Agosti, https://facebook.tracking.exposed, @_vecna PGP keybase.io/vecna <http://keybase.io/vecna> - Research Associate - DATACTIVE University of Amsterdam https://data-activism.net
_______________________________________________ nexa mailing list nexa@server-nexa.polito.it https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa
On Mon, 17 Dec 2018 at 10:19, Alberto Cammozzo <ac+nexa@zeromx.net> wrote:
Puoi benissimo sviluppare free software in modalità "cattedrale" (con buona pace di Eric Raymond), per denaro e senza distribuirlo a terzi...
Vedo che qui gli eretici abbondano! Grazie a Dio, come dice Vasco "non ci sono più fiammiferi"! :-D Giacomo
In data lunedì 17 dicembre 2018 10:19:22 CET, Alberto Cammozzo ha scritto:
La soluzione dovrebbe essere una community solida, la quantità di creatività che potremmo metterci supererebbe quella della compagnia che investe.
La gara sarebbe comunque impari. Già mi immagino batterie di AI a escogitare pagine sempre più bizantine... domanda da non tecnico. se una pagina è più "bizantina", non è anche meno fruibile? (più pensante, più lenta da caricare, con più errori, ecc.). m.c.
On Mon, 17 Dec 2018 at 10:37, Marco Ciurcina <ciurcina@studiolegale.it> wrote:
se una pagina è più "bizantina", non è anche meno fruibile? (più pensante, più lenta da caricare, con più errori, ecc.).
Tendenzialmente sì. Tuttavia, considera che WebAssembly è progettato per ridurre i tempi di rendering e diverse tecnologie (HTTP/2 e HTTP/3) stanno cercando di ridurre i tempi di latenza. Incidentalmente queste tecnologie arrivano sui browser molto prima di essere adottati dai server. Perché? Perché chi dispone di server che le supportano e ne trae un vantaggio competitivo... controlla i browser più diffusi. Sempre per sottolineare la "straordinaria importanza riconosciuta alla libertà dell'utente!" (che non ha idea dei giochi commerciali e politici per cui viene usato) Giacomo
On Mon, Dec 17, 2018 at 10:19:22AM +0100, Alberto Cammozzo wrote:
Quello che non sempre è chiaro è che modello di licenza, modello di sviluppo, di distribuzione e di pricing sono ortogonali. Sono ammesse tutte le combinazioni o quasi. Puoi benissimo sviluppare free software in modalità "cattedrale" (con buona pace di Eric Raymond), per denaro e senza distribuirlo a terzi...
Yep, esattamente. In ambito accademico, che la maggior parte delle tesi di Raymond fossero baggianate è assodato da molti anni, a partire dal "A second look at The Cathedral and the Bazaar" del 1999. Non esiste un modello di sviluppo software "open source", l'ortogonalità di cui parla Alberto è ultra dimostrata, etc. Purtroppo questo non impedisce ai più di continuare a prendere il libercolo di Raymond come oro colato, 20 anni dopo :-( -- Stefano Zacchiroli . zack@upsilon.cc . upsilon.cc/zack . . o . . . o . o Computer Science Professor . CTO Software Heritage . . . . . o . . . o o Former Debian Project Leader & OSI Board Director . . . o o o . . . o . « the first rule of tautology club is the first rule of tautology club »
On 17/12/2018 10:37, Stefano Zacchiroli wrote:
On Mon, Dec 17, 2018 at 10:19:22AM +0100, Alberto Cammozzo wrote:
Quello che non sempre è chiaro è che modello di licenza, modello di sviluppo, di distribuzione e di pricing sono ortogonali. Sono ammesse tutte le combinazioni o quasi. Puoi benissimo sviluppare free software in modalità "cattedrale" (con buona pace di Eric Raymond), per denaro e senza distribuirlo a terzi... Yep, esattamente.
In ambito accademico, che la maggior parte delle tesi di Raymond fossero baggianate è assodato da molti anni, a partire dal "A second look at The Cathedral and the Bazaar" del 1999. Non esiste un modello di sviluppo software "open source", l'ortogonalità di cui parla Alberto è ultra dimostrata, etc. Purtroppo questo non impedisce ai più di continuare a prendere il libercolo di Raymond come oro colato, 20 anni dopo :-(
Infatti! Nonstante evidenze di lunga data ben precedenti al boom F/OSS post dot-com (GNU, Linux, Mozilla, ...). Ad esempio il programma TeX di Don Knuth ha una licenza stile BSD dal 1978 (GNU è del 1983) ed è quanto di più cattedalico esista. Viene sviluppato praticamente da lui solo, qualsiasi prodotto derivato non può avere il nome "TeX", e tanto per chiarire il modello di sviluppo, il version number converge asintoticamente a Pigreco. La "community" si occupa di trovare i bug, ma dopo la morte di Knuth il version number sarà congelato a Pigreco e "ogni bug sarà una feature". Chi trova un bug viene ricompensato in base all'età del bug, inizialmente con assegni in dollari, ora in depositi presso la "Bank of San Seriffe", e dato l'enorme prestigio di Knuth è uno dei pochi casi in cui il valore del supporto è superiore al valore monetario. Quanto a Raymond, questa vignetta è a mio avviso emblematica: <https://geekz.co.uk/lovesraymond/archive/show-them-the-code> ciao, A
participants (5)
-
Alberto Cammozzo -
Claudio Agosti -
Giacomo Tesio -
Marco Ciurcina -
Stefano Zacchiroli