Ogni qual volta un nota azienda sforna un prodotto che fa della non-libertà il suo cavallo di battaglia e una valanga di persone accorre ad acquistare e ad osannare il sommo leader, mi chiedo che fine faranno le libertà digitali. Non voglio parlare del prodotto in se; non l’ho usato e non voglio scadere nel solito post criticone e di parte. Voglio affrontare un problema più vasto.
Per prima cosa dobbiamo dare a Cesare quel che è di Cesare. Che tali prodotti siano affascinanti e funzionanti è senza ombra di dubbio soprattutto se paragonati a quel trattore a pedali che è Windows. Oltretutto basta cercare fra i temi più scaricati in Gnome-Look per rendersi conto a quale sistema si ispirano i temi nelle prime posizioni. Anche le ultime scelte di sviluppo e restyling grafico di Ubuntu proposte dal “vendicatore solitario” Mark Shuttleworth puntano sempre più vistosamente in quella direzione.
C’è quindi un forte desiderio di imitazione, desiderio che a volte mi fa pensare se non sia che molte persone usino GNU/Linux solamente perché non possono permettersi gli attrezzi ultra-costosi della mela.
In questo spazio dove trovano spazio le libertà digitali? Perché ci deve essere qualcuno al di sopra degli utenti che deve decidere che cosa posso o non posso fare con un oggetto che ho comprato? Ci vengono a dire che lo fanno per questioni di sicurezza. Una giustificazione terribilmente insensata: sarebbe come un frigorifero che si rifiutasse di tenere al fresco alimenti poco salutari o come vietare la vendita di fertilizzanti per evitare che qualche malintenzionato li usi per fabbricare degli esplosivi. Tale “censura” inoltre viene applicata in triplice via: tramite incomprensibili limitazioni hardware (vedi la mancanza di una porta USB nell’ultima tavolozza), tramite SDK inutilmente mutilate e, dulcis in fundo, tramite dissennate e severe censure nello store.
La prima è piuttosto evidente. Conosciamo tutti le carenze che vengono riscontrate ad ogni rilascio di qualche attrezzo del genere. Carenza sempre sminuite dal “non c’è… tanto non la uso”. Frase pronunciata in continuazione prima di rimangiarsi tutto quando nella versione successiva tale funzione viene magicamente integrata. A quel punto serve, è utile e bella.
La seconda invece è molto subdola e costringe gli sviluppatori a fare i salti mortali per simulare una funzione che, per qualche strano motivo, è vietata dalle SDK. Tanto per dirne una: il tethering esplicitamente vietato del primo telefono “melenso” (non so se sia ancora così).
La terza invece è del tutto aberrante. Il solo pensiero che sia un gruppo di persone non meglio identificato a decidere quale software è possibile installare e quale no è qualcosa che non concepisco. Prendiamo ad esempio il caso dell’applicazione podcaster, piccola applicazione per gestire i podcast, di cui è stata vietata la vendita perché iTunes svolge le medesime funzioni. Oltre il madornale conflitto di interessi appare chiaro che è una palese violazione di una libertà digitale. Perché non posso usare quel programma se a me iTunes fa schifo? Non si sa. Vuolsi così colà dove si puote / ciò che si vuole, e più non dimandare. Punto.
Censure tanto abominevoli quanto le risposte estremamente demagogiche del tipo:
Siamo stati sommersi dalle lamentele soprattutto di clienti donne che trovavano il contenuto di molte applicazioni degradante e discutibile, ma anche di genitori preoccupati di quello che potevano vedere i loro figli.
Apple tiene in piena considerazione gli sviluppatori, ma prima di loro vengono le famiglie e i bambini.
Come se non fossero sufficienti i meccanismi di parental control (e senza contare che se ad un bambino in età prepuberale regali un telefono da 500€ meriti la galera).
Per capire meglio l’infondatezza di alcune motivazioni tenete presente che anche i repository delle più famose distribuzioni GNU/Linux compiono severissime selezioni prima di inserire un software all’interno del proprio sistema di distribuzione. Chiunque abbia mai provato ad inserire una propria applicazione all’interno dei repo ufficiali di Debian sa quanta severità e quanta inutile burocrazia bisogna seguire. Ma tutto questo iter è necessario per garantire la presenza di software affidabili: non viene in alcun modo impedito l’accesso di un programma per ragioni “etiche” o per motivazioni concorrenziali.
Mi chiedo quindi come sia possibile non rendersi conto che il prezzo da pagare va ben oltre il già caro prezzo da pagare al negoziante di fiducia? Il potere più forte che abbiamo non è il voto: è il boicottaggio ed io, nel mio piccolo, lo faccio a 360 gradi.
Quando ho deciso di passare a GNU/Linux l’ho fatto anche per questo. Per riacquistare la mia libertà, per liberarmi di DRM e altre volgarità digitali, abbracciare l’idea che l’uomo debba lavorare per l’uomo e, soprattutto, per non dare più un centesimo ad aziende che, giustamente, curano solamente i loro interessi. Perché è ovvio che delle aziende del genere non fanno dei prodotti per “il bene dell’umanità”.
A questo punto torniamo alla domanda principale: che fine fanno le libertà digitali? Secondo me vivono e continueranno a vivere finché ci sarà qualcuno a crederci. Vivranno finché ci saranno persone che non si arrenderanno a quella che sembra “l’evidenza dei fatti”. Nonostante il circo dei media si occupi sempre del nuovo giocattolo luminescente di turno.
“Fa più rumore un albero che cade che una foresta che cresce” diceva qualcuno. Io, nel mio piccolo, penso proprio di far parte della foresta.

