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

sabato 20 ottobre 2018

Tutta colpa dell'Algoritmo

"Facebook cambia algoritmo", "Algoritmo impazzito", "Twitter sconfessa l'algoritmo": sono solo alcuni (estratti di) titoli di notizie recenti che hanno a che fare il mostro dei nostri tempi: l'algoritmo. Pochi giorni fa, ad un convegno in tema di privacy, una stimatissima professoressa di Diritto ha confessato che deve farsi aiutare dai tecnici a capire cosa vuol dire che "si è perso il controllo dell'algoritmo". Ne ha ben ragione: non ne ho idea neanch'io, di cosa vuol dire. Ma alla fine, cos'è 'sto algoritmo?
Dal Dizionario della lingua Italiana di De Mauro:
matematica: insieme di regole per la risoluzione di un calcolo numerico; gener., procedimento matematico
informatica: insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema
Le parole su cui bisogna soffermarsi sono: regole, procedimento, risoluzione. Lo scopo di un algoritmo è trovare la soluzione di un problema; è composto da un procedimento e delle regole. Tutto qui; ma per capire meglio, guardiamolo un algoritmo (ho scelto quello che era mitico all'università, il bubble sort, che è il più efficiente tra i procedimenti di ordinamento):



In pratica, presa una sequenza di elementi, si procede a scambiare ripetutamente quelli che non rispettano l'ordinamento, finché non si arriva alla sequenza ordinata. Facile no?
In realtà, quello che mi preme sottolineare è che un algoritmo non è altro che un procedimento logico per risolvere un problema. Niente di più. Un frutto dell'ingegno umano. Che poi deve diventare qualcosa di realmente utilizzabile, tipicamente un programma software: il che vuole dire che qualcuno, che non è quasi mai chi ha "inventato" l'algoritmo, lo traduce in un linguaggio di programmazione, diventando, appunto, il programma (o parte di esso). In realtà, vale anche il viceversa: ogni programma non è altro che l'implementazione di uno o più algoritmi, che magari esistono solo nella testa del programmatore.
Ovviamente niente vieta che un algoritmo possa essere sbagliato (cioè non risolve correttamente il problema), o che lo sia il corrispondente programma (cioè il software non fa quello che prevede l'algoritmo); ma se si effettuano i dovuti controlli, la questione è marginale.
Che c'azzecca tutto ciò con gli algoritmi che impazziscono? Niente, appunto. Un algoritmo (o il computer attraverso il programma) fa ciò che gli viene detto. Il risultato è sbagliato se l'algoritmo (o il corrispondente programma) è sbagliato. Punto. A parte questo, non esistono algoritmi buoni o cattivi: buono o cattivo è lo scopo, o il risultato, dell'algoritmo.

Fin qui la teoria; la pratica è un po' più complicata. Perché gli algoritmi che, secondo alcuni, impazziscono, sono enormemente più complessi dell'esempio che ho proposto; ed è piuttosto comune (mi rifiuto comunque di considerarlo normale) che i suoi errori siano evidenziati in situazioni estreme, tipicamente dati enormi o molto diversi da quelli attesi da chi ha sviluppato l'algoritmo.
Gli algoritmi sono diventati famosi, uscendo dalle buie stanze dei nerd, con l'informatizzazione di massa, e da quando hanno iniziato ad avere effetti sulla vita dell'uomo comune: oggi vanno per la maggiore quelli che, a seconda dello scopo (o meglio, della tipologia di scopo) prendono il nome di Big Data, Intelligenza Artificiale, Machine Learning, e compagnia bella. Tutta roba bellissima per chi la studia, un po' meno per chi la subisce. Intanto perché l'abuso di questi algoritmi ci limita la libertà di scelta (vedi i risultati dei motori di ricerca: quelli che dovrebbero essere i più pertinenti sono scelti in base a criteri che non possiamo controllare); e poi perché molte volte nemmeno è chiaro come e perché si usano queste tecniche avanzatissime.

Facciamo un altro esempio, e lo prendiamo dal mondo dello sport, in particolare dalla pallavolo (chi mi conosce non ne resterà stupito). Esiste da anni la "moviola" in campo, per diverse situazioni; per stabilire la palla dentro o fuori, esistono in realtà due tecniche, una "reale" (telecamere ad alta velocità e risoluzione poste in corrispondenza alle linee) ed una "virtuale" (ricostruzione tridimensionale della traiettoria del pallone, lo stesso metodo usato nel tennis, cosiddetto occhio di falco).

 

Nessun dubbio che l'algoritmo alla base di "occhio di falco" sia corretto; tuttavia, basandosi sulla ricostruzione della traiettoria nello spazio a partire dalle immagini riprese da apposite telecamere che coprono tutto il campo (una tecnica, chiamata motion tracking, usata da più di 20 anni nel cinema, per esempio così fu generato Gollum nella trilogia del Signore degli anelli), richiede un'attentissima calibrazione e posizionamento per garantire precisione. Ma se hai una tecnica più semplice, e che non ti lascia nessun tipo di dubbio, perché usare un artificio, per quanto bellissimo e precisissimo? Eppure la prima viene utilizzata nelle competizioni italiane, e la seconda in quelle internazionali, ormai da diversi anni!

In conclusione, fermo restando che non sono gli algoritmi ad impazzire (è sempre e solo l'intelligenza umana a venire meno), è la dipendenza da essi il vero male della nostra società iperconnessa. Dove non portino effettivo beneficio per la comunità, è nostro dovere difenderci rifiutandoli, invece di lamentarci o, peggio, adeguandoci passivamente.

N.B. Il post è nato da un'idea di qualche giorno fa, ma non è un caso che sia stato scritto il giorno della finale del campionato mondiale femminile di pallavolo... serviva anche a smaltire la delusione della sconfitta (che non ha avuto nulla a che fare con decisioni arbitrali).

sabato 5 maggio 2018

Ci aggiorniamo?

Qualche settimana fa, non ricordo qual era il motivo, mi sono sentito dire: "Io gli aggiornamenti (dello smartphone) non li faccio mai". Mi è caduta la mascella, anche perché la persona in questione gode della mia stima, per cui non mi aspettavo un'affermazione così assurda. Però poi, com'è mio solito, questo mi ha fatto riflettere alla ricerca delle possibili motivazioni di una tale posizione.

Per poterci capire, è necessaria un po' di nomenclatura, anche perché in questo caso si usano termini inglesi.
La parola italiana aggiornamento, riferita a programmi, app, firmware o sistemi operativi (quindi: qualsiasi tipo di software), viene usata in corrispondenza a due parole inglesi: update e upgrade. La differenza di significato tra le due parole, semplificando un po' tutta la questione, sta nel tipo di aggiornamento: update si riferisce alle minor release, upgrade alle major release. Release viene spesso tradotta con versione, ma l'accezione del termine inglese è migliore, nel senso che fa riferimento al processo di sviluppo del software che, ad un certo punto, permette il rilascio al pubblico (o ai clienti) di una versione, appunto, pronta per l'uso. Ciò che è diverso è il tipo di aggiornamento: con la minor release (spesso identificata numericamente dopo la major release) si fanno aggiustamenti di problemi o qualche piccola miglioria nell'usabilità; la major release comporta significative novità, spesso con l'aggiunta di nuove funzionalità o la revisione più o meno completa di quelle esistenti.
Per fare un esempio pratico: quando dopo il nome del software c'è una versione come 4.13, il 4 è la major release e il 13 la minor; un update porterà alla versione 4.14, un upgrade alla 5.0. Purtroppo non c'è uno standard ed ogni produttore di software utilizza il suo sistema di numerazione, spesso rispondente più a logiche commerciali che tecniche; ma in qualche maniera si ritorna sempre ai due concetti appena esposti.

Torniamo al tema principale, che è: ma gli aggiornamenti vanno fatti? A questa domanda posso rispondere solo in un modo:
SI!
ed il motivo è semplice: gli aggiornamenti risolvono problemi, più o meno gravi, magari invisibili ai più ma sfruttabili dai malintenzionati o che potrebbero causare perdite di dati. Infatti gli aggiornamenti dei software sono considerati uno dei capisaldi per la sicurezza informatica.
Tuttavia un po' di attenzioni da prestare ci sono.

Minor release
Sono i più frequenti; anche qui, non esistono standard, ognuno fa come gli pare, però possiamo dire che ce ne sono diversi all'anno. Contenendo risoluzioni di problemi, sono importantissimi; tuttavia, una buona norma che suggerisco è di aspettare qualche giorno da quando escono, perché purtroppo capita troppo spesso che siano essi stessi affetti da problemi, e l'attesa permette agli addetti ai lavori di accorgersene e di rimediare.
Normalmente questo tipo di aggiornamenti impiegano poco tempo ad applicarsi e magari nemmeno richiedono il riavvio, ma ci sono notevolissime eccezioni, per cui anche piccoli aggiornamenti richiedono tempi esagerati (chiedere a Microsoft...).

Major release
Contenendo grosse novità, sono aggiornamenti grandi e poco frequenti; diciamo una volta l'anno (o anche meno). Comportano tempi abbastanza lunghi, almeno rispetto alle minor release: per i sistemi operativi, anche una o due ore, quindi è bene pianificare bene quando farli per non bloccare attività. Ma il consiglio principale è di evitare la primissima versione (quella spesso identificata come X.0), e di aspettare direttamente almeno la seconda (X.1), perché anche se approfonditamente testate (cosa non più così vera, purtroppo), contengono sempre problemi di gioventù, che vengono appunto risolti rapidamente ed inclusi nelle prime minor release.
Comunque sia, gli upgrade non sono, in generale, obbligatori: anzi, spesso sono deleteri se introducono problemi di compatibilità o utilizzo eccessivo di risorse hardware, quindi consiglio di valutarli volta per volta. Occhio ai software commerciali: l'upgrade potrebbe non essere incluso nella licenza, o in caso di abbonamento, è necessario averlo attivo.

Backup
Paura da aggiornamento? No, non è giustificata, ma nemmeno così campata per aria; per cui avere un modo di poter tornare indietro, se qualcosa va storto, non è per niente sbagliato. Alcuni sistemi operativi (Windows) hanno meccanismi interni; per altri casi esistono meccanismi esterni; in altri casi ancora (smartphone), non ne conosco. In ogni caso, i tempi complessivi dell'operazione si allungano, ma ritengo sia un investimento conveniente. Non è possibile trattare il tema in questo stesso post, lo farò prossimamente.

Consigli finali

  1. Impostate la notifica automatica della disponibilità degli aggiornamenti, non l'installazione automatica: così potete pianificare quando farli, nel momento più comodo a voi.
  2. Sia che facciate o no i backup dei software prima degli aggiornamenti, abbiate sempre un'alternativa se qualcosa va storto, il che significa un altro computer o un altro smartphone per le attività urgenti.
  3. Non rimandate troppo per pigrizia, che poi il ritardo si paga...
  4. Non sapete che pesci prendere? Chiedete consiglio o aiuto a qualcuno che ne capisce!
E il backup dei dati? No, non c'entra niente. Quello va fatto sempre. Comunque. A prescindere.

giovedì 11 gennaio 2018

Batterie, processori, prestazioni e sospetti

Prima delle vacanze natalizie c'è stato lo "scandalo" Apple: gli aggiornamenti di iOS usciti in concomitanza dell'inizio delle vendite dei nuovi iPhone rallentavano le app per via della degradazione delle prestazioni delle batterie più vecchie di un anno. La spiegazione tecnica fornita, in realtà, sembrava avere senso, certo i tempi erano assolutamente sospetti, infatti alla fine si sono scusati, forse vittime oltre le loro effettive colpe. Comunque sia il tema dell'obsolescenza programmata non è una novità... diciamo che per certi versi è prassi comune.

Mi riferisco in particolare al malcostume dello sviluppo dei sistemi operativi e delle applicazioni: inserimento di funzionalità tendenti all'inutile, insieme ad un appesantimento generale delle risorse, supporto al vecchio hardware eliminato ad arte... conviene a tutti. E anche il sospetto che certe tecniche di programmazione moderne, insieme ai linguaggi di programmazione più recenti, vadano proprio nel senso di non-ottimizzazione per alzare i requisiti di prestazione dell'hardware. I primi programmatori, complici anche schede di memoria grosse come quadri e costose come un Picasso, centellinavano i bit... oggi si usano 64 bit (8 byte) anche per i valori booleani (cioè: vero e falso), perché le memorie costano poco ed i programmatori pure!

Ora (inizio del 2018) è il momento dei processori, con delle falle nella progettazione che potenzialmente (per fortuna al momento non si conoscono casi effettivi di sfruttamento) possono causare danni catastrofici. In pratica, ciò che per decenni abbiamo considerato come ipersicuro, e quindi posto privilegiato dove salvare le informazioni più sensibili, ora si è scoperto essere accessibile anche dai livelli di sicurezza più bassi... Per fare una similitudine, pensate ai caveau di una banca: porte spesse un metro, guardie armate, chiavi multiple, etc, e poi si scopre che c'è la porticina senza chiave da cui entra il personale delle pulizie. In ogni caso, poiché cambiare tutti i processori degli ultimi 10 anni non è possibile, si ricorre a soluzioni software, perfettamente funzionanti (si spera!) ma che causano degradazione delle prestazioni. Proprio come le batterie di Apple. E siccome a pensar male si fa peccato, ma spesso ci si indovina... non è che questa situazione (sicuramente involontaria, e per certi versi gestita correttamente) non venga sfruttata per introdurre un altro tassello nell'ottica obsolescenza programmata???

Ribadisco, non sto dicendo che il tutto è stato fatto ad arte: il dubbio che mi viene è che qualcuno sfrutti la situazione per indurre i consumatori (che non siamo solo noi, possono essere anche grandi multinazionali) ad acquisti altrimenti rimandabili. Personalmente ritengo che il calo di prestazione fin qui prospettato dai primi risultati dei test siano accettabili per la stragrande maggioranza dei casi; e dove non arrivasse la pazienza, dovrebbe sopperire il buon senso: meglio un po' di tempo in più per aprire la porta che trovarsi il caveau vuoto!

sabato 4 novembre 2017

Il voto digitale: si può fare!

Nelle settimane scorse ha fatto capolino in Italia un nuovo modo di raccogliere la volontà popolare (😂): in realtà in due modi molto diversi, nonostante li accomuni l'uso del digitale. Nella fattispecie, il Movimento 5 Stelle ha utilizzato quello che potremmo definire il voto online, cioè attraverso internet, e comodamente da casa; la regione Lombardia invece ha utilizzato quello che potremmo definire voto elettronico, sostituendo nei seggi le schede cartacee con un tablet ("voting machine", facilmente traducibile come apparecchio per il voto) che raccoglieva e registrava i voti. In entrambi i casi non sono mancate le polemiche sulle modalità e poi sui risultati (operativi) del voto, ma purtroppo in Italia non abbiamo la possibilità di avere un racconto veramente imparziale e veritiero di come sono andate le cose, per cui, non avendo avuto esperienza diretta in nessuno dei due casi, mi astengo da ogni commento; quello che però voglio sottolineare è che tutti i guai che sono apparsi sui giornali sono plausibili, cioè tecnicamente possibili. E partendo da questi, colgo l'occasione per fare le mie riflessioni sull'argomento, il quale inevitabilmente, ed auspicabilmente, diventerà un tema per il futuro del nostro paese (o forse, speriamo, già lo è).

La questione va affrontata sotto diversi aspetti.

Per primo affrontiamo quello della modalità del voto.
Rifacciamoci a quanto detto prima: si potrebbe votare da casa, quindi usando internet, o rimanere ancorati ai seggi, ancorché digitali. I vantaggi della prima modalità sono evidentemente la comodità per il cittadino (in particolare, non essere vincolati ad un luogo specifico, cioè la residenza anagrafica) e l'immediatezza dei risultati, d'altro canto i problemi di sicurezza (vedi sotto) sarebbero amplificati, in particolare per la verifica dell'identità. La seconda avrebbe enormi vantaggi in termini di sicurezza, evitando che vengano utilizzati dispositivi insicuri come sono i nostri computer e smartphone, a scapito della necessità di provvedere agli apparati e al personale necessario per ogni seggio.
Personalmente ritengo che l'opzione "online" sia assolutamente l'obiettivo a cui puntare, ma anche il seggio digitale sarebbe una prima rivoluzione comunque positiva.
Inoltre, c'è da considerare l'aspetto "operativo": cioè come il cittadino effettivamente esprime il voto, aspetto tutt'altro che secondario in un Paese dove le competenze digitali sono mediamente disastrose. Ma, contrariamente a quanto potrebbero aspettarsi i 2 o 3 assidui lettori, questo non lo considero un problema: infatti immagino un sistema di voto la cui "user experience" (espressione che è difficile rendere in italiano, ma che potrebbe suonare "come l'utente interagisce con il sistema") sia talmente semplice da non richiedere nessun tipo di preparazione, esattamente come avviene oggi con il voto cartaceo. Possibile ciò? Certo, basta che chi sviluppa il sistema di voto sia opportunamente indirizzato e controllato (e capace).

Il secondo aspetto è quello della sicurezza, vista anche la delicatezza del tema.
Partiamo da un presupposto: tutte le tecnologie necessarie a garantire un voto secondo i principi della nostra Costituzione, esistono già. Purtroppo non sono in grado di dire se possano portare ad un effettivo risparmio, poiché esse sono, in generale, molto costose, e non è secondario ricordare che sono in mano ad aziende per lo più straniere, quindi di fatto le spese andrebbero ad innalzare il PIL di qualcun altro. Comunque sia, ecco i rischi di irregolarità che io riesco a prevedere:

  • Impersonificazione fraudolenta
  • Voti multipli
  • Interferenze nella trasmissione dei dati (cioè: modifica del dato, o impedimento della trasmissione)
  • Registrazione non anonima
  • Modifica dei voti successiva alla registrazione
  • Elaborazione errata dei risultati

Certamente, di tutti in punti, il primo è il più delicato, ed il più difficile da impedire nella modalità "online"; e inevitabilmente, dovendo aumentare i livelli di sicurezza a livelli ultra-paranoici, entra in gioco la collaborazione attiva del cittadino, e quindi la sua consapevolezza dei rischi e delle modalità con cui deve proteggere la sua identità digitale. Quindi, se volete votare da casa o dallo smartphone, fatevene una ragione: serve imparare!

L'ultimo aspetto, che in realtà è il problema dei problemi, e riguarda gli ultimi tre punti della lista, è il controllo. Qualunque sia la modalità di voto scelta, fare un software che raccolga, registri ed elabori i voti in modo corretto, è certamente possibile. Ma come possiamo esserne sicuri? Qui la faccenda si complica: è necessario un organismo che verifichi il software, non solo nel momento dello sviluppo, quando il codice (sorgente) è umanamente comprensibile, ma anche e soprattutto nel momento in cui è in esecuzione, per evitare che qualcuno possa sostituire i file con altri modificati che nascondano funzionalità o comportamenti diversi da quelli voluti. Inoltre, è necessario controllare anche i tecnici che devono gestire il sistema informatico, per impedire che interferiscano, in virtù dei loro "poteri" su di esso, sulla regolarità delle operazioni (vedi sopra). Ma dove lo troviamo in Italia un organismo del genere che sia realmente indipendente? E se anche riuscissimo a trovarlo, sarebbe dotato dei poteri necessari in caso di problemi? Purtroppo temo che ad un certo punto saremo comunque costretti a fidarci di qualcuno, analogamente a come in realtà accade oggi con il voto tradizionale.

Infine, e per puro diletto, propongo un approccio architetturale per la base dati che ovviamente deve occuparsi di mantenere i dati. Personalmente, la dividerei in due parti. La prima dovrebbe esclusivamente raccogliere i voti, così come sono stati espressi, senza nessun tipo di elaborazione. Insieme ai programmi che la gestiscono, se ben progettata potrebbe di fatto mantenersi praticamente immutabile nel tempo, poiché basterebbe per ogni elezione inserire solo i dati delle liste, dei candidati, dei collegi, etc. La seconda parte, invece, sarebbe quella dedicata all'elaborazione dei risultati delle votazioni; data la fastidiosa tendenza dei nostri governanti di cambiare legge elettorale ad ogni starnuto, dovrebbe essere progettata per essere estremamente flessibile, o addirittura essere modificata ad ogni elezione, per rispettare le nuove regole. Questa seconda parte avrebbe il privilegio esclusivamente di lettura (non modifica) sulla prima base dati, magari solo per quelli della singola votazione. Ma non sono io ad occuparmi di questa questione, quindi...

Aggiornamento: a riprova della delicatezza della questione sicurezza dell'identità, in questo articolo (in inglese) viene raccontato ciò che sta succedendo in Estonia, e viene anche citato il fatto che l'identità elettronica viene utilizzata per il voto.

lunedì 12 giugno 2017

La giungla delle licenze d'uso

Eccola, l'ennesima rottura di scatole: ogni installazione di un programma che si rispetti ha una maledetta pagina in cui si chiede di leggere e accettare la licenza. Addirittura, ora che i software sono diffusi in praticamente qualsiasi dispositivo quotidiano (inclusi i frigoriferi, gli antifurto, le bambole, i televisori, le automobili...), l'accettazione della licenza è un passaggio d'obbligo prima di iniziare ad utilizzarli! E siccome abbiamo sempre fretta, nessuno legge cosa accetta (alzi la mano chi lo fa).

A questo punto i soliti 7/8 lettori si guarderanno scambiandosi sguardi di vergogna. Oppure alzeranno gli occhi al cielo... eccolo di nuovo a pontificare su cose che non ci interessano!

Ma se qualcuno, per puro caso, si chiedesse perché vale la pena di discutere di un argomento così noioso, ecco la risposta. Questa maledetta paginetta è importante per 2 buoni motivi:
  1. Dichiara le regole che devono essere rispettate per concedere il permesso di utilizzo.
  2. Ha valore legale.
Fermi tutti! Cosa vuol dire permesso di utilizzo? Forse non tutti sanno che i beni immateriali sono quasi sempre tutelati dal diritto d'autore, cioè che l'ingegno profuso dall'autore nel creare qualcosa di originale, benché immateriale, venga remunerato e protetto (principio, in realtà, ineccepibile). Ciò vale per la musica, il cinema, il teatro, i libri ed anche per il software.
Normalmente (ed erroneamente) si è propensi a dichiarare "caro" un disco contenente una delle suddette opere, quando il puro disco vuoto costa pochissimo (ed ecco automaticamente che ci si sente in qualche modo giustificati a copiare il contenuto del disco stesso). Non è questa la sede per discutere se il costo commerciale del disco sia sempre giustificato dalla qualità dell'opera (certamente non lo è sempre, ma nemmeno mai), comunque sia l'avvento di internet ha cambiato lo scenario: i supporti stanno scomparendo, e tutto ciò che precedentemente veniva veicolato sui supporti fisici arriva ora attraverso la rete, rendendo di fatto l'opera ancora più immateriale, e contemporaneamente mettendo allo scoperto il fatto che non si paga il supporto, ma il suo contenuto. Con un grossissimo "però": il pagamento non è l'acquisto di un bene (una copia fisica), ma appunto l'autorizzazione (o licenza) ad usufruire di quel contenuto. E come se non bastasse, questa autorizzazione non è concessa solo con il corrispettivo del pagamento, ma anche con una serie di limitazioni sull'usufrutto! Certamente avrete notato, nei dischi dei film,  l'immancabile avviso  per la visione puramente privata... quella, appunto, è un esempio di queste limitazioni.

Per i software, queste limitazioni assumono proporzioni impressionanti, e quel che è peggio, di tipi di licenze ne esistono un numero spropositato (quasi impossibile trovarne due uguali), per cui fare un riassunto è impossibile. Ma è importante sapere e capire quali sono i temi che vengono trattati all'interno (perché, è bene ricordarlo, se si violano si è passibili di denuncia):
  • Numero di installazioni o di utilizzatori (persone) autorizzato
  • Uso in ambito personale, educativo/scientifico o commerciale
  • Copia o meno del supporto o dei file
  • Riutilizzo all'interno di altri software
  • Accessibilità/disponibilità o meno del codice sorgente
  • Trasferibilità della licenza ad altri soggetti
  • Responsabilità derivante dall'utilizzo del software
In realtà, almeno sull'ultimo punto si trovano tutti d'accordo, e ciò che viene asserito, più o meno, suona come un: arrangiati! Cioè, qualsiasi conseguenza derivante dall'uso del software non può essere ascritta al creatore dello stesso.
Se poi qualcuno si affida al principio che tanto non controlla nessuno (a parte l'evidente immoralità dell'atteggiamento), sappia che non proprio sempre è così: nell'azienda dove lavoro è arrivato un avviso ingiuntivo per utilizzo non autorizzato di un certo software (ed abbiamo verificato che la cosa purtroppo era vera, anche se in realtà era avvenuta sul computer di un ospite; ora la cosa è in mano agli avvocati).

Nel mondo del software, però, è diffusissimo il costume (presente anche negli altri casi, ma in misura molto minore) della gratuità della licenza: esistono milioni di software utilizzabili gratuitamente, ma attenzione, non liberamente! Anch'essi hanno una licenza con le sue brave limitazioni (che per la maggior parte degli utilizzatori finali, sono per fortuna accettabilissime). Altro aspetto, che contrariamente a quanto viene fatto credere non è completamente coincidente con il precedente, è la diffusione del codice sergente di un software (da cui il nome inglese open source): questa disponibilità infatti permette a chiunque (purché con le competenze necessarie) di analizzare il software in questione, e quindi controllarne la qualità (ne esistono di ottimi e di pessimi, come d'altra parte succede anche per quelli con codice chiuso).
Di tipi di licenze per software in qualche modo "liberi" ne esistono un gran numero, anche se quelle diffuse sono abbastanza poche, ognuna però con le sue peculiarità; non è questa la sede per approfondire (per iniziare, segnalo questa pagina su Wikipedia).

C'è un ultimo aspetto da sottolineare, e che probabilmente non è chiaro a tutti: che il principio della licenza si applica anche ai libri elettronici (ebook), che ormai diffusissimi, tanto che ormai ogni libro esce sempre sia in forma sia cartacea che elettronica (al più, viene proposto solo in elettronico). Questo comporta che non possiamo più prestare il libro, come si faceva una volta (pratica lodevolissima, soprattutto se prende la forma istituzionalizzata chiamata biblioteca); addirittura, mi sembra di aver capito che in certi casi non è nemmeno possibile spostarlo di dispositivo (cioè dal tablet all'ebook reader, per esempio). A mio avviso, questa rappresenta una stortura di un sistema che invece ha il suo perché.

Quindi, a meno che non si tratti di una licenza già conosciuta, è bene dare almeno una veloce occhiata, giusto per sapere cosa si può e soprattutto cosa non si può fare (e capire, perché no, anche che tipo è il creatore o il distributore di quell'opera...).