Avendo per le mani due piccole idee e dedicandomi a programmarle sono 6 giorni che ho poco tempo per scrivere articoli di un certo spessore tecnico. Nonostante ciò posso ancora deliziarvi con inutili baggianate della serie “posso benissimo vivere anche senza”. Tuttavia questo offre la casa e questo vi tenete. 
In e C/C++ si ha la convenzione di suddividere il codice all’interno di due file: i file .h per le dichiarazioni e .cpp o .c. Le motivazioni di questa scelta, in realtà, vanno oltre il semplice vezzo stilistico. Tale suddivisione permette infatti una profonda modularità del software e una rudimentale forma di information-hiding. I vari moduli (cpp) quando richiamano un altro modulo (tramite include) vengono a conoscenza solamente delle dichiarazioni delle funzioni e mai della loro implementazione. Implementazione che, inoltre, non gli servirebbe a nulla.
Stavo attrezzando un piccolo progettino scemo sulle OpenGL (più didattico che altro) e così ho pensato di condividere quelle regole non scritte che servono ad organizzare e gestire un progetto software. Sono piccole “tips”, struttura delle cartelle e file che non devono mai mancare. Presenterò anche altri strumenti, come ho fatto per Python, ma questa volta saranno strumenti “generici”, ovvero utilizzabili con qualunque linguaggio.

Abbiamo visto come si può disegnare qualsivoglia figura inserendo i vari vertici della figura manualmente. Abbiamo visto anche che prima di inserire un vertice dobbiamo prepararlo impostando, ad esempio, il colore, il vettore normale (vedremo a cosa serve quando parleremo della luce), le texture e via dicendo. Questo può sembrarvi estremamente macchinoso… e lo è: dobbiamo usare circa 3-4 istruzioni per inserire ogni vertice! Un metodo decisamente inadatto per inserire oggetti formati da centinaia di vertici!
Passato il week-end posso rimettermi al lavoro per scrivere l’ultima parte del primo capitolo del nostro corso introduttivo alle OpenGL. Nel frattempo però voglio suggerirvi un libro interessante e conciso per capire le meccaniche alla base di ogni sistema grafico tridimensionale.

Recent Comments