cultura hacker 1
This commit is contained in:
parent
1de1c54355
commit
1cefdb0471
43 changed files with 4993 additions and 652 deletions
|
@ -30,6 +30,9 @@
|
||||||
</section><section class="main-content"><article class="listpage"><header><h1>Posts for year 2019</h1>
|
</section><section class="main-content"><article class="listpage"><header><h1>Posts for year 2019</h1>
|
||||||
</header><ul class="postlist">
|
</header><ul class="postlist">
|
||||||
<li>
|
<li>
|
||||||
|
<time class="listdate" datetime="2019-05-18T00:00:00Z" title="2019-05-18 00:00">2019-05-18 00:00</time><a href="../blog/2019/05/18/cultura-hacker/" class="listtitle">Breve storia della cultura hacker</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
<time class="listdate" datetime="2019-03-06T00:00:00Z" title="2019-03-06 00:00">2019-03-06 00:00</time><a href="../blog/2019/03/06/Dconf-2019/" class="listtitle">Dconf 2019</a>
|
<time class="listdate" datetime="2019-03-06T00:00:00Z" title="2019-03-06 00:00">2019-03-06 00:00</time><a href="../blog/2019/03/06/Dconf-2019/" class="listtitle">Dconf 2019</a>
|
||||||
</li>
|
</li>
|
||||||
</ul></article><footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
</ul></article><footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
</header><ul class="postlist">
|
</header><ul class="postlist">
|
||||||
<li>
|
<li>
|
||||||
<a href="2019/">2019</a>
|
<a href="2019/">2019</a>
|
||||||
(1)
|
(2)
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="2018/">2018</a>
|
<a href="2018/">2018</a>
|
||||||
|
|
|
@ -29,10 +29,11 @@
|
||||||
<a class="btn" href="wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
<a class="btn" href="wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
</section><section class="main-content"><article class="listpage"><header><h1>Archive</h1>
|
</section><section class="main-content"><article class="listpage"><header><h1>Archive</h1>
|
||||||
</header><ul class="postlist">
|
</header><ul class="postlist">
|
||||||
<li style="list-style-type:none">2019 (1):
|
<li style="list-style-type:none">2019 (2):
|
||||||
</li>
|
</li>
|
||||||
<hr>
|
<hr>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li style="list-style-type:disc"><p>18 May 2019 » <a href="blog/2019/05/18/cultura-hacker/">Breve storia della cultura hacker</a></p></li>
|
||||||
<li style="list-style-type:disc"><p>06 March 2019 » <a href="blog/2019/03/06/Dconf-2019/">Dconf 2019</a></p></li>
|
<li style="list-style-type:disc"><p>06 March 2019 » <a href="blog/2019/03/06/Dconf-2019/">Dconf 2019</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<li style="list-style-type:none">2018 (3):
|
<li style="list-style-type:none">2018 (3):
|
||||||
|
|
File diff suppressed because one or more lines are too long
213
output/blog/2018/07/27/r/italyinformatica/index.html
Normal file
213
output/blog/2018/07/27/r/italyinformatica/index.html
Normal file
|
@ -0,0 +1,213 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>Un articolo per r/italyinformatica | Caught in the Net</title>
|
||||||
|
<link rel="stylesheet" href="../../../../../../assets/blog/fonts/opensans.css">
|
||||||
|
<link href="../../../../../../assets/blog/css/normalize.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../../../../../../assets/blog/css/cayman.css" rel="stylesheet" type="text/css">
|
||||||
|
<meta name="theme-color" content="#5670d4">
|
||||||
|
<meta name="generator" content="Nikola (getnikola.com)">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="../../../../../../rss.xml">
|
||||||
|
<link rel="canonical" href="francescomecca.eu/blog/2018/07/27/r/italyinformatica/">
|
||||||
|
<meta name="author" content="Francesco Mecca">
|
||||||
|
<link rel="prev" href="../../../../3/27/addio-reddit/" title="Addio Reddit" type="text/html">
|
||||||
|
<link rel="next" href="../../../../10/2/talk-coventry/" title="eLearning in the age of Social Networks, the EduHack Platform" type="text/html">
|
||||||
|
<meta property="og:site_name" content="Caught in the Net">
|
||||||
|
<meta property="og:title" content="Un articolo per r/italyinformatica">
|
||||||
|
<meta property="og:url" content="francescomecca.eu/blog/2018/07/27/r/italyinformatica/">
|
||||||
|
<meta property="og:description" content="Questo articolo è stato originalmente scritto per il blog di r/italyinformatica.
|
||||||
|
Negli ultimi anni abbiamo assistito all'ascesa di un gran numero di linguaggi di programmazione, in particolare Go (200">
|
||||||
|
<meta property="og:type" content="article">
|
||||||
|
<meta property="article:published_time" content="2018-07-27T00:00:00Z">
|
||||||
|
<meta property="article:tag" content="dlang">
|
||||||
|
<meta property="article:tag" content="programming">
|
||||||
|
<meta property="article:tag" content="reddit">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<section class="page-header"><h1 class="project-name">
|
||||||
|
Caught in the Net
|
||||||
|
</h1>
|
||||||
|
<h2 class="project-tagline">La rete ti cattura ma libera il pensiero</h2>
|
||||||
|
<a class="btn" href="../../../../../../">Home</a>
|
||||||
|
<a class="btn" href="../../../../../../pages/about/">About me</a>
|
||||||
|
<a class="btn" href="../../../../../../pages/contattami/">Contact me</a>
|
||||||
|
<a class="btn" href="../../../../../../archiveall.html">Archive</a>
|
||||||
|
<a class="btn" href="../../../../../../rss.xml">RSS</a>
|
||||||
|
<a class="btn" href="http://francescomecca.eu/git/pesceWanda">Personal Git</a>
|
||||||
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
|
<a class="btn" href="../../../../../../wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
|
</section><section class="main-content"><div class="post">
|
||||||
|
|
||||||
|
<header><h1 class="post-title">
|
||||||
|
|
||||||
|
<h1 class="p-name post-title" itemprop="headline name">Un articolo per r/italyinformatica</h1>
|
||||||
|
|
||||||
|
</h1>
|
||||||
|
</header><p class="dateline post-date">27 July 2018</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="e-content entry-content" itemprop="articleBody text">
|
||||||
|
<div>
|
||||||
|
<p>Questo articolo è stato originalmente scritto per il <a href="https://tldr.italyinformatica.org">blog</a> di <a href="https://reddit.com/r/italyinformatica">r/italyinformatica</a>.</p>
|
||||||
|
<p>Negli ultimi anni abbiamo assistito all'ascesa di un gran numero di linguaggi di programmazione, in particolare <a href="https://golang.rg">Go</a> (2009), <a href="https://www.rust-lang.org/en-US/">Rust</a> (2010), <a href="https://kotlinlang.org/">Kotlin</a> (2011), <a href="https://elixir-lang.org/">Elixir</a> (2011), <a href="https://crystal-lang.org/">Crystal</a> (2014), <a href="https://www.ponylang.or">Pony</a> (2014).</p>
|
||||||
|
<p>Questa esplosione di nuovi linguaggi è dovuta, fra le molte motivazioni, alla necessità di adottare paradigmi di programmazione non immediatamente recenti come cittadini di primo tipo.</p>
|
||||||
|
<p>Rispetto ai più maturi C, C++ o Java, Python o Ruby questi linguaggi offrono "out of the box" supporto per:</p>
|
||||||
|
<ul>
|
||||||
|
<li>una visione moderna delle concorrenze (le goroutines di Go o il modello ad attori di Pony ed Elixir)</li>
|
||||||
|
<li>Memory safeness, in particolare:<ul>
|
||||||
|
<li>assenza di NULL (Pony, Rust, Kotlin)</li>
|
||||||
|
<li>gestione automatica della memoria, il cosiddetto <a href="https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)%20(o%20%5BReference%20Counting%5D(https://en.wikipedia.org/wiki/Reference_counting)%20per%20Rust">Garbage Collector</a>
|
||||||
|
</li>
|
||||||
|
<li>assenza di puntatori</li>
|
||||||
|
<li>assenza di deadlocks</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>Supporto ad HTTP nella standard library</li>
|
||||||
|
<li>Management delle dipendenze (ad eccezione di Kotlin)</li>
|
||||||
|
<li>Namespaces</li>
|
||||||
|
</ul>
|
||||||
|
<p>Chiaramente nessuno di questi linguaggi è oggettivamente superiore agli altri, sono tutti <a href="https://en.wikipedia.org/wiki/Turing_completeness">turing completi</a> e la scelta del programmatore ricade su motivazioni del tutto personali (stile, programmazione ad oggetti, familiarità con altri linguaggi).</p>
|
||||||
|
<h3>Un pò di contesto</h3>
|
||||||
|
<p>Ho scritto la mie prime due righe di codice nel 2013 per il corso di Computer Science del Politecnico di Torino.</p>
|
||||||
|
<p>Per mia fortuna, al Politecnico le cose si muovono ancora lentamente e ci hanno fatto usare C per tutta la durata della triennale. Si è aggiunto un corso di principi della programmazione ad oggetti al terzo anno, in Java.</p>
|
||||||
|
<p>Personalmente ho imparato durante l'estate di quel primo anno le basi di C++ e Python poco dopo.</p>
|
||||||
|
<p>Sono stati con i miei primi <a href="https://github.com/framecca">progetti</a> che ho capito che non si può avere un buon linguaggio senza un buon tooling ed una community vivace e soprattutto tanta, tanta documentazione. Per questo, per molto tempo C è stata la mia prima scelta, dato che il mio target è sempre Linux.</p>
|
||||||
|
<h3>Gli obbiettivi prima del linguaggio</h3>
|
||||||
|
<p>Questo post vuole essere una raccolta più o meno organizzata delle motivazioni per cui mi sono dovuto muovere oltre la frontiera di C nel mio ultimo progetto, ovvero un backend per la raccolta e presentazione di pubblicazione di ricerca e materiale didattico per più di 80 centri di ricerca.</p>
|
||||||
|
<p>Per il Centro <a href="http://nexa.polito.it/">Nexa</a> del Politecnico di Torino mi sono ritrovato per la prima volta responsabile del codice che dovevo scrivere e dell'uso che se ne sarebbe fatto.</p>
|
||||||
|
<p>Ho dovuto tenere in considerazione, oltre chiaramente alla funzionalità della piattaforma, in ordine di priorità:</p>
|
||||||
|
<ol>
|
||||||
|
<li>Sicurezza</li>
|
||||||
|
<li>Performance e scalabilità</li>
|
||||||
|
<li>Separazione dal frontend</li>
|
||||||
|
<li>Facilità di deploy in un server che non controllo</li>
|
||||||
|
</ol>
|
||||||
|
<p>Fortunatamente non mi è stata imposta nessuna limitazione sulla scelta del linguaggio, altrimenti Python sarebbe stato la scelta più adeguata se avessi dovuto tener conto anche di altri programmatori.</p>
|
||||||
|
<h3>Benvenuto D</h3>
|
||||||
|
<p>La mia scelta è caduta su <a href="https://dlang.org">D</a>.</p>
|
||||||
|
<p>Voglio provare ad affrontare ad uno ad uno i motivi di questa scelta magari inusuale.</p>
|
||||||
|
<h5>Sicurezza</h5>
|
||||||
|
<p>Nessuno vuole davvero vantarsi di usare un backend scritto in C/C++. Il <a href="https://en.wikipedia.org/wiki/Buffer_overflow">buffer overflow</a> può essere considerato il bug più comune e ci sono <a href="https://techaeris.com/2017/09/27/buzz-fuzzing-find-uncommon-vulnerability/">situazioni</a> in cui non appaiono affatto in maniera ovvia.</p>
|
||||||
|
<p>Inoltre per un applicativo distribuito il Garbage Collector è la scelta più performante, <a href="https://www.usenix.org/node/189882">specialmente se coordinato fra le varie istanze</a>.</p>
|
||||||
|
<p>D offre questo di design, e benchè il suo GC sia frutto di numerose <a href="https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Andrei-Alexandrescu">discussioni</a>, offre in maniera del tutto innovativa, robustezza e <a href="http://www.walterbright.com/gonewild.pdf">sicurezza</a>.</p>
|
||||||
|
<p>In particolare, D presenta:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Array che sono slices (o ranges) ma non puntatori (e neanche oggetti)</li>
|
||||||
|
<li>Bound checking durante la fase di compilazione.</li>
|
||||||
|
<li>Inizializzazione automatica delle variabili.</li>
|
||||||
|
<li>Safe Casting (chiaramente come eredità di C++).</li>
|
||||||
|
<li>Restricted pointers: si può passare una funzione per referenza dichiarandola <code>ref</code>, ma solo quando passata come parametro o di ritorno. Inoltre non c'è nessuna pointer arithmetic.</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization">RAII</a>, ovvero l'acquisizione delle risorse equivale alla loro assegnazione e Scopes: le variabili hanno una lifetime limitata allo scope di dichiarazione. Nessun dangling pointer come in C.</li>
|
||||||
|
<li>Strutture immutabili: come nelle specifiche di molti linguaggi funzionali, si può dichiarare una variabile come <code>immutable</code> e quindi può essere facilmente condivisa fra threads.</li>
|
||||||
|
<li>@safe, @trusted: le specifiche del linguaggio permettono di annotare delle funzioni come sicure o affidabili affinchè il compilatore controlli che non gestiscano puntatori (ad esempio interfacciandosi con C) ed utilizzino il subset "sicuro" del linguaggio (maggiori dettagli in seguito).</li>
|
||||||
|
<li>funzioni pure: le funzioni inoltre possono essere dichiarate pure, prive di effetti collaterali e sempre <a href="https://en.wikipedia.org/wiki/Reentrancy_(computing)">rientranti</a>. Questo permette di evitare <a href="https://en.wikipedia.org/wiki/Deadlock">deadlocks</a> e un controllo totale sul risultato delle funzioni.</li>
|
||||||
|
</ul>
|
||||||
|
<h5>Performance</h5>
|
||||||
|
<p>Ci sono moltissime soluzioni per scrivere un applicativo che si interfaccia con il web, ma hanno tutte la loro origine nel famoso <a href="http://www.kegel.com/c10k.html">C10K problem</a>.</p>
|
||||||
|
<p>Nel mio caso ho deciso di utilizzare un approccio <a href="https://stackoverflow.com/questions/10960998/how-different-async-programming-is-from-threads">asincrono</a> con coroutines (anche detti <a href="https://en.wikipedia.org/wiki/Green_threads">threads leggeri</a>).</p>
|
||||||
|
<p>Benchè D abbia <a href="https://dlang.org/library/core/thread/fiber.html">supporto nativo</a> alle coroutines, ho deciso di appoggiarmi al framework più comune per web dev in D: <a href="vibed.org">vibe.d</a>.</p>
|
||||||
|
<p>Ogni volta che Vibe accetta una richiesta dall'esterno ed esegue una funzione bloccante (che interrompe l'esecuzione del programma fino al ritorno della funzione), questa viene messa in una pool di azioni da eseguire e Vibe controlla periodicamente che almeno una di queste sia pronta a ritornare un risultato e continuare con l'esecuzione di questa.</p>
|
||||||
|
<p>Inoltre, benchè questo meccanismo funzioni interamente su un solo thread, è elementare coordinare una <a href="https://en.wikipedia.org/wiki/Thread_pool">thread pool</a> che distribuisa il carico fra i vari core che eseguono migliaia di threads leggeri concorrentemente.</p>
|
||||||
|
<h5>Contratti e Tests</h5>
|
||||||
|
<p>Non amo scrivere commenti sui programmi. Penso sia assolutamente necessario commentare il codice di librerie ma al di fuori di queste il codice (buon codice) dovrebbe essere autoesplicativo.</p>
|
||||||
|
<p>Inoltre, nelle mie recenti esperienze, il comportamento del programma era chiaro a partire dai tests.</p>
|
||||||
|
<p>In D questo concetto viene portato agli estremi applicando il <a href="https://en.wikipedia.org/wiki/Design_by_contract">"Design by Contract programming</a>.</p>
|
||||||
|
<p>Un contratto è la divisione di una funzione in:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Precondizione, ovvero le condizioni che devono essersi verificate prima della chiamata della funzione;</li>
|
||||||
|
<li>Postcondizione, ovvero le condizioni che devono essere rispettate all'uscita della funzione (solitamente applicate al risultato);</li>
|
||||||
|
<li>Invarianti, ovvero le specifiche di una struttura dati che devono rimanere verificate in ogni funzione;</li>
|
||||||
|
<li>Corpo della funzione</li>
|
||||||
|
</ul>
|
||||||
|
<p>Un esempio:</p>
|
||||||
|
<pre class="code literal-block"><span></span>struct Clock {
|
||||||
|
|
||||||
|
short time;
|
||||||
|
|
||||||
|
invariant {
|
||||||
|
|
||||||
|
assert (time > 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
short addReturnTime(Clock c, short n)
|
||||||
|
|
||||||
|
in {
|
||||||
|
n > 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
|
||||||
|
return c->time + t;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
out (result){
|
||||||
|
|
||||||
|
result > c->time;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
unittest {
|
||||||
|
|
||||||
|
auto clock = Clock(60);
|
||||||
|
|
||||||
|
assert (addReturnTime(clock, 10) == 70);
|
||||||
|
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Come si nota dall'esempio il supporto ai tests è built-in nel linguaggio e distanti solo una flag in fase di compilazione.</p>
|
||||||
|
<h5>Un approccio moderno alle concorrenze</h5>
|
||||||
|
<p>Il modello primitivo delle concorrenze in Posix è discutibilmente datato e prono ad errori per il programmatore.</p>
|
||||||
|
<p>D di default evita la condivisione di dati fra Threads.
|
||||||
|
Fra le varie motivazioni c'è il fatto che questo rifletta più realisticamente l'hardware, ma sicuramente l'obbiettivo finale è la riduzione di bug.</p>
|
||||||
|
<p>Non voglio dilungarmi nei dettagli di ogni singolo approccio, ma per completezza D offre out of the box i seguenti modelli:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Message passing e <a href="http://dist-prog-book.com/chapter/3/message-passing.html">attori</a>, ovvero tutti i dati che vogliono essere condivisi fra thread sono incapsulati in <a href="https://en.wikipedia.org/wiki/Remote_procedure_call">RPC</a>;</li>
|
||||||
|
<li>Green threads, come nel mio caso;</li>
|
||||||
|
<li>Multi processing, ovvero <code>man 3 fork</code>
|
||||||
|
</li>
|
||||||
|
<li>TaskPools, ovvero future e promises di Python e Javascript;</li>
|
||||||
|
<li><a href="http://moss.csc.ncsu.edu/~mueller/cluster/ps3/SDK3.0/docs/accessibility/sdkpt/cbet_1simdvector.html">SIMD vectorization</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>Andrei Alexandrescu, uno dei due creatori del linguaggio, dedica un intero capitolo alle concorrenze che potete leggere liberamente <a href="http://www.informit.com/articles/article.aspx?p=1609144">qui</a>.</p>
|
||||||
|
<h5>Assenza di dogmatismi</h5>
|
||||||
|
<p>Non potrei mai pensare di scrivere un linguaggio di programmazione senza mettere al secondo posto la semplicità.</p>
|
||||||
|
<p>Ma chiaramente ancora prima di discutere di semplicità la dobbiamo definire.</p>
|
||||||
|
<p>Go e Python sono due linguaggi semplici. Lo sono per la ridotta sintassi (Go in particolare) e perchè attraverso il loro dogmatismo costringono il programmatore ad adottare dei paradigmi di programmazione scelti dai designer di quel linguaggio. E` il motivo per cui in python non abbiamo delle vere lambda e per cui Go non ha le eccezioni.</p>
|
||||||
|
<p>In D il programmatore ha libertà piena di scelta. Oltre ad un paradigma di programmazione si può ridefinire la sintassi e evitare il Garbage Collector. Si può in ultimo disattivare tutte le feature del linguaggio che sono @safe e adottare uno stile molto più vicino al C/C++, con tanto di inline asm.</p>
|
||||||
|
<h3>Dove iniziare</h3>
|
||||||
|
<p>Non posso non concludere un post propagandistico senza indirizzare i più interessati alle prime risorse per imparare D.</p>
|
||||||
|
<p>Personalmente consiglio il <a href="http://www.informit.com/store/d-programming-language-9780321635365?w_ptgrevartcl=Concurrency+in+the+D+Programming+Language_1609144">libro</a> di Andrei che offre in particolare moltissimi dettagli sulle motivazioni del design di D. Non ho ancora letto un libro che affrontasse così chiaramente il design di linguaggi di programmazione e i vari compromessi fra performance, semplicità e complessità del compilatore.</p>
|
||||||
|
<p>Inoltre il sito della community offre due intro per chi proviene da <a href="https://dlang.org/ctod.html">C</a> e <a href="https://dlang.org/cpptod.html">C++</a>, oltre al classi <a href="https://tour.dlang.org/">tour</a>.</p>
|
||||||
|
<p>Inoltre la libreria standard, <a href="https://github.com/dlang/phobos">Phobos</a>, è talmente chiara che solitamente mi trovo a mio agio a consultare direttamente il codice piuttosto che la documentazione online.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<aside class="postpromonav"><nav><h4>Categories</h4>
|
||||||
|
|
||||||
|
<ul itemprop="keywords" class="tags">
|
||||||
|
<li><a class="tag p-category" href="../../../../../../categories/dlang/" rel="tag">dlang</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../../categories/programming/" rel="tag">programming</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../../categories/reddit/" rel="tag">reddit</a></li>
|
||||||
|
</ul></nav></aside><p class="sourceline"><a href="index.md" class="sourcelink">Source</a></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
||||||
|
<span class="site-footer-credits"><a href="https://getnikola.com">Nikola</a>, <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a>.</span>
|
||||||
|
</footer></section>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
192
output/blog/2018/07/27/r/italyinformatica/index.md
Normal file
192
output/blog/2018/07/27/r/italyinformatica/index.md
Normal file
|
@ -0,0 +1,192 @@
|
||||||
|
<!--
|
||||||
|
.. title: Un articolo per r/italyinformatica
|
||||||
|
.. slug: r/italyinformatica
|
||||||
|
.. date: 2018-07-27
|
||||||
|
.. tags: programming,dlang,reddit
|
||||||
|
.. category: PesceWanda
|
||||||
|
.. link:
|
||||||
|
.. description:
|
||||||
|
.. type: text
|
||||||
|
-->
|
||||||
|
|
||||||
|
Questo articolo è stato originalmente scritto per il [blog](https://tldr.italyinformatica.org) di [r/italyinformatica](https://reddit.com/r/italyinformatica).
|
||||||
|
|
||||||
|
Negli ultimi anni abbiamo assistito all'ascesa di un gran numero di linguaggi di programmazione, in particolare [Go](https://golang.rg) (2009), [Rust](https://www.rust-lang.org/en-US/) (2010), [Kotlin](https://kotlinlang.org/) (2011), [Elixir](https://elixir-lang.org/) (2011), [Crystal](https://crystal-lang.org/) (2014), [Pony](https://www.ponylang.or) (2014).
|
||||||
|
|
||||||
|
Questa esplosione di nuovi linguaggi è dovuta, fra le molte motivazioni, alla necessità di adottare paradigmi di programmazione non immediatamente recenti come cittadini di primo tipo.
|
||||||
|
|
||||||
|
Rispetto ai più maturi C, C++ o Java, Python o Ruby questi linguaggi offrono "out of the box" supporto per:
|
||||||
|
|
||||||
|
- una visione moderna delle concorrenze (le goroutines di Go o il modello ad attori di Pony ed Elixir)
|
||||||
|
- Memory safeness, in particolare:
|
||||||
|
- assenza di NULL (Pony, Rust, Kotlin)
|
||||||
|
- gestione automatica della memoria, il cosiddetto [Garbage Collector](https://en.wikipedia.org/wiki/Garbage_collection_(computer_science) (o [Reference Counting](https://en.wikipedia.org/wiki/Reference_counting) per Rust)
|
||||||
|
- assenza di puntatori
|
||||||
|
- assenza di deadlocks
|
||||||
|
- Supporto ad HTTP nella standard library
|
||||||
|
- Management delle dipendenze (ad eccezione di Kotlin)
|
||||||
|
- Namespaces
|
||||||
|
|
||||||
|
Chiaramente nessuno di questi linguaggi è oggettivamente superiore agli altri, sono tutti [turing completi](https://en.wikipedia.org/wiki/Turing_completeness) e la scelta del programmatore ricade su motivazioni del tutto personali (stile, programmazione ad oggetti, familiarità con altri linguaggi).
|
||||||
|
|
||||||
|
## Un pò di contesto
|
||||||
|
|
||||||
|
Ho scritto la mie prime due righe di codice nel 2013 per il corso di Computer Science del Politecnico di Torino.
|
||||||
|
|
||||||
|
Per mia fortuna, al Politecnico le cose si muovono ancora lentamente e ci hanno fatto usare C per tutta la durata della triennale. Si è aggiunto un corso di principi della programmazione ad oggetti al terzo anno, in Java.
|
||||||
|
|
||||||
|
Personalmente ho imparato durante l'estate di quel primo anno le basi di C++ e Python poco dopo.
|
||||||
|
|
||||||
|
Sono stati con i miei primi [progetti](https://github.com/framecca) che ho capito che non si può avere un buon linguaggio senza un buon tooling ed una community vivace e soprattutto tanta, tanta documentazione. Per questo, per molto tempo C è stata la mia prima scelta, dato che il mio target è sempre Linux.
|
||||||
|
|
||||||
|
## Gli obbiettivi prima del linguaggio
|
||||||
|
|
||||||
|
Questo post vuole essere una raccolta più o meno organizzata delle motivazioni per cui mi sono dovuto muovere oltre la frontiera di C nel mio ultimo progetto, ovvero un backend per la raccolta e presentazione di pubblicazione di ricerca e materiale didattico per più di 80 centri di ricerca.
|
||||||
|
|
||||||
|
Per il Centro [Nexa](http://nexa.polito.it/) del Politecnico di Torino mi sono ritrovato per la prima volta responsabile del codice che dovevo scrivere e dell'uso che se ne sarebbe fatto.
|
||||||
|
|
||||||
|
Ho dovuto tenere in considerazione, oltre chiaramente alla funzionalità della piattaforma, in ordine di priorità:
|
||||||
|
|
||||||
|
1. Sicurezza
|
||||||
|
2. Performance e scalabilità
|
||||||
|
3. Separazione dal frontend
|
||||||
|
4. Facilità di deploy in un server che non controllo
|
||||||
|
|
||||||
|
Fortunatamente non mi è stata imposta nessuna limitazione sulla scelta del linguaggio, altrimenti Python sarebbe stato la scelta più adeguata se avessi dovuto tener conto anche di altri programmatori.
|
||||||
|
|
||||||
|
## Benvenuto D
|
||||||
|
|
||||||
|
La mia scelta è caduta su [D](https://dlang.org).
|
||||||
|
|
||||||
|
Voglio provare ad affrontare ad uno ad uno i motivi di questa scelta magari inusuale.
|
||||||
|
|
||||||
|
#### Sicurezza
|
||||||
|
|
||||||
|
Nessuno vuole davvero vantarsi di usare un backend scritto in C/C++. Il [buffer overflow](https://en.wikipedia.org/wiki/Buffer_overflow) può essere considerato il bug più comune e ci sono [situazioni](https://techaeris.com/2017/09/27/buzz-fuzzing-find-uncommon-vulnerability/) in cui non appaiono affatto in maniera ovvia.
|
||||||
|
|
||||||
|
Inoltre per un applicativo distribuito il Garbage Collector è la scelta più performante, [specialmente se coordinato fra le varie istanze](https://www.usenix.org/node/189882).
|
||||||
|
|
||||||
|
D offre questo di design, e benchè il suo GC sia frutto di numerose [discussioni](https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Andrei-Alexandrescu), offre in maniera del tutto innovativa, robustezza e [sicurezza](http://www.walterbright.com/gonewild.pdf).
|
||||||
|
|
||||||
|
In particolare, D presenta:
|
||||||
|
|
||||||
|
- Array che sono slices (o ranges) ma non puntatori (e neanche oggetti)
|
||||||
|
- Bound checking durante la fase di compilazione.
|
||||||
|
- Inizializzazione automatica delle variabili.
|
||||||
|
- Safe Casting (chiaramente come eredità di C++).
|
||||||
|
- Restricted pointers: si può passare una funzione per referenza dichiarandola `ref`, ma solo quando passata come parametro o di ritorno. Inoltre non c'è nessuna pointer arithmetic.
|
||||||
|
- [RAII](https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization), ovvero l'acquisizione delle risorse equivale alla loro assegnazione e Scopes: le variabili hanno una lifetime limitata allo scope di dichiarazione. Nessun dangling pointer come in C.
|
||||||
|
- Strutture immutabili: come nelle specifiche di molti linguaggi funzionali, si può dichiarare una variabile come `immutable` e quindi può essere facilmente condivisa fra threads.
|
||||||
|
- @safe, @trusted: le specifiche del linguaggio permettono di annotare delle funzioni come sicure o affidabili affinchè il compilatore controlli che non gestiscano puntatori (ad esempio interfacciandosi con C) ed utilizzino il subset "sicuro" del linguaggio (maggiori dettagli in seguito).
|
||||||
|
- funzioni pure: le funzioni inoltre possono essere dichiarate pure, prive di effetti collaterali e sempre [rientranti](https://en.wikipedia.org/wiki/Reentrancy_(computing)). Questo permette di evitare [deadlocks](https://en.wikipedia.org/wiki/Deadlock) e un controllo totale sul risultato delle funzioni.
|
||||||
|
|
||||||
|
#### Performance
|
||||||
|
|
||||||
|
Ci sono moltissime soluzioni per scrivere un applicativo che si interfaccia con il web, ma hanno tutte la loro origine nel famoso [C10K problem](http://www.kegel.com/c10k.html).
|
||||||
|
|
||||||
|
Nel mio caso ho deciso di utilizzare un approccio [asincrono](https://stackoverflow.com/questions/10960998/how-different-async-programming-is-from-threads) con coroutines (anche detti [threads leggeri](https://en.wikipedia.org/wiki/Green_threads)).
|
||||||
|
|
||||||
|
Benchè D abbia [supporto nativo](https://dlang.org/library/core/thread/fiber.html) alle coroutines, ho deciso di appoggiarmi al framework più comune per web dev in D: [vibe.d](vibed.org).
|
||||||
|
|
||||||
|
Ogni volta che Vibe accetta una richiesta dall'esterno ed esegue una funzione bloccante (che interrompe l'esecuzione del programma fino al ritorno della funzione), questa viene messa in una pool di azioni da eseguire e Vibe controlla periodicamente che almeno una di queste sia pronta a ritornare un risultato e continuare con l'esecuzione di questa.
|
||||||
|
|
||||||
|
Inoltre, benchè questo meccanismo funzioni interamente su un solo thread, è elementare coordinare una [thread pool](https://en.wikipedia.org/wiki/Thread_pool) che distribuisa il carico fra i vari core che eseguono migliaia di threads leggeri concorrentemente.
|
||||||
|
|
||||||
|
#### Contratti e Tests
|
||||||
|
|
||||||
|
Non amo scrivere commenti sui programmi. Penso sia assolutamente necessario commentare il codice di librerie ma al di fuori di queste il codice (buon codice) dovrebbe essere autoesplicativo.
|
||||||
|
|
||||||
|
Inoltre, nelle mie recenti esperienze, il comportamento del programma era chiaro a partire dai tests.
|
||||||
|
|
||||||
|
In D questo concetto viene portato agli estremi applicando il ["Design by Contract programming](https://en.wikipedia.org/wiki/Design_by_contract).
|
||||||
|
|
||||||
|
Un contratto è la divisione di una funzione in:
|
||||||
|
|
||||||
|
- Precondizione, ovvero le condizioni che devono essersi verificate prima della chiamata della funzione;
|
||||||
|
- Postcondizione, ovvero le condizioni che devono essere rispettate all'uscita della funzione (solitamente applicate al risultato);
|
||||||
|
- Invarianti, ovvero le specifiche di una struttura dati che devono rimanere verificate in ogni funzione;
|
||||||
|
- Corpo della funzione
|
||||||
|
|
||||||
|
Un esempio:
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
struct Clock {
|
||||||
|
|
||||||
|
short time;
|
||||||
|
|
||||||
|
invariant {
|
||||||
|
|
||||||
|
assert (time > 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
short addReturnTime(Clock c, short n)
|
||||||
|
|
||||||
|
in {
|
||||||
|
n > 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
|
||||||
|
return c->time + t;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
out (result){
|
||||||
|
|
||||||
|
result > c->time;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
unittest {
|
||||||
|
|
||||||
|
auto clock = Clock(60);
|
||||||
|
|
||||||
|
assert (addReturnTime(clock, 10) == 70);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Come si nota dall'esempio il supporto ai tests è built-in nel linguaggio e distanti solo una flag in fase di compilazione.
|
||||||
|
|
||||||
|
#### Un approccio moderno alle concorrenze
|
||||||
|
|
||||||
|
Il modello primitivo delle concorrenze in Posix è discutibilmente datato e prono ad errori per il programmatore.
|
||||||
|
|
||||||
|
D di default evita la condivisione di dati fra Threads.
|
||||||
|
Fra le varie motivazioni c'è il fatto che questo rifletta più realisticamente l'hardware, ma sicuramente l'obbiettivo finale è la riduzione di bug.
|
||||||
|
|
||||||
|
Non voglio dilungarmi nei dettagli di ogni singolo approccio, ma per completezza D offre out of the box i seguenti modelli:
|
||||||
|
|
||||||
|
- Message passing e [attori](http://dist-prog-book.com/chapter/3/message-passing.html), ovvero tutti i dati che vogliono essere condivisi fra thread sono incapsulati in [RPC](https://en.wikipedia.org/wiki/Remote_procedure_call);
|
||||||
|
- Green threads, come nel mio caso;
|
||||||
|
- Multi processing, ovvero ` man 3 fork `
|
||||||
|
- TaskPools, ovvero future e promises di Python e Javascript;
|
||||||
|
- [SIMD vectorization](http://moss.csc.ncsu.edu/~mueller/cluster/ps3/SDK3.0/docs/accessibility/sdkpt/cbet_1simdvector.html)
|
||||||
|
|
||||||
|
Andrei Alexandrescu, uno dei due creatori del linguaggio, dedica un intero capitolo alle concorrenze che potete leggere liberamente [qui](http://www.informit.com/articles/article.aspx?p=1609144).
|
||||||
|
|
||||||
|
#### Assenza di dogmatismi
|
||||||
|
|
||||||
|
Non potrei mai pensare di scrivere un linguaggio di programmazione senza mettere al secondo posto la semplicità.
|
||||||
|
|
||||||
|
Ma chiaramente ancora prima di discutere di semplicità la dobbiamo definire.
|
||||||
|
|
||||||
|
Go e Python sono due linguaggi semplici. Lo sono per la ridotta sintassi (Go in particolare) e perchè attraverso il loro dogmatismo costringono il programmatore ad adottare dei paradigmi di programmazione scelti dai designer di quel linguaggio. E\` il motivo per cui in python non abbiamo delle vere lambda e per cui Go non ha le eccezioni.
|
||||||
|
|
||||||
|
In D il programmatore ha libertà piena di scelta. Oltre ad un paradigma di programmazione si può ridefinire la sintassi e evitare il Garbage Collector. Si può in ultimo disattivare tutte le feature del linguaggio che sono @safe e adottare uno stile molto più vicino al C/C++, con tanto di inline asm.
|
||||||
|
|
||||||
|
## Dove iniziare
|
||||||
|
|
||||||
|
Non posso non concludere un post propagandistico senza indirizzare i più interessati alle prime risorse per imparare D.
|
||||||
|
|
||||||
|
Personalmente consiglio il [libro](http://www.informit.com/store/d-programming-language-9780321635365?w_ptgrevartcl=Concurrency+in+the+D+Programming+Language_1609144) di Andrei che offre in particolare moltissimi dettagli sulle motivazioni del design di D. Non ho ancora letto un libro che affrontasse così chiaramente il design di linguaggi di programmazione e i vari compromessi fra performance, semplicità e complessità del compilatore.
|
||||||
|
|
||||||
|
Inoltre il sito della community offre due intro per chi proviene da [C](https://dlang.org/ctod.html) e [C++](https://dlang.org/cpptod.html), oltre al classi [tour](https://tour.dlang.org/).
|
||||||
|
|
||||||
|
Inoltre la libreria standard, [Phobos](https://github.com/dlang/phobos), è talmente chiara che solitamente mi trovo a mio agio a consultare direttamente il codice piuttosto che la documentazione online.
|
363
output/blog/2018/10/2/talk-coventry/index.html
Normal file
363
output/blog/2018/10/2/talk-coventry/index.html
Normal file
|
@ -0,0 +1,363 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>eLearning in the age of Social Networks, the EduHack Platform | Caught in the Net</title>
|
||||||
|
<link rel="stylesheet" href="../../../../../assets/blog/fonts/opensans.css">
|
||||||
|
<link href="../../../../../assets/blog/css/normalize.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../../../../../assets/blog/css/cayman.css" rel="stylesheet" type="text/css">
|
||||||
|
<meta name="theme-color" content="#5670d4">
|
||||||
|
<meta name="generator" content="Nikola (getnikola.com)">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="../../../../../rss.xml">
|
||||||
|
<link rel="canonical" href="francescomecca.eu/blog/2018/10/2/talk-coventry/">
|
||||||
|
<meta name="author" content="Francesco Mecca">
|
||||||
|
<link rel="prev" href="../../../07/27/r/italyinformatica/" title="Un articolo per r/italyinformatica" type="text/html">
|
||||||
|
<link rel="next" href="../../../15/11/programming-session/" title="Experiment part 1" type="text/html">
|
||||||
|
<meta property="og:site_name" content="Caught in the Net">
|
||||||
|
<meta property="og:title" content="eLearning in the age of Social Networks, the EduHack Platform">
|
||||||
|
<meta property="og:url" content="francescomecca.eu/blog/2018/10/2/talk-coventry/">
|
||||||
|
<meta property="og:description" content="This is the revised transcript of my talk at the OWLTEH Conference 2018 at the Coventry University.
|
||||||
|
|
||||||
|
In the beginning there was the LMS
|
||||||
|
Learning Management Systems appeared on the market around the be">
|
||||||
|
<meta property="og:type" content="article">
|
||||||
|
<meta property="article:published_time" content="2018-10-26T00:00:00Z">
|
||||||
|
<meta property="article:tag" content="education">
|
||||||
|
<meta property="article:tag" content="elearning">
|
||||||
|
<meta property="article:tag" content="Facebook">
|
||||||
|
<meta property="article:tag" content="lms">
|
||||||
|
<meta property="article:tag" content="reddit">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<section class="page-header"><h1 class="project-name">
|
||||||
|
Caught in the Net
|
||||||
|
</h1>
|
||||||
|
<h2 class="project-tagline">La rete ti cattura ma libera il pensiero</h2>
|
||||||
|
<a class="btn" href="../../../../../">Home</a>
|
||||||
|
<a class="btn" href="../../../../../pages/about/">About me</a>
|
||||||
|
<a class="btn" href="../../../../../pages/contattami/">Contact me</a>
|
||||||
|
<a class="btn" href="../../../../../archiveall.html">Archive</a>
|
||||||
|
<a class="btn" href="../../../../../rss.xml">RSS</a>
|
||||||
|
<a class="btn" href="http://francescomecca.eu/git/pesceWanda">Personal Git</a>
|
||||||
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
|
<a class="btn" href="../../../../../wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
|
</section><section class="main-content"><div class="post">
|
||||||
|
|
||||||
|
<header><h1 class="post-title">
|
||||||
|
|
||||||
|
<h1 class="p-name post-title" itemprop="headline name">eLearning in the age of Social Networks, the EduHack Platform</h1>
|
||||||
|
|
||||||
|
</h1>
|
||||||
|
</header><p class="dateline post-date">26 October 2018</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="e-content entry-content" itemprop="articleBody text">
|
||||||
|
<div>
|
||||||
|
<p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
||||||
|
<p><img alt="Me, giving the talk" src="../../../../../wp-content/uploads/2018/coventry.jpg"></p>
|
||||||
|
<h2>In the beginning there was the LMS</h2>
|
||||||
|
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
||||||
|
<p>Since then they have been the foundation of the modern education sector, ranging from the basic functionalities of activity tracking, grades and analytics for the students (and in some cases the parents) to complex environments for remote education or even experimental pedagogies (e.g. <a href="https://fare.polito.it">FARE</a> that provides hospitalized students means to access the physical class and labs).</p>
|
||||||
|
<p>In the last five years commercial LMS reduced the pace of their progress, while providing better accessibility and decentralization.</p>
|
||||||
|
<p>The core of their principle hasn't changed. In this talk I am going to highlight their problems and outline a vision for a different approach that is supported by modern technologies.</p>
|
||||||
|
<h3>The problem of traditional LMS</h3>
|
||||||
|
<p>The design of a Learning Management System is based mainly around closed structures, such as very strict roles management and access management.</p>
|
||||||
|
<p>In a scenario where a professor might want to bring a domain expert during classes and online, a traditional LMS doesn't provide any kind of facilities for things such a role (in terms of login rights, rights towards other users, moderation capabilities).</p>
|
||||||
|
<p>There are many corner cases that lack a general method that allows users to expand the features of an LMS, especially when an institution lacks the technical means to bring development to such platforms.</p>
|
||||||
|
<p>Moreover, traditional LMS are highly gerarchic and foster an epistemology of "possession": learners are defined by the content that they "possess", the course they subscribed to, the material they downloaded. The educator is forced to be an authoritative source of knowledge that needs to direct the activity of the learners by having students pull the knowledge through an online portal. The flow is unidirectional and content centric.</p>
|
||||||
|
<p>In my experience instructors produce delivery-centered pedagogies because LMS lacks the flexibility to be adapted to learners, especially when they are used by a variety of instructors (e.g.: all of the professors of a UNI). While this model better reflects the traditional classroom I would argue that modern users are not used to this kind of dynamics in modern online communities.</p>
|
||||||
|
<p>You can learn more about the friction in the usage of traditional LMS in the following papers:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Rubin, Fernandes, Avgerinou, & Moore, 2010</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Naveh, Tubin, & Pliskin, 2010</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Parry, 2009; Sanchez-Franco, 2010</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Beebe et al., 2010</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Hacking Education with Digital Pedagogies</h3>
|
||||||
|
<p>What happens when education gets "hacked" and transitions in the digital world?
|
||||||
|
This is what we envision within the realms of the EduHack project:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Content to consume" becomes "content to consume to produce content": learners become knowledge builders because producing intellectual outputs is the logical continuation to learning.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>The environment goes from content centric to learner centric: teachers must be comfortable with the fluidity of such new roles.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>The distribution of information goes from knowledge-push to knowledge-pull: learners actively seek out educational material and gets rewarded.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>In the academia the closest study in this direction has been:
|
||||||
|
eLearning 2 0 and new literacies are social practices lagging behind, W.-Y. Lim et al.</p>
|
||||||
|
<h4>What do we gain with OSNs</h4>
|
||||||
|
<p>In the Web 2.0 landscape and in particular for younger generations, Online Social Networks (OSNs) have strong potential for building and mantaining strong connections and create an informal learning environment that collects and puts into actions the ideas that I have described.
|
||||||
|
I wont rehash widely known statistics, but it must be said that nowadays OSNs, in particular Facebook, Youtube and Twitter have a high rate of penetration towards students of upper secondary and post secondary education. For younger students OSNs are their primary means of communication while dominating their usage of the internet overall.</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Using Social Networks Technology to Enhance Learning in Higher Education: a Case Study using Facebook.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Web-Based Learning Platforms integratins Social Networking for Design Educations at High Schols in China.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Using online social networking for teaching and learning: Facebook use at the University of Cape Town.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Case studies: Facebook as an alternative LMS</h3>
|
||||||
|
<p>Different case studies analyzed the possible uses of Facebook as a social LMS.
|
||||||
|
The following is a list of the positive and negative results of such studies grouped by User Experience Design (UX), Behavior of the users and Quantitative Participation.</p>
|
||||||
|
<h5>UX</h5>
|
||||||
|
<p>Advantages:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Photos and discussions are presented better than traditional LMS.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>User's walls, private messages and comments are considered just communication tools.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Users reported that the technologies used for sharing class related material was familiar.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Educators reported that Facebook was useful to answer questions in bulk.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Educators reported that given the capabilities above, they saved a lot of time that otherwise would have been spent dealing with class related communications and questions.</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>Disadvantages:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Users where skeptical in writing long essays.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Friction when used as a formal learning platform.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Private platforms have issues related to accessibilities and language. Communication was done in english even if that wasn't the case before;</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Facebook doesn't support a wiki system.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>There are no tools for group management.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>There are no tools for sending bulk messages and group notifications.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>No capabilities for deletion and archival of material.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>No support for common multimedia (such as powerpoint slides or pdf).</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Maximum characters limit for posts.</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<h5>Behavior of the users</h5>
|
||||||
|
<p>Advantages:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Users reached to older students and befriended them.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Users reported that they felt less pressure online.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Educators found that boldlier students asked more questions because of absense of face to face shyness.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Students help each other in answering questions</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Six people from prior classes idependently requested to join the group</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Constant and more accurate feedback for teachers</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Constant communication for teachers</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>They got to know classmates better</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In heavily moderated OSNs, few users find disappropriate contents.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In a comparison Facebook's discussion were more numerous than Moodle's discussions even when people were not allowed to be friends</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>Disadvantages:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Addiction</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Students reported difficulties to get used to the new online persona.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Miscommunication: many prefer face to face interaction to express views. This maybe because they are used to it in traditional classrooms.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Some people say that they don't feel safe on FB (this is even more common when interviewing master students).</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Some students worry that their personal life could be discovered and misjudged by tutors.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Students avoided to befriend educators and lecturers in order to hide their private lives.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>During the research period, no student befriended the interviewed lecturers.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Students did not accept friend requests from lecturers.</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<h5>Quantitative Participation</h5>
|
||||||
|
<p>Advantages:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Overall the students are more responsive to issues and questions raised in classes.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>There is a higher number of ongoing discussions in any period.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Users log to Facebook for class related activities also during vacations (while the university LMS was almost not used).</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Very active participation: more than 90% of the students used Facebook outside of classes for study related activities.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Improved discussion outside of classes.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Students post class related material.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Creation of many User Generated Content.</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>There are no relevant reported challenges regarding participation and usage patterns.</p>
|
||||||
|
<h3>Where do we go from here?</h3>
|
||||||
|
<p>I want to highlight some other threats that an OSN such as Facebook poses to the Open Web.</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>The issue of privacy: forcing students to use a service that mines and sells their data is <strong>unethical</strong>.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Identity pollution: the open web is based on the principle of pseudoanonimity, users should be capable of build a prism of different online identity for different communities and environments.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Studies report Facebook as more appropriate for younger students, but younger people have higher rates of addiction to OSNs as well.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Addicted OSNs users have a lower GPA.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>20% of college students reported being stalked on OSNs.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>While the reported results about learners and educators participation in the usage of OSNs as LMS is astounding, forcing students to signup and give away their sensible data to private services is debatable and could be considered unethical.</p>
|
||||||
|
<h2>The EduHack model</h2>
|
||||||
|
<p>We need to develop a new LMS that is respectful of the Open Web standards without providing any friction to the users.</p>
|
||||||
|
<p>For this reasons, as part of the EduHack Project, we are developing the EduHack Knowledge Sharing Platform.</p>
|
||||||
|
<p>The EduHack Knowledge Sharing Platform was born around the assumption that many of the advantages in terms of user engagement and group dynamics</p>
|
||||||
|
<p>provided by OSNs could be replicated by adopting their widely known design patterns and mimicing closely the UX.</p>
|
||||||
|
<p>At the core of the platform there are the founding principles of the Open Web.</p>
|
||||||
|
<p>For this reason no data is collected of mined. Users are provided with an account that could be separated from their different online persona.</p>
|
||||||
|
<h5>A platform for collaborative learning</h5>
|
||||||
|
<p>The EduHack Knowledge Sharing Platform is divided into two parts.</p>
|
||||||
|
<p>The personal area is user centric and provides a window into the activities of the user in the form of multimedia blogposts.</p>
|
||||||
|
<p>The user can create and manage different roles for external editors to his private area. By default no other user is allowed to post a "story" in his personal area, but other users can be added as team members and can manage group works in different blogs.</p>
|
||||||
|
<p>Learners are expected to elaborate and remix what they learned (e.g. from online classes or MOOCs).</p>
|
||||||
|
<p>The public area is modelled after the UX of Reddit and it is divided into diffent sections (e.g.: mathematics, IT, discrete phisics, etc...), each providing a wiki.</p>
|
||||||
|
<p>Learners can subscribe to different sections or different users and be notified of new content or interactions.</p>
|
||||||
|
<p>Every user is allowed to post a link, an essay or any other widely adopted multimedia artifact to any section. Every user can positively vote and comment every post made. Comments can be positively voted as well.</p>
|
||||||
|
<p>Comments and content can be ordered by a custom algorithm (Wilson score interval) or chronologically.</p>
|
||||||
|
<p>Educators have a custom flair, can create new sections and moderate them. Moderation consists in changing links, removing posts or comments. Vote cannot be altered.</p>
|
||||||
|
<h3>Conclusions</h3>
|
||||||
|
<p>The EduHack Knowledge Sharing Platform is an ongoing effort to evolve LMS and augment them with social features and modern group dynamics.</p>
|
||||||
|
<p>The UX is modeled after a widely used social network without sacrificing consolidated approaches from traditional LMS.</p>
|
||||||
|
<p>We want to provide with this model an ethically sound framework for user centric, knowledge-pull pedagogies.</p>
|
||||||
|
<h3>References</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Using online social networking for Teaching and learning: Facebook use at the University of Cape Town, Tanja E Bosch.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>The myths about e-learning in higher education, James Kariuki Njenga and Louis Cyril Henry Fourie</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Group Formation in eLearning-enabled Social Networks, Steffen Brauer and Thomas C. Schmidt </p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>eLearning 2.0 and new literacies: are social laggin behind, Wei-Ying Lim, Hyo-Jeong So and Seng-Chee Tan</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Using the Facebook group as a learning management system: An exploratory study, Qiyun Wang, Huay Lit Woo, Choon Lang Quek, Yuqin Yang and Mei Liu</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Using Social Networking Technology to Enhance Learning in Higher Education: A Case Study Using Facebook, Peter Ractham and Daniel Firpo</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Students’ and teachers’ use of Facebook, Khe Foon Hew</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>The future of e-learning: a shift to knowledge networking and social software, Mohamed Amine Chatti and Matthias Jarke</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Using Facebook as course management software: a case study, Elizabeth M. LaRue</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Electronic Social Media in Teaching: Usages, Benefits, and Barriers as Viewed by Sudanese Faculty Members, Ahmed Yousif Abdelraheem and Abdelrahman Mohammed Ahmed</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>The Use of Social Networking in Education: Challenges and Opportunities: Ashraf Jalal Yousef Zaidieh</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Findings on Facebook in higher education: A comparison of college faculty and student uses and perceptions of social networking sites, M.D. Roblyer, Michelle McDaniel, Marsena Webb, James Herman and James Vince Witty e,4</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Online social networks: Why do students use facebook? Christy M.K. Cheung, Pui-Yee Chiu and Matthew K.O. Lee</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>e-Learning: The student experience, Jennifer Gilbert, Susan Morton and Jennifer Rowley</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<aside class="postpromonav"><nav><h4>Categories</h4>
|
||||||
|
|
||||||
|
<ul itemprop="keywords" class="tags">
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/education/" rel="tag">education</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/elearning/" rel="tag">elearning</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/facebook/" rel="tag">Facebook</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/lms/" rel="tag">lms</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/reddit/" rel="tag">reddit</a></li>
|
||||||
|
</ul></nav></aside><p class="sourceline"><a href="index.md" class="sourcelink">Source</a></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
||||||
|
<span class="site-footer-credits"><a href="https://getnikola.com">Nikola</a>, <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a>.</span>
|
||||||
|
</footer></section>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
280
output/blog/2018/10/2/talk-coventry/index.md
Normal file
280
output/blog/2018/10/2/talk-coventry/index.md
Normal file
|
@ -0,0 +1,280 @@
|
||||||
|
<!--
|
||||||
|
.. title: eLearning in the age of Social Networks, the EduHack Platform
|
||||||
|
.. slug: talk-coventry
|
||||||
|
.. date: 2018-10-26
|
||||||
|
.. tags: reddit,education,elearning,lms,Facebook
|
||||||
|
.. category: PesceWanda
|
||||||
|
.. link:
|
||||||
|
.. description:
|
||||||
|
.. type: text
|
||||||
|
-->
|
||||||
|
|
||||||
|
This is the revised transcript of my [talk](http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/) at the [OWLTEH Conference 2018](https://www.conf.owlteh.org/) at the Coventry University.
|
||||||
|
|
||||||
|
![Me, giving the talk](/wp-content/uploads/2018/coventry.jpg)
|
||||||
|
|
||||||
|
|
||||||
|
# In the beginning there was the LMS
|
||||||
|
|
||||||
|
Learning Management Systems appeared on the market around the beginning of 2000.
|
||||||
|
|
||||||
|
Since then they have been the foundation of the modern education sector, ranging from the basic functionalities of activity tracking, grades and analytics for the students (and in some cases the parents) to complex environments for remote education or even experimental pedagogies (e.g. [FARE](https://fare.polito.it) that provides hospitalized students means to access the physical class and labs).
|
||||||
|
|
||||||
|
In the last five years commercial LMS reduced the pace of their progress, while providing better accessibility and decentralization.
|
||||||
|
|
||||||
|
The core of their principle hasn't changed. In this talk I am going to highlight their problems and outline a vision for a different approach that is supported by modern technologies.
|
||||||
|
|
||||||
|
|
||||||
|
## The problem of traditional LMS
|
||||||
|
|
||||||
|
The design of a Learning Management System is based mainly around closed structures, such as very strict roles management and access management.
|
||||||
|
|
||||||
|
In a scenario where a professor might want to bring a domain expert during classes and online, a traditional LMS doesn't provide any kind of facilities for things such a role (in terms of login rights, rights towards other users, moderation capabilities).
|
||||||
|
|
||||||
|
There are many corner cases that lack a general method that allows users to expand the features of an LMS, especially when an institution lacks the technical means to bring development to such platforms.
|
||||||
|
|
||||||
|
Moreover, traditional LMS are highly gerarchic and foster an epistemology of "possession": learners are defined by the content that they "possess", the course they subscribed to, the material they downloaded. The educator is forced to be an authoritative source of knowledge that needs to direct the activity of the learners by having students pull the knowledge through an online portal. The flow is unidirectional and content centric.
|
||||||
|
|
||||||
|
In my experience instructors produce delivery-centered pedagogies because LMS lacks the flexibility to be adapted to learners, especially when they are used by a variety of instructors (e.g.: all of the professors of a UNI). While this model better reflects the traditional classroom I would argue that modern users are not used to this kind of dynamics in modern online communities.
|
||||||
|
|
||||||
|
|
||||||
|
You can learn more about the friction in the usage of traditional LMS in the following papers:
|
||||||
|
|
||||||
|
* Rubin, Fernandes, Avgerinou, & Moore, 2010
|
||||||
|
|
||||||
|
* Naveh, Tubin, & Pliskin, 2010
|
||||||
|
|
||||||
|
* Parry, 2009; Sanchez-Franco, 2010
|
||||||
|
|
||||||
|
* Beebe et al., 2010
|
||||||
|
|
||||||
|
|
||||||
|
## Hacking Education with Digital Pedagogies
|
||||||
|
|
||||||
|
What happens when education gets "hacked" and transitions in the digital world?
|
||||||
|
This is what we envision within the realms of the EduHack project:
|
||||||
|
|
||||||
|
* "Content to consume" becomes "content to consume to produce content": learners become knowledge builders because producing intellectual outputs is the logical continuation to learning.
|
||||||
|
|
||||||
|
* The environment goes from content centric to learner centric: teachers must be comfortable with the fluidity of such new roles.
|
||||||
|
|
||||||
|
* The distribution of information goes from knowledge-push to knowledge-pull: learners actively seek out educational material and gets rewarded.
|
||||||
|
|
||||||
|
|
||||||
|
In the academia the closest study in this direction has been:
|
||||||
|
eLearning 2 0 and new literacies are social practices lagging behind, W.-Y. Lim et al.
|
||||||
|
|
||||||
|
### What do we gain with OSNs
|
||||||
|
|
||||||
|
In the Web 2.0 landscape and in particular for younger generations, Online Social Networks (OSNs) have strong potential for building and mantaining strong connections and create an informal learning environment that collects and puts into actions the ideas that I have described.
|
||||||
|
I wont rehash widely known statistics, but it must be said that nowadays OSNs, in particular Facebook, Youtube and Twitter have a high rate of penetration towards students of upper secondary and post secondary education. For younger students OSNs are their primary means of communication while dominating their usage of the internet overall.
|
||||||
|
|
||||||
|
* Using Social Networks Technology to Enhance Learning in Higher Education: a Case Study using Facebook.
|
||||||
|
|
||||||
|
* Web-Based Learning Platforms integratins Social Networking for Design Educations at High Schols in China.
|
||||||
|
|
||||||
|
* Using online social networking for teaching and learning: Facebook use at the University of Cape Town.
|
||||||
|
|
||||||
|
|
||||||
|
## Case studies: Facebook as an alternative LMS
|
||||||
|
|
||||||
|
Different case studies analyzed the possible uses of Facebook as a social LMS.
|
||||||
|
The following is a list of the positive and negative results of such studies grouped by User Experience Design (UX), Behavior of the users and Quantitative Participation.
|
||||||
|
|
||||||
|
#### UX
|
||||||
|
|
||||||
|
Advantages:
|
||||||
|
|
||||||
|
1. Photos and discussions are presented better than traditional LMS.
|
||||||
|
|
||||||
|
2. User's walls, private messages and comments are considered just communication tools.
|
||||||
|
|
||||||
|
3. Users reported that the technologies used for sharing class related material was familiar.
|
||||||
|
|
||||||
|
4. Educators reported that Facebook was useful to answer questions in bulk.
|
||||||
|
|
||||||
|
5. Educators reported that given the capabilities above, they saved a lot of time that otherwise would have been spent dealing with class related communications and questions.
|
||||||
|
|
||||||
|
Disadvantages:
|
||||||
|
|
||||||
|
1. Users where skeptical in writing long essays.
|
||||||
|
|
||||||
|
2. Friction when used as a formal learning platform.
|
||||||
|
|
||||||
|
3. Private platforms have issues related to accessibilities and language. Communication was done in english even if that wasn't the case before;
|
||||||
|
|
||||||
|
3. Facebook doesn't support a wiki system.
|
||||||
|
|
||||||
|
4. There are no tools for group management.
|
||||||
|
|
||||||
|
5. There are no tools for sending bulk messages and group notifications.
|
||||||
|
|
||||||
|
6. No capabilities for deletion and archival of material.
|
||||||
|
|
||||||
|
7. No support for common multimedia (such as powerpoint slides or pdf).
|
||||||
|
|
||||||
|
8. Maximum characters limit for posts.
|
||||||
|
|
||||||
|
|
||||||
|
#### Behavior of the users
|
||||||
|
|
||||||
|
Advantages:
|
||||||
|
|
||||||
|
1. Users reached to older students and befriended them.
|
||||||
|
|
||||||
|
2. Users reported that they felt less pressure online.
|
||||||
|
|
||||||
|
3. Educators found that boldlier students asked more questions because of absense of face to face shyness.
|
||||||
|
|
||||||
|
4. Students help each other in answering questions
|
||||||
|
|
||||||
|
5. Six people from prior classes idependently requested to join the group
|
||||||
|
|
||||||
|
6. Constant and more accurate feedback for teachers
|
||||||
|
|
||||||
|
7. Constant communication for teachers
|
||||||
|
|
||||||
|
8. They got to know classmates better
|
||||||
|
|
||||||
|
9. In heavily moderated OSNs, few users find disappropriate contents.
|
||||||
|
|
||||||
|
10. In a comparison Facebook's discussion were more numerous than Moodle's discussions even when people were not allowed to be friends
|
||||||
|
|
||||||
|
Disadvantages:
|
||||||
|
|
||||||
|
1. Addiction
|
||||||
|
|
||||||
|
2. Students reported difficulties to get used to the new online persona.
|
||||||
|
|
||||||
|
3. Miscommunication: many prefer face to face interaction to express views. This maybe because they are used to it in traditional classrooms.
|
||||||
|
|
||||||
|
4. Some people say that they don't feel safe on FB (this is even more common when interviewing master students).
|
||||||
|
|
||||||
|
5. Some students worry that their personal life could be discovered and misjudged by tutors.
|
||||||
|
|
||||||
|
6. Students avoided to befriend educators and lecturers in order to hide their private lives.
|
||||||
|
|
||||||
|
7. During the research period, no student befriended the interviewed lecturers.
|
||||||
|
|
||||||
|
8. Students did not accept friend requests from lecturers.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### Quantitative Participation
|
||||||
|
|
||||||
|
Advantages:
|
||||||
|
|
||||||
|
1. Overall the students are more responsive to issues and questions raised in classes.
|
||||||
|
|
||||||
|
2. There is a higher number of ongoing discussions in any period.
|
||||||
|
|
||||||
|
3. Users log to Facebook for class related activities also during vacations (while the university LMS was almost not used).
|
||||||
|
|
||||||
|
4. Very active participation: more than 90% of the students used Facebook outside of classes for study related activities.
|
||||||
|
|
||||||
|
5. Improved discussion outside of classes.
|
||||||
|
|
||||||
|
6. Students post class related material.
|
||||||
|
|
||||||
|
7. Creation of many User Generated Content.
|
||||||
|
|
||||||
|
|
||||||
|
There are no relevant reported challenges regarding participation and usage patterns.
|
||||||
|
|
||||||
|
|
||||||
|
## Where do we go from here?
|
||||||
|
|
||||||
|
I want to highlight some other threats that an OSN such as Facebook poses to the Open Web.
|
||||||
|
|
||||||
|
* The issue of privacy: forcing students to use a service that mines and sells their data is **unethical**.
|
||||||
|
|
||||||
|
* Identity pollution: the open web is based on the principle of pseudoanonimity, users should be capable of build a prism of different online identity for different communities and environments.
|
||||||
|
|
||||||
|
* Studies report Facebook as more appropriate for younger students, but younger people have higher rates of addiction to OSNs as well.
|
||||||
|
|
||||||
|
* Addicted OSNs users have a lower GPA.
|
||||||
|
|
||||||
|
* 20% of college students reported being stalked on OSNs.
|
||||||
|
|
||||||
|
|
||||||
|
While the reported results about learners and educators participation in the usage of OSNs as LMS is astounding, forcing students to signup and give away their sensible data to private services is debatable and could be considered unethical.
|
||||||
|
|
||||||
|
# The EduHack model
|
||||||
|
|
||||||
|
We need to develop a new LMS that is respectful of the Open Web standards without providing any friction to the users.
|
||||||
|
|
||||||
|
For this reasons, as part of the EduHack Project, we are developing the EduHack Knowledge Sharing Platform.
|
||||||
|
|
||||||
|
The EduHack Knowledge Sharing Platform was born around the assumption that many of the advantages in terms of user engagement and group dynamics
|
||||||
|
|
||||||
|
provided by OSNs could be replicated by adopting their widely known design patterns and mimicing closely the UX.
|
||||||
|
|
||||||
|
At the core of the platform there are the founding principles of the Open Web.
|
||||||
|
|
||||||
|
For this reason no data is collected of mined. Users are provided with an account that could be separated from their different online persona.
|
||||||
|
|
||||||
|
|
||||||
|
#### A platform for collaborative learning
|
||||||
|
|
||||||
|
The EduHack Knowledge Sharing Platform is divided into two parts.
|
||||||
|
|
||||||
|
The personal area is user centric and provides a window into the activities of the user in the form of multimedia blogposts.
|
||||||
|
|
||||||
|
The user can create and manage different roles for external editors to his private area. By default no other user is allowed to post a "story" in his personal area, but other users can be added as team members and can manage group works in different blogs.
|
||||||
|
|
||||||
|
Learners are expected to elaborate and remix what they learned (e.g. from online classes or MOOCs).
|
||||||
|
|
||||||
|
|
||||||
|
The public area is modelled after the UX of Reddit and it is divided into diffent sections (e.g.: mathematics, IT, discrete phisics, etc...), each providing a wiki.
|
||||||
|
|
||||||
|
Learners can subscribe to different sections or different users and be notified of new content or interactions.
|
||||||
|
|
||||||
|
Every user is allowed to post a link, an essay or any other widely adopted multimedia artifact to any section. Every user can positively vote and comment every post made. Comments can be positively voted as well.
|
||||||
|
|
||||||
|
Comments and content can be ordered by a custom algorithm (Wilson score interval) or chronologically.
|
||||||
|
|
||||||
|
Educators have a custom flair, can create new sections and moderate them. Moderation consists in changing links, removing posts or comments. Vote cannot be altered.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Conclusions
|
||||||
|
|
||||||
|
The EduHack Knowledge Sharing Platform is an ongoing effort to evolve LMS and augment them with social features and modern group dynamics.
|
||||||
|
|
||||||
|
The UX is modeled after a widely used social network without sacrificing consolidated approaches from traditional LMS.
|
||||||
|
|
||||||
|
We want to provide with this model an ethically sound framework for user centric, knowledge-pull pedagogies.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
* Using online social networking for Teaching and learning: Facebook use at the University of Cape Town, Tanja E Bosch.
|
||||||
|
|
||||||
|
* The myths about e-learning in higher education, James Kariuki Njenga and Louis Cyril Henry Fourie
|
||||||
|
|
||||||
|
* Group Formation in eLearning-enabled Social Networks, Steffen Brauer and Thomas C. Schmidt
|
||||||
|
|
||||||
|
* eLearning 2.0 and new literacies: are social laggin behind, Wei-Ying Lim, Hyo-Jeong So and Seng-Chee Tan
|
||||||
|
|
||||||
|
* Using the Facebook group as a learning management system: An exploratory study, Qiyun Wang, Huay Lit Woo, Choon Lang Quek, Yuqin Yang and Mei Liu
|
||||||
|
|
||||||
|
* Using Social Networking Technology to Enhance Learning in Higher Education: A Case Study Using Facebook, Peter Ractham and Daniel Firpo
|
||||||
|
|
||||||
|
* Students’ and teachers’ use of Facebook, Khe Foon Hew
|
||||||
|
|
||||||
|
* The future of e-learning: a shift to knowledge networking and social software, Mohamed Amine Chatti and Matthias Jarke
|
||||||
|
|
||||||
|
* Using Facebook as course management software: a case study, Elizabeth M. LaRue
|
||||||
|
|
||||||
|
* Electronic Social Media in Teaching: Usages, Benefits, and Barriers as Viewed by Sudanese Faculty Members, Ahmed Yousif Abdelraheem and Abdelrahman Mohammed Ahmed
|
||||||
|
|
||||||
|
* The Use of Social Networking in Education: Challenges and Opportunities: Ashraf Jalal Yousef Zaidieh
|
||||||
|
|
||||||
|
* Findings on Facebook in higher education: A comparison of college faculty and student uses and perceptions of social networking sites, M.D. Roblyer, Michelle McDaniel, Marsena Webb, James Herman and James Vince Witty e,4
|
||||||
|
|
||||||
|
* Online social networks: Why do students use facebook? Christy M.K. Cheung, Pui-Yee Chiu and Matthew K.O. Lee
|
||||||
|
|
||||||
|
* e-Learning: The student experience, Jennifer Gilbert, Susan Morton and Jennifer Rowley
|
||||||
|
|
111
output/blog/2018/15/11/programming-session/index.html
Normal file
111
output/blog/2018/15/11/programming-session/index.html
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>Experiment part 1 | Caught in the Net</title>
|
||||||
|
<link rel="stylesheet" href="../../../../../assets/blog/fonts/opensans.css">
|
||||||
|
<link href="../../../../../assets/blog/css/normalize.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../../../../../assets/blog/css/cayman.css" rel="stylesheet" type="text/css">
|
||||||
|
<meta name="theme-color" content="#5670d4">
|
||||||
|
<meta name="generator" content="Nikola (getnikola.com)">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="../../../../../rss.xml">
|
||||||
|
<link rel="canonical" href="francescomecca.eu/blog/2018/15/11/programming-session/">
|
||||||
|
<meta name="author" content="Francesco Mecca">
|
||||||
|
<link rel="prev" href="../../../10/2/eduhack-coventry/" title="eLearning in the age of Social Networks, the EduHack Platform" type="text/html">
|
||||||
|
<link rel="next" href="../../../../2019/03/06/Dconf-2019/" title="Dconf 2019" type="text/html">
|
||||||
|
<meta property="og:site_name" content="Caught in the Net">
|
||||||
|
<meta property="og:title" content="Experiment part 1">
|
||||||
|
<meta property="og:url" content="francescomecca.eu/blog/2018/15/11/programming-session/">
|
||||||
|
<meta property="og:description" content="This is an experimental blogpost with the goal of improving myself on the design of system programs.
|
||||||
|
The following words are a flow that tries to recapture the process that I follow when I program.
|
||||||
|
17">
|
||||||
|
<meta property="og:type" content="article">
|
||||||
|
<meta property="article:published_time" content="2018-11-15T00:00:00Z">
|
||||||
|
<meta property="article:tag" content="dlang">
|
||||||
|
<meta property="article:tag" content="programming">
|
||||||
|
<meta property="article:tag" content="web">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<section class="page-header"><h1 class="project-name">
|
||||||
|
Caught in the Net
|
||||||
|
</h1>
|
||||||
|
<h2 class="project-tagline">La rete ti cattura ma libera il pensiero</h2>
|
||||||
|
<a class="btn" href="../../../../../">Home</a>
|
||||||
|
<a class="btn" href="../../../../../pages/about/">About me</a>
|
||||||
|
<a class="btn" href="../../../../../pages/contattami/">Contact me</a>
|
||||||
|
<a class="btn" href="../../../../../archiveall.html">Archive</a>
|
||||||
|
<a class="btn" href="../../../../../rss.xml">RSS</a>
|
||||||
|
<a class="btn" href="http://francescomecca.eu/git/pesceWanda">Personal Git</a>
|
||||||
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
|
<a class="btn" href="../../../../../wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
|
</section><section class="main-content"><div class="post">
|
||||||
|
|
||||||
|
<header><h1 class="post-title">
|
||||||
|
|
||||||
|
<h1 class="p-name post-title" itemprop="headline name">Experiment part 1</h1>
|
||||||
|
|
||||||
|
</h1>
|
||||||
|
</header><p class="dateline post-date">15 November 2018</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="e-content entry-content" itemprop="articleBody text">
|
||||||
|
<div>
|
||||||
|
<p>This is an experimental blogpost with the goal of improving myself on the design of system programs.</p>
|
||||||
|
<p>The following words are a flow that tries to recapture the process that I follow when I program.</p>
|
||||||
|
<h2>17.11</h2>
|
||||||
|
<p>This is the <a href="https://www.discogs.com/Various-Psychedelic-Underground-13/release/1251814">tracklist</a>:</p>
|
||||||
|
<p>Tracklist
|
||||||
|
1 Waniyetula - Lindis Farne
|
||||||
|
2 Missus Beastly - Steel's Electric
|
||||||
|
3 Vikings Invasion - Shadow Boogie
|
||||||
|
4 Live - Fly Like A Bird
|
||||||
|
5 Arktis - Speed Boogie
|
||||||
|
6 Level π - Hubble's Dream - Dream Without End
|
||||||
|
7 Emma Myldenberger - RAA
|
||||||
|
8 Skyline - Beautiful Lady
|
||||||
|
9 Guru Guru - Oxymoron</p>
|
||||||
|
<h2>The problem</h2>
|
||||||
|
<p>Yesterday I got an insider tip that probably http://isole.ecn.org/ might be taken down and I remembered that I had an old archive of the entire site.
|
||||||
|
Actually I am an amateur data hoarder so I keep archives/backups of pretty much everything I find amusing.</p>
|
||||||
|
<p>I wanted to update the archive so I used httrack.
|
||||||
|
I found the following problems:</p>
|
||||||
|
<ol>
|
||||||
|
<li>too slow (doesn't even use 1/20 of my connection)</li>
|
||||||
|
<li>doesn't understand that if I want to mirror ecn.org I may want isole.ecn.org as well</li>
|
||||||
|
<li>if I configure httrack to archive everything basically I hit some external websites (like google.com) and it starts archiving that as well</li>
|
||||||
|
<li>I can't configure it to avoid any external link because I may need them</li>
|
||||||
|
</ol>
|
||||||
|
<p>A perfect scraper for me would:
|
||||||
|
1. record a list of every external website it hit so that later I can archive them as well
|
||||||
|
2. allow me to scrape subdomains as well
|
||||||
|
3. configure a level of archiving for external websites</p>
|
||||||
|
<h2>The approach</h2>
|
||||||
|
<p>Right now httrack does a perfect job of storing the webpages with a coherent folder layout and offline browsing capabilities.
|
||||||
|
Let's see how it does that.</p>
|
||||||
|
<p>On the original page I can found:
|
||||||
|
<code><link rel='stylesheet' id='avia-google-webfont' href='//fonts.googleapis.com/css?family=Lato:300,400,700' type='text/css' media='all'/></code></p>
|
||||||
|
<p>When httrack saves it:
|
||||||
|
<code><link rel='stylesheet' id='avia-google-webfont' href='../fonts.googleapis.com/css8f84.css?family=Lato:300,400,700' type='text/css' media='all'/></code></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<aside class="postpromonav"><nav><h4>Categories</h4>
|
||||||
|
|
||||||
|
<ul itemprop="keywords" class="tags">
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/dlang/" rel="tag">dlang</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/programming/" rel="tag">programming</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/web/" rel="tag">web</a></li>
|
||||||
|
</ul></nav></aside><p class="sourceline"><a href="index.md" class="sourcelink">Source</a></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
||||||
|
<span class="site-footer-credits"><a href="https://getnikola.com">Nikola</a>, <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a>.</span>
|
||||||
|
</footer></section>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
58
output/blog/2018/15/11/programming-session/index.md
Normal file
58
output/blog/2018/15/11/programming-session/index.md
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<!--
|
||||||
|
.. title: Experiment part 1
|
||||||
|
.. slug: programming-session
|
||||||
|
.. date: 2018-11-15
|
||||||
|
.. tags: programming,dlang,web
|
||||||
|
.. category: PesceWanda
|
||||||
|
.. link:
|
||||||
|
.. description:
|
||||||
|
.. type: text
|
||||||
|
-->
|
||||||
|
|
||||||
|
This is an experimental blogpost with the goal of improving myself on the design of system programs.
|
||||||
|
|
||||||
|
The following words are a flow that tries to recapture the process that I follow when I program.
|
||||||
|
|
||||||
|
# 17.11
|
||||||
|
|
||||||
|
This is the [tracklist](https://www.discogs.com/Various-Psychedelic-Underground-13/release/1251814):
|
||||||
|
|
||||||
|
Tracklist
|
||||||
|
1 Waniyetula - Lindis Farne
|
||||||
|
2 Missus Beastly - Steel's Electric
|
||||||
|
3 Vikings Invasion - Shadow Boogie
|
||||||
|
4 Live - Fly Like A Bird
|
||||||
|
5 Arktis - Speed Boogie
|
||||||
|
6 Level π - Hubble's Dream - Dream Without End
|
||||||
|
7 Emma Myldenberger - RAA
|
||||||
|
8 Skyline - Beautiful Lady
|
||||||
|
9 Guru Guru - Oxymoron
|
||||||
|
|
||||||
|
# The problem
|
||||||
|
|
||||||
|
Yesterday I got an insider tip that probably http://isole.ecn.org/ might be taken down and I remembered that I had an old archive of the entire site.
|
||||||
|
Actually I am an amateur data hoarder so I keep archives/backups of pretty much everything I find amusing.
|
||||||
|
|
||||||
|
I wanted to update the archive so I used httrack.
|
||||||
|
I found the following problems:
|
||||||
|
|
||||||
|
1. too slow (doesn't even use 1/20 of my connection)
|
||||||
|
2. doesn't understand that if I want to mirror ecn.org I may want isole.ecn.org as well
|
||||||
|
3. if I configure httrack to archive everything basically I hit some external websites (like google.com) and it starts archiving that as well
|
||||||
|
4. I can't configure it to avoid any external link because I may need them
|
||||||
|
|
||||||
|
A perfect scraper for me would:
|
||||||
|
1. record a list of every external website it hit so that later I can archive them as well
|
||||||
|
2. allow me to scrape subdomains as well
|
||||||
|
3. configure a level of archiving for external websites
|
||||||
|
|
||||||
|
# The approach
|
||||||
|
|
||||||
|
Right now httrack does a perfect job of storing the webpages with a coherent folder layout and offline browsing capabilities.
|
||||||
|
Let's see how it does that.
|
||||||
|
|
||||||
|
On the original page I can found:
|
||||||
|
`<link rel='stylesheet' id='avia-google-webfont' href='//fonts.googleapis.com/css?family=Lato:300,400,700' type='text/css' media='all'/> `
|
||||||
|
|
||||||
|
When httrack saves it:
|
||||||
|
`<link rel='stylesheet' id='avia-google-webfont' href='../fonts.googleapis.com/css8f84.css?family=Lato:300,400,700' type='text/css' media='all'/> `
|
|
@ -13,6 +13,7 @@
|
||||||
<link rel="canonical" href="francescomecca.eu/blog/2019/03/06/Dconf-2019/">
|
<link rel="canonical" href="francescomecca.eu/blog/2019/03/06/Dconf-2019/">
|
||||||
<meta name="author" content="Francesco Mecca">
|
<meta name="author" content="Francesco Mecca">
|
||||||
<link rel="prev" href="../../../../2018/10/2/eduhack-coventry/" title="eLearning in the age of Social Networks, the EduHack Platform" type="text/html">
|
<link rel="prev" href="../../../../2018/10/2/eduhack-coventry/" title="eLearning in the age of Social Networks, the EduHack Platform" type="text/html">
|
||||||
|
<link rel="next" href="../../../05/18/cultura-hacker/" title="Breve storia della cultura hacker" type="text/html">
|
||||||
<meta property="og:site_name" content="Caught in the Net">
|
<meta property="og:site_name" content="Caught in the Net">
|
||||||
<meta property="og:title" content="Dconf 2019">
|
<meta property="og:title" content="Dconf 2019">
|
||||||
<meta property="og:url" content="francescomecca.eu/blog/2019/03/06/Dconf-2019/">
|
<meta property="og:url" content="francescomecca.eu/blog/2019/03/06/Dconf-2019/">
|
||||||
|
|
337
output/blog/2019/05/18/cultura-hacker/index.html
Normal file
337
output/blog/2019/05/18/cultura-hacker/index.html
Normal file
|
@ -0,0 +1,337 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>Breve storia della cultura hacker | Caught in the Net</title>
|
||||||
|
<link rel="stylesheet" href="../../../../../assets/blog/fonts/opensans.css">
|
||||||
|
<link href="../../../../../assets/blog/css/normalize.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../../../../../assets/blog/css/cayman.css" rel="stylesheet" type="text/css">
|
||||||
|
<meta name="theme-color" content="#5670d4">
|
||||||
|
<meta name="generator" content="Nikola (getnikola.com)">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="../../../../../rss.xml">
|
||||||
|
<link rel="canonical" href="francescomecca.eu/blog/2019/05/18/cultura-hacker/">
|
||||||
|
<meta name="author" content="Francesco Mecca">
|
||||||
|
<link rel="prev" href="../../../03/06/Dconf-2019/" title="Dconf 2019" type="text/html">
|
||||||
|
<meta property="og:site_name" content="Caught in the Net">
|
||||||
|
<meta property="og:title" content="Breve storia della cultura hacker">
|
||||||
|
<meta property="og:url" content="francescomecca.eu/blog/2019/05/18/cultura-hacker/">
|
||||||
|
<meta property="og:description" content="Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso Rivoluzione Digitale.
|
||||||
|
Scopo della lezione
|
||||||
|
Capire la cultura hacker signific">
|
||||||
|
<meta property="og:type" content="article">
|
||||||
|
<meta property="article:published_time" content="2019-05-18T00:00:00Z">
|
||||||
|
<meta property="article:tag" content="lecture">
|
||||||
|
<meta property="article:tag" content="PesceWanda">
|
||||||
|
<meta property="article:tag" content="politecnico">
|
||||||
|
<meta property="article:tag" content="polito">
|
||||||
|
<meta property="article:tag" content="Rivoluzione Digitale">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<section class="page-header"><h1 class="project-name">
|
||||||
|
Caught in the Net
|
||||||
|
</h1>
|
||||||
|
<h2 class="project-tagline">La rete ti cattura ma libera il pensiero</h2>
|
||||||
|
<a class="btn" href="../../../../../">Home</a>
|
||||||
|
<a class="btn" href="../../../../../pages/about/">About me</a>
|
||||||
|
<a class="btn" href="../../../../../pages/contattami/">Contact me</a>
|
||||||
|
<a class="btn" href="../../../../../archiveall.html">Archive</a>
|
||||||
|
<a class="btn" href="../../../../../rss.xml">RSS</a>
|
||||||
|
<a class="btn" href="http://francescomecca.eu/git/pesceWanda">Personal Git</a>
|
||||||
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
|
<a class="btn" href="../../../../../wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
|
</section><section class="main-content"><div class="post">
|
||||||
|
|
||||||
|
<header><h1 class="post-title">
|
||||||
|
|
||||||
|
<h1 class="p-name post-title" itemprop="headline name">Breve storia della cultura hacker</h1>
|
||||||
|
|
||||||
|
</h1>
|
||||||
|
</header><p class="dateline post-date">18 May 2019</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="e-content entry-content" itemprop="articleBody text">
|
||||||
|
<div>
|
||||||
|
<p>Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso <a href="http://rivoluzionedigitale.polito.it/">Rivoluzione Digitale</a>.</p>
|
||||||
|
<h2>Scopo della lezione</h2>
|
||||||
|
<p>Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e` alle radici dell'informatica come scienza e come strumento di cultura di massa.</p>
|
||||||
|
<h2>Jargon File</h2>
|
||||||
|
<p>Cosi` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita` iniziarono a raccogliere gli slang piu` utilizzati e le storie legate a questi modi di esprimersi.</p>
|
||||||
|
<p>Con l'espandersi della comunita` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.</p>
|
||||||
|
<p><a href="http://catdb.org/esr">ESR</a> scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Esempi di slang e trasformazioni del lessico:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Data General -> Dirty Genitals</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>IBM 360 -> IBM Three-Sickly</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Government Property -- Do Not Duplicate (on keys) -> Government Duplicity -- Do Not Propagate</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>for historical reasons -> for hysterical raisins</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Margaret Jacks Hall (the CS building at Stanford) -> Marginal Hacks Hall</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft -> Microsloth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Internet Explorer -> Internet Exploiter</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft Outlook -> Microsoft Outhouse</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Linux -> Linsux</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>FreeBSD -> FreeLSD</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>C# -> C Flat</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Piu` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano <code>true</code> <code>false</code>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Definizione della parola hacker</h3>
|
||||||
|
<p><img alt="Definition of hacker" src="../../../../../wp-content/uploads/2019/def_hacker.jpg"></p>
|
||||||
|
<p>Come si evince dall'immagine il significato della parola hacker nel gergo comune si e` via via svuotato per poi andare a sostituire quello del termine cracker.</p>
|
||||||
|
<p>Un cracker e` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu` nobili.</p>
|
||||||
|
<p>Del termine hacker abbiamo piu` definizioni, alcune indifferenti all'uso di sistemi informatici:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona capace di programmare celermente e con precisione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.</p>
|
||||||
|
<h2>Chiave di lettura</h2>
|
||||||
|
<p>Nella storia della cultura hacker si possono distinguere tre tipi di persone:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>i poeti e matematici, come Donald Knuth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>gli esperti di determinate tipologie di hardware o software, come Bruce Schneier</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>i makers, coloro che costruiscono cio` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita` di cui parleremo rientrano in piu` di una di queste categoria. In tutti i casi e` importante capire che sono tre approcci complementari.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Storia</h2>
|
||||||
|
<h3>In the beginning there were the real programmers</h3>
|
||||||
|
<p>La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.</p>
|
||||||
|
<p>Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.</p>
|
||||||
|
<p>Fra i piu` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono` al primo avvio.</p>
|
||||||
|
<p>Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.</p>
|
||||||
|
<p>Qua parte il primo filone della storia della cultura hacker, quello universitario.</p>
|
||||||
|
<h4>I primi hacker, la tribu` connessa</h4>
|
||||||
|
<p>Rimanendo all'interno delle universita` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.</p>
|
||||||
|
<p>Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).</p>
|
||||||
|
<p>Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.</p>
|
||||||
|
<p>Questo e` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.</p>
|
||||||
|
<p>Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita` e laboratori di ricerca.</p>
|
||||||
|
<p>Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu` ampia di entusiasti.</p>
|
||||||
|
<p>Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.</p>
|
||||||
|
<h4>La nascita di Unix</h4>
|
||||||
|
<p>Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.</p>
|
||||||
|
<p>All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e` stata quella di fornire un'interfaccia unificata e le stesse funzionalita` su macchine diverse.</p>
|
||||||
|
<p>Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita` fra macchine diverse.</p>
|
||||||
|
<p>C e` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e` rimasta viva nei suoi discendenti.</p>
|
||||||
|
<h3>Freak + Phone = Phreaking</h3>
|
||||||
|
<p>Il reverse engineering e` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.</p>
|
||||||
|
<p>I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.</p>
|
||||||
|
<p>Il piu` celebre fra questi e` John Draper che scopri` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.</p>
|
||||||
|
<p>Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.</p>
|
||||||
|
<h3>Digressione: Anarco Illuminismo</h3>
|
||||||
|
<p>La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se` ideali di due ideologie differenti.</p>
|
||||||
|
<p>Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.</p>
|
||||||
|
<p>Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.</p>
|
||||||
|
<p>Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.</p>
|
||||||
|
<p>Nonostante cio` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.</p>
|
||||||
|
<h3>L'era del software proprietario</h3>
|
||||||
|
<p>Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una serie meno organizzata di gruppetti piu` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Nel frattempo iniziavano a diventare piu` comuni le prime macchine prodotte da Apple e Microsoft. In realta` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.</p>
|
||||||
|
<p>La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.</p>
|
||||||
|
<p>Nel 1983 DEC annuncio` la fine della linea dei PDP, definendo cosi` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.</p>
|
||||||
|
<p>L'hackerdom vide la possibilita` che uno dei suoi piu` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.</p>
|
||||||
|
<p>Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita` delle sue implementazioni, ma AT&T vinse molte battaglie legali appropriandosi di vari standard.</p>
|
||||||
|
<h3>Verso una prima ideologia hacker</h3>
|
||||||
|
<p>In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita` sarebbe sparito lentamente.</p>
|
||||||
|
<p>Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu` severo (benche` non sia paragonabile alla copertura che tali eventi hanno oggi).</p>
|
||||||
|
<p>La soluzione proposta risiede nella congiunzione di tre idee:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>decentralizzazione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>crittografia</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>software libero</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Decentralizzazione</h4>
|
||||||
|
<p>La decentralizzazione e` il processo in cui un'attivita` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.</p>
|
||||||
|
<p>L'assunto alla base e` il principio Manzoniano per cui una persona che detiene il potere si ritrovera` prima o poi costretta a compiere decisioni non etiche. La soluzione e` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.</p>
|
||||||
|
<p>Un'esempio di decentralizzazione e` l'architettura di internet, almeno nelle sue prime forme, dove non c'e` un'autorita` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu` attuale e` la rete Bittorrent.</p>
|
||||||
|
<h4>Crittografia</h4>
|
||||||
|
<p>Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.</p>
|
||||||
|
<p>Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.</p>
|
||||||
|
<p>L'idea alla base (Cypherpunk's Manifesto) e` che la privacy e` necessaria per poter costituire una societa` aperta nell'era dell'informazione; non c'e` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.</p>
|
||||||
|
<p>Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.</p>
|
||||||
|
<h4>Software Libero</h4>
|
||||||
|
<p>Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.</p>
|
||||||
|
<p>Quando nel 1980 la stampante fu sostituita Xerox si rifiuto` di concedere a Stallman le facolta` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.</p>
|
||||||
|
<p>Nel 1984 Stallman si licenzio` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto` subito l'interesse della comunita`.</p>
|
||||||
|
<p>Il progetto GNU e` una collezione di software di qualsiasi tipo che rispetti le liberta` garantite dalla licensa <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>; fra questi i piu` famosi sono <a href="https://gcc.gnu.org/">GCC</a>, <a href="https://www.gnu.org/software/emacs/">emacs</a>, <a href="https://www.gnu.org/software/octave/">Octave</a>, <a href="https://www.r-project.org/">R</a> ma anche software di attivismo, gestione delle finanze e tant'altro.</p>
|
||||||
|
<p>Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e` ancora molto instabile.</p>
|
||||||
|
<p>Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. <a href="https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate">Questo dibattito fu il soggetto di un'enorme flame war su usenet</a>.</p>
|
||||||
|
<p>Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.</p>
|
||||||
|
<p>Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta` andrebbe chiamato <a href="https://www.gnu.org/gnu/why-gnu-linux.html">GNU/Linux</a>.</p>
|
||||||
|
<h2>Lo stato della cultura hacker oggi</h2>
|
||||||
|
<p>Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu` amatoriale e pratico, rivolto all'exploitation e infine quello piu` ideologico.</p>
|
||||||
|
<p>E` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo` definire tale), specialmente per chi come me non ne ha le competenze benche` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.</p>
|
||||||
|
<p>Nonostante cio` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.</p>
|
||||||
|
<h3>Disobbedienza civile elettronica</h3>
|
||||||
|
<p>Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).</p>
|
||||||
|
<p>Queste due persone e tutto cio` ha permesso loro di raggiungere questa posizione rappresentano <a href="http://www.mantellini.it/2012/08/17/perche-assange-e-internet/">cio` che il potere teme di internet</a>.</p>
|
||||||
|
<p>Inoltre, riguardo i fatti recenti:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
<a href="https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/">Mantellini sul Post</a>.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>I primi due anni ho provato a concentrarmi su queste domande:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>la cultura hacker ha ancora una componente anarchica?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Sono ancora possibili atti come quelli degli attivisti del cypherpunk?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In che ottica possiamo inquadrare le azioni di Assange e Snowden?</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.</p>
|
||||||
|
<p>Prima dell'arrivo di internet e dell'informatica piu` in generale il cuore degli organismi di potere e controllo era facile da individuare.</p>
|
||||||
|
<p>Cosi` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.</p>
|
||||||
|
<p>Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.</p>
|
||||||
|
<p>Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita`.
|
||||||
|
E` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.</p>
|
||||||
|
<p>Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.</p>
|
||||||
|
<p>Questo ad oggi non e` piu` vero, gli edifici benche` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.</p>
|
||||||
|
<p>Cosi` quando nel <a href="https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt">2016</a> i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.</p>
|
||||||
|
<p>Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu` nelle strutture fisiche.</p>
|
||||||
|
<p>Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che a domande come:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Did Facebook deceive its users?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"if I delete my account, how long does Facebook keep my data?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Does Facebook use cross-device tracking?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What data is being sold?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Is facebook censoring specific groups?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What’s Facebook’s reach beyond its website?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"How much information does Facebook have on non-Facebook users?"</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Zuckerberg ha potuto affermare che non conosce la risposta o che puo` chiedere al suo team e rispondere in futuro.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Whether you know it or not, if you are a hacker, you are a revolutionary</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Una volta compreso cio` queste parole di Doctor Crash su <a href="http://phrack.org/issues/6/3.html">phrack</a> appaiono ingenue.</p>
|
||||||
|
<p>Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.</p>
|
||||||
|
<p>Sempre Doctor Crash scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution." </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Questo, complice la cultura hacker, oggi non e` piu` possibile.</p>
|
||||||
|
<h3>Opensource e Free Software</h3>
|
||||||
|
<p>Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.</p>
|
||||||
|
<p>Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e` stato corrotto mediaticamente andando a ricoprire significato di cracker.</p>
|
||||||
|
<p>Stallman nel 2007 gia` ci avvertiva che il software opensource manca l'obbiettivo:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi. </p>
|
||||||
|
<p>L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e` cancro o comunismo.</p>
|
||||||
|
<p>Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.</p>
|
||||||
|
<p>Basta fare un giro su <a href="https://stackshare.io/stacks">stackshare.io</a> per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.</p>
|
||||||
|
<p>Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.</p>
|
||||||
|
<p>Ne sono un esempio gitlab, redislab e elasticsearch.</p>
|
||||||
|
<p>Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<aside class="postpromonav"><nav><h4>Categories</h4>
|
||||||
|
|
||||||
|
<ul itemprop="keywords" class="tags">
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/lecture/" rel="tag">lecture</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/pescewanda/" rel="tag">PesceWanda</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/politecnico/" rel="tag">politecnico</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/polito/" rel="tag">polito</a></li>
|
||||||
|
<li><a class="tag p-category" href="../../../../../categories/rivoluzione-digitale/" rel="tag">Rivoluzione Digitale</a></li>
|
||||||
|
</ul></nav></aside><p class="sourceline"><a href="index.md" class="sourcelink">Source</a></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
||||||
|
<span class="site-footer-credits"><a href="https://getnikola.com">Nikola</a>, <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a>.</span>
|
||||||
|
</footer></section>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
329
output/blog/2019/05/18/cultura-hacker/index.md
Normal file
329
output/blog/2019/05/18/cultura-hacker/index.md
Normal file
|
@ -0,0 +1,329 @@
|
||||||
|
<!--
|
||||||
|
.. title: Breve storia della cultura hacker
|
||||||
|
.. slug: cultura-hacker
|
||||||
|
.. date: 2019-05-18
|
||||||
|
.. tags: lecture,Rivoluzione Digitale,PesceWanda,polito,politecnico
|
||||||
|
.. category: PesceWanda
|
||||||
|
.. link:
|
||||||
|
.. description:
|
||||||
|
.. type: text
|
||||||
|
-->
|
||||||
|
|
||||||
|
Questo e\` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso [Rivoluzione Digitale](http://rivoluzionedigitale.polito.it/).
|
||||||
|
|
||||||
|
# Scopo della lezione
|
||||||
|
|
||||||
|
Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e\` alle radici dell'informatica come scienza e come strumento di cultura di massa.
|
||||||
|
|
||||||
|
# Jargon File
|
||||||
|
|
||||||
|
Cosi\` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita\` iniziarono a raccogliere gli slang piu\` utilizzati e le storie legate a questi modi di esprimersi.
|
||||||
|
|
||||||
|
Con l'espandersi della comunita\` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo [Eric S. Raymond](https://en.wikipedia.org/wiki/Eric_S._Raymond) compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.
|
||||||
|
|
||||||
|
[ESR](http://catdb.org/esr) scrive:
|
||||||
|
> Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways.
|
||||||
|
|
||||||
|
Esempi di slang e trasformazioni del lessico:
|
||||||
|
|
||||||
|
* Data General -> Dirty Genitals
|
||||||
|
|
||||||
|
* IBM 360 -> IBM Three-Sickly
|
||||||
|
|
||||||
|
* Government Property -- Do Not Duplicate (on keys) -> Government Duplicity -- Do Not Propagate
|
||||||
|
|
||||||
|
* for historical reasons -> for hysterical raisins
|
||||||
|
|
||||||
|
* Margaret Jacks Hall (the CS building at Stanford) -> Marginal Hacks Hall
|
||||||
|
|
||||||
|
* Microsoft -> Microsloth
|
||||||
|
|
||||||
|
* Internet Explorer -> Internet Exploiter
|
||||||
|
|
||||||
|
* Microsoft Outlook -> Microsoft Outhouse
|
||||||
|
|
||||||
|
* Linux -> Linsux
|
||||||
|
|
||||||
|
* FreeBSD -> FreeLSD
|
||||||
|
|
||||||
|
* C# -> C Flat
|
||||||
|
|
||||||
|
* Piu\` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano `true` `false`)
|
||||||
|
|
||||||
|
## Definizione della parola hacker
|
||||||
|
|
||||||
|
![Definition of hacker](/wp-content/uploads/2019/def_hacker.jpg)
|
||||||
|
|
||||||
|
Come si evince dall'immagine il significato della parola hacker nel gergo comune si e\` via via svuotato per poi andare a sostituire quello del termine cracker.
|
||||||
|
|
||||||
|
Un cracker e\` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu\` nobili.
|
||||||
|
|
||||||
|
Del termine hacker abbiamo piu\` definizioni, alcune indifferenti all'uso di sistemi informatici:
|
||||||
|
|
||||||
|
1. Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili
|
||||||
|
|
||||||
|
2. una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica
|
||||||
|
|
||||||
|
3. una persona capace di programmare celermente e con precisione
|
||||||
|
|
||||||
|
4. un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker
|
||||||
|
|
||||||
|
5. una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa
|
||||||
|
|
||||||
|
A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e\` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e\` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.
|
||||||
|
|
||||||
|
|
||||||
|
# Chiave di lettura
|
||||||
|
|
||||||
|
Nella storia della cultura hacker si possono distinguere tre tipi di persone:
|
||||||
|
|
||||||
|
* i poeti e matematici, come Donald Knuth
|
||||||
|
|
||||||
|
* gli esperti di determinate tipologie di hardware o software, come Bruce Schneier
|
||||||
|
|
||||||
|
* i makers, coloro che costruiscono cio\` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita\` di cui parleremo rientrano in piu\` di una di queste categoria. In tutti i casi e\` importante capire che sono tre approcci complementari.
|
||||||
|
|
||||||
|
# Storia
|
||||||
|
|
||||||
|
## In the beginning there were the real programmers
|
||||||
|
|
||||||
|
La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.
|
||||||
|
|
||||||
|
Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.
|
||||||
|
|
||||||
|
Fra i piu\` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono\` al primo avvio.
|
||||||
|
|
||||||
|
Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.
|
||||||
|
|
||||||
|
Qua parte il primo filone della storia della cultura hacker, quello universitario.
|
||||||
|
|
||||||
|
|
||||||
|
### I primi hacker, la tribu\` connessa
|
||||||
|
|
||||||
|
Rimanendo all'interno delle universita\` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.
|
||||||
|
|
||||||
|
Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).
|
||||||
|
|
||||||
|
Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita\` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu\` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.
|
||||||
|
|
||||||
|
Questo e\` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.
|
||||||
|
|
||||||
|
Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita\` e laboratori di ricerca.
|
||||||
|
|
||||||
|
Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu\` ampia di entusiasti.
|
||||||
|
|
||||||
|
Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.
|
||||||
|
|
||||||
|
### La nascita di Unix
|
||||||
|
|
||||||
|
Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.
|
||||||
|
|
||||||
|
All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e\` stata quella di fornire un'interfaccia unificata e le stesse funzionalita\` su macchine diverse.
|
||||||
|
|
||||||
|
Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento\` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita\` fra macchine diverse.
|
||||||
|
|
||||||
|
C e\` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e\` rimasta viva nei suoi discendenti.
|
||||||
|
|
||||||
|
## Freak + Phone = Phreaking
|
||||||
|
|
||||||
|
Il reverse engineering e\` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.
|
||||||
|
|
||||||
|
I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.
|
||||||
|
|
||||||
|
Il piu\` celebre fra questi e\` John Draper che scopri\` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.
|
||||||
|
|
||||||
|
Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.
|
||||||
|
|
||||||
|
## Digressione: Anarco Illuminismo
|
||||||
|
|
||||||
|
La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se\` ideali di due ideologie differenti.
|
||||||
|
|
||||||
|
Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.
|
||||||
|
|
||||||
|
Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.
|
||||||
|
|
||||||
|
Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.
|
||||||
|
|
||||||
|
Nonostante cio\` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.
|
||||||
|
|
||||||
|
## L'era del software proprietario
|
||||||
|
|
||||||
|
Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:
|
||||||
|
|
||||||
|
* il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup
|
||||||
|
|
||||||
|
* il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati
|
||||||
|
|
||||||
|
* una serie meno organizzata di gruppetti piu\` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente
|
||||||
|
|
||||||
|
Nel frattempo iniziavano a diventare piu\` comuni le prime macchine prodotte da Apple e Microsoft. In realta\` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.
|
||||||
|
|
||||||
|
La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.
|
||||||
|
|
||||||
|
Nel 1983 DEC annuncio\` la fine della linea dei PDP, definendo cosi\` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.
|
||||||
|
|
||||||
|
L'hackerdom vide la possibilita\` che uno dei suoi piu\` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.
|
||||||
|
|
||||||
|
Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita\` delle sue implementazioni, ma AT&T vinse molte battaglie legali appropriandosi di vari standard.
|
||||||
|
|
||||||
|
|
||||||
|
## Verso una prima ideologia hacker
|
||||||
|
|
||||||
|
In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita\` sarebbe sparito lentamente.
|
||||||
|
|
||||||
|
Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu\` severo (benche\` non sia paragonabile alla copertura che tali eventi hanno oggi).
|
||||||
|
|
||||||
|
La soluzione proposta risiede nella congiunzione di tre idee:
|
||||||
|
|
||||||
|
* decentralizzazione
|
||||||
|
|
||||||
|
* crittografia
|
||||||
|
|
||||||
|
* software libero
|
||||||
|
|
||||||
|
### Decentralizzazione
|
||||||
|
|
||||||
|
La decentralizzazione e\` il processo in cui un'attivita\` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.
|
||||||
|
|
||||||
|
L'assunto alla base e\` il principio Manzoniano per cui una persona che detiene il potere si ritrovera\` prima o poi costretta a compiere decisioni non etiche. La soluzione e\` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.
|
||||||
|
|
||||||
|
Un'esempio di decentralizzazione e\` l'architettura di internet, almeno nelle sue prime forme, dove non c'e\` un'autorita\` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu\` attuale e\` la rete Bittorrent.
|
||||||
|
|
||||||
|
### Crittografia
|
||||||
|
|
||||||
|
Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.
|
||||||
|
|
||||||
|
Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.
|
||||||
|
|
||||||
|
L'idea alla base (Cypherpunk's Manifesto) e\` che la privacy e\` necessaria per poter costituire una societa\` aperta nell'era dell'informazione; non c'e\` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.
|
||||||
|
|
||||||
|
Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.
|
||||||
|
|
||||||
|
### Software Libero
|
||||||
|
|
||||||
|
Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.
|
||||||
|
|
||||||
|
Quando nel 1980 la stampante fu sostituita Xerox si rifiuto\` di concedere a Stallman le facolta\` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.
|
||||||
|
|
||||||
|
Nel 1984 Stallman si licenzio\` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta\` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto\` subito l'interesse della comunita\`.
|
||||||
|
|
||||||
|
Il progetto GNU e\` una collezione di software di qualsiasi tipo che rispetti le liberta\` garantite dalla licensa [GPL](https://en.wikipedia.org/wiki/GNU_General_Public_License); fra questi i piu\` famosi sono [GCC](https://gcc.gnu.org/), [emacs](https://www.gnu.org/software/emacs/), [Octave](https://www.gnu.org/software/octave/), [R](https://www.r-project.org/) ma anche software di attivismo, gestione delle finanze e tant'altro.
|
||||||
|
|
||||||
|
Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e\` ancora molto instabile.
|
||||||
|
|
||||||
|
Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio\` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. [Questo dibattito fu il soggetto di un'enorme flame war su usenet](https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate).
|
||||||
|
|
||||||
|
Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.
|
||||||
|
|
||||||
|
Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta\` andrebbe chiamato [GNU/Linux](https://www.gnu.org/gnu/why-gnu-linux.html).
|
||||||
|
|
||||||
|
|
||||||
|
# Lo stato della cultura hacker oggi
|
||||||
|
|
||||||
|
Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu\` amatoriale e pratico, rivolto all'exploitation e infine quello piu\` ideologico.
|
||||||
|
|
||||||
|
E\` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo\` definire tale), specialmente per chi come me non ne ha le competenze benche\` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.
|
||||||
|
|
||||||
|
Nonostante cio\` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.
|
||||||
|
|
||||||
|
## Disobbedienza civile elettronica
|
||||||
|
|
||||||
|
Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).
|
||||||
|
|
||||||
|
Queste due persone e tutto cio\` ha permesso loro di raggiungere questa posizione rappresentano [cio\` che il potere teme di internet](http://www.mantellini.it/2012/08/17/perche-assange-e-internet/).
|
||||||
|
|
||||||
|
Inoltre, riguardo i fatti recenti:
|
||||||
|
> A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
> [Mantellini sul Post](https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/).
|
||||||
|
|
||||||
|
I primi due anni ho provato a concentrarmi su queste domande:
|
||||||
|
|
||||||
|
* la cultura hacker ha ancora una componente anarchica?
|
||||||
|
|
||||||
|
* Sono ancora possibili atti come quelli degli attivisti del cypherpunk?
|
||||||
|
|
||||||
|
* In che ottica possiamo inquadrare le azioni di Assange e Snowden?
|
||||||
|
|
||||||
|
Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.
|
||||||
|
|
||||||
|
Prima dell'arrivo di internet e dell'informatica piu\` in generale il cuore degli organismi di potere e controllo era facile da individuare.
|
||||||
|
|
||||||
|
Cosi\` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.
|
||||||
|
|
||||||
|
Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.
|
||||||
|
|
||||||
|
Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita\`.
|
||||||
|
E\` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.
|
||||||
|
|
||||||
|
Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.
|
||||||
|
|
||||||
|
Questo ad oggi non e\` piu\` vero, gli edifici benche\` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.
|
||||||
|
|
||||||
|
Cosi\` quando nel [2016](https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt) i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci\` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.
|
||||||
|
|
||||||
|
Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu\` nelle strutture fisiche.
|
||||||
|
|
||||||
|
Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu\` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.
|
||||||
|
|
||||||
|
Questo ce lo dimostra il fatto che a domande come:
|
||||||
|
|
||||||
|
- "Did Facebook deceive its users?"
|
||||||
|
|
||||||
|
- "if I delete my account, how long does Facebook keep my data?"
|
||||||
|
|
||||||
|
- "Does Facebook use cross-device tracking?"
|
||||||
|
|
||||||
|
- "What data is being sold?"
|
||||||
|
|
||||||
|
- "Is facebook censoring specific groups?"
|
||||||
|
|
||||||
|
- "What’s Facebook’s reach beyond its website?"
|
||||||
|
|
||||||
|
- "How much information does Facebook have on non-Facebook users?"
|
||||||
|
|
||||||
|
Zuckerberg ha potuto affermare che non conosce la risposta o che puo\` chiedere al suo team e rispondere in futuro.
|
||||||
|
|
||||||
|
> Whether you know it or not, if you are a hacker, you are a revolutionary
|
||||||
|
|
||||||
|
Una volta compreso cio\` queste parole di Doctor Crash su [phrack](http://phrack.org/issues/6/3.html) appaiono ingenue.
|
||||||
|
|
||||||
|
Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.
|
||||||
|
|
||||||
|
Sempre Doctor Crash scrive:
|
||||||
|
> There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution."
|
||||||
|
|
||||||
|
Questo, complice la cultura hacker, oggi non e\` piu\` possibile.
|
||||||
|
|
||||||
|
|
||||||
|
## Opensource e Free Software
|
||||||
|
|
||||||
|
Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.
|
||||||
|
|
||||||
|
Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e\` stato corrotto mediaticamente andando a ricoprire significato di cracker.
|
||||||
|
|
||||||
|
Stallman nel 2007 gia\` ci avvertiva che il software opensource manca l'obbiettivo:
|
||||||
|
|
||||||
|
> I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi.
|
||||||
|
>
|
||||||
|
> L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità.
|
||||||
|
|
||||||
|
Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e\` cancro o comunismo.
|
||||||
|
|
||||||
|
Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.
|
||||||
|
|
||||||
|
Basta fare un giro su [stackshare.io](https://stackshare.io/stacks) per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.
|
||||||
|
|
||||||
|
Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.
|
||||||
|
|
||||||
|
Ne sono un esempio gitlab, redislab e elasticsearch.
|
||||||
|
|
||||||
|
Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.
|
||||||
|
|
||||||
|
Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta\` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.
|
|
@ -1,5 +1,263 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about PesceWanda)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/cat_pescewanda.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:42:17 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about PesceWanda)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/cat_pescewanda.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sat, 18 May 2019 21:11:19 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Breve storia della cultura hacker</title><link>francescomecca.eu/blog/2019/05/18/cultura-hacker/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso <a href="http://rivoluzionedigitale.polito.it/">Rivoluzione Digitale</a>.</p>
|
||||||
|
<h2>Scopo della lezione</h2>
|
||||||
|
<p>Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e` alle radici dell'informatica come scienza e come strumento di cultura di massa.</p>
|
||||||
|
<h2>Jargon File</h2>
|
||||||
|
<p>Cosi` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita` iniziarono a raccogliere gli slang piu` utilizzati e le storie legate a questi modi di esprimersi.</p>
|
||||||
|
<p>Con l'espandersi della comunita` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.</p>
|
||||||
|
<p><a href="http://catdb.org/esr">ESR</a> scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Esempi di slang e trasformazioni del lessico:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Data General -&gt; Dirty Genitals</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>IBM 360 -&gt; IBM Three-Sickly</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Government Property -- Do Not Duplicate (on keys) -&gt; Government Duplicity -- Do Not Propagate</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>for historical reasons -&gt; for hysterical raisins</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Margaret Jacks Hall (the CS building at Stanford) -&gt; Marginal Hacks Hall</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft -&gt; Microsloth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Internet Explorer -&gt; Internet Exploiter</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft Outlook -&gt; Microsoft Outhouse</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Linux -&gt; Linsux</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>FreeBSD -&gt; FreeLSD</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>C# -&gt; C Flat</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Piu` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano <code>true</code> <code>false</code>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Definizione della parola hacker</h3>
|
||||||
|
<p><img alt="Definition of hacker" src="francescomecca.eu/wp-content/uploads/2019/def_hacker.jpg"></p>
|
||||||
|
<p>Come si evince dall'immagine il significato della parola hacker nel gergo comune si e` via via svuotato per poi andare a sostituire quello del termine cracker.</p>
|
||||||
|
<p>Un cracker e` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu` nobili.</p>
|
||||||
|
<p>Del termine hacker abbiamo piu` definizioni, alcune indifferenti all'uso di sistemi informatici:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona capace di programmare celermente e con precisione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.</p>
|
||||||
|
<h2>Chiave di lettura</h2>
|
||||||
|
<p>Nella storia della cultura hacker si possono distinguere tre tipi di persone:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>i poeti e matematici, come Donald Knuth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>gli esperti di determinate tipologie di hardware o software, come Bruce Schneier</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>i makers, coloro che costruiscono cio` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita` di cui parleremo rientrano in piu` di una di queste categoria. In tutti i casi e` importante capire che sono tre approcci complementari.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Storia</h2>
|
||||||
|
<h3>In the beginning there were the real programmers</h3>
|
||||||
|
<p>La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.</p>
|
||||||
|
<p>Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.</p>
|
||||||
|
<p>Fra i piu` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono` al primo avvio.</p>
|
||||||
|
<p>Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.</p>
|
||||||
|
<p>Qua parte il primo filone della storia della cultura hacker, quello universitario.</p>
|
||||||
|
<h4>I primi hacker, la tribu` connessa</h4>
|
||||||
|
<p>Rimanendo all'interno delle universita` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.</p>
|
||||||
|
<p>Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).</p>
|
||||||
|
<p>Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.</p>
|
||||||
|
<p>Questo e` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.</p>
|
||||||
|
<p>Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita` e laboratori di ricerca.</p>
|
||||||
|
<p>Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu` ampia di entusiasti.</p>
|
||||||
|
<p>Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.</p>
|
||||||
|
<h4>La nascita di Unix</h4>
|
||||||
|
<p>Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.</p>
|
||||||
|
<p>All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e` stata quella di fornire un'interfaccia unificata e le stesse funzionalita` su macchine diverse.</p>
|
||||||
|
<p>Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita` fra macchine diverse.</p>
|
||||||
|
<p>C e` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e` rimasta viva nei suoi discendenti.</p>
|
||||||
|
<h3>Freak + Phone = Phreaking</h3>
|
||||||
|
<p>Il reverse engineering e` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.</p>
|
||||||
|
<p>I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.</p>
|
||||||
|
<p>Il piu` celebre fra questi e` John Draper che scopri` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.</p>
|
||||||
|
<p>Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.</p>
|
||||||
|
<h3>Digressione: Anarco Illuminismo</h3>
|
||||||
|
<p>La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se` ideali di due ideologie differenti.</p>
|
||||||
|
<p>Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.</p>
|
||||||
|
<p>Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.</p>
|
||||||
|
<p>Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.</p>
|
||||||
|
<p>Nonostante cio` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.</p>
|
||||||
|
<h3>L'era del software proprietario</h3>
|
||||||
|
<p>Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una serie meno organizzata di gruppetti piu` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Nel frattempo iniziavano a diventare piu` comuni le prime macchine prodotte da Apple e Microsoft. In realta` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.</p>
|
||||||
|
<p>La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.</p>
|
||||||
|
<p>Nel 1983 DEC annuncio` la fine della linea dei PDP, definendo cosi` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&amp;T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.</p>
|
||||||
|
<p>L'hackerdom vide la possibilita` che uno dei suoi piu` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.</p>
|
||||||
|
<p>Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&amp;T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita` delle sue implementazioni, ma AT&amp;T vinse molte battaglie legali appropriandosi di vari standard.</p>
|
||||||
|
<h3>Verso una prima ideologia hacker</h3>
|
||||||
|
<p>In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita` sarebbe sparito lentamente.</p>
|
||||||
|
<p>Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu` severo (benche` non sia paragonabile alla copertura che tali eventi hanno oggi).</p>
|
||||||
|
<p>La soluzione proposta risiede nella congiunzione di tre idee:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>decentralizzazione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>crittografia</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>software libero</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Decentralizzazione</h4>
|
||||||
|
<p>La decentralizzazione e` il processo in cui un'attivita` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.</p>
|
||||||
|
<p>L'assunto alla base e` il principio Manzoniano per cui una persona che detiene il potere si ritrovera` prima o poi costretta a compiere decisioni non etiche. La soluzione e` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.</p>
|
||||||
|
<p>Un'esempio di decentralizzazione e` l'architettura di internet, almeno nelle sue prime forme, dove non c'e` un'autorita` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu` attuale e` la rete Bittorrent.</p>
|
||||||
|
<h4>Crittografia</h4>
|
||||||
|
<p>Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.</p>
|
||||||
|
<p>Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.</p>
|
||||||
|
<p>L'idea alla base (Cypherpunk's Manifesto) e` che la privacy e` necessaria per poter costituire una societa` aperta nell'era dell'informazione; non c'e` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.</p>
|
||||||
|
<p>Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.</p>
|
||||||
|
<h4>Software Libero</h4>
|
||||||
|
<p>Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.</p>
|
||||||
|
<p>Quando nel 1980 la stampante fu sostituita Xerox si rifiuto` di concedere a Stallman le facolta` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.</p>
|
||||||
|
<p>Nel 1984 Stallman si licenzio` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto` subito l'interesse della comunita`.</p>
|
||||||
|
<p>Il progetto GNU e` una collezione di software di qualsiasi tipo che rispetti le liberta` garantite dalla licensa <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>; fra questi i piu` famosi sono <a href="https://gcc.gnu.org/">GCC</a>, <a href="https://www.gnu.org/software/emacs/">emacs</a>, <a href="https://www.gnu.org/software/octave/">Octave</a>, <a href="https://www.r-project.org/">R</a> ma anche software di attivismo, gestione delle finanze e tant'altro.</p>
|
||||||
|
<p>Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e` ancora molto instabile.</p>
|
||||||
|
<p>Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. <a href="https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate">Questo dibattito fu il soggetto di un'enorme flame war su usenet</a>.</p>
|
||||||
|
<p>Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.</p>
|
||||||
|
<p>Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta` andrebbe chiamato <a href="https://www.gnu.org/gnu/why-gnu-linux.html">GNU/Linux</a>.</p>
|
||||||
|
<h2>Lo stato della cultura hacker oggi</h2>
|
||||||
|
<p>Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu` amatoriale e pratico, rivolto all'exploitation e infine quello piu` ideologico.</p>
|
||||||
|
<p>E` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo` definire tale), specialmente per chi come me non ne ha le competenze benche` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.</p>
|
||||||
|
<p>Nonostante cio` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.</p>
|
||||||
|
<h3>Disobbedienza civile elettronica</h3>
|
||||||
|
<p>Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).</p>
|
||||||
|
<p>Queste due persone e tutto cio` ha permesso loro di raggiungere questa posizione rappresentano <a href="http://www.mantellini.it/2012/08/17/perche-assange-e-internet/">cio` che il potere teme di internet</a>.</p>
|
||||||
|
<p>Inoltre, riguardo i fatti recenti:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
<a href="https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/">Mantellini sul Post</a>.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>I primi due anni ho provato a concentrarmi su queste domande:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>la cultura hacker ha ancora una componente anarchica?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Sono ancora possibili atti come quelli degli attivisti del cypherpunk?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In che ottica possiamo inquadrare le azioni di Assange e Snowden?</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.</p>
|
||||||
|
<p>Prima dell'arrivo di internet e dell'informatica piu` in generale il cuore degli organismi di potere e controllo era facile da individuare.</p>
|
||||||
|
<p>Cosi` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.</p>
|
||||||
|
<p>Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.</p>
|
||||||
|
<p>Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita`.
|
||||||
|
E` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.</p>
|
||||||
|
<p>Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.</p>
|
||||||
|
<p>Questo ad oggi non e` piu` vero, gli edifici benche` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.</p>
|
||||||
|
<p>Cosi` quando nel <a href="https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt">2016</a> i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.</p>
|
||||||
|
<p>Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu` nelle strutture fisiche.</p>
|
||||||
|
<p>Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che a domande come:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Did Facebook deceive its users?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"if I delete my account, how long does Facebook keep my data?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Does Facebook use cross-device tracking?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What data is being sold?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Is facebook censoring specific groups?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What’s Facebook’s reach beyond its website?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"How much information does Facebook have on non-Facebook users?"</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Zuckerberg ha potuto affermare che non conosce la risposta o che puo` chiedere al suo team e rispondere in futuro.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Whether you know it or not, if you are a hacker, you are a revolutionary</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Una volta compreso cio` queste parole di Doctor Crash su <a href="http://phrack.org/issues/6/3.html">phrack</a> appaiono ingenue.</p>
|
||||||
|
<p>Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.</p>
|
||||||
|
<p>Sempre Doctor Crash scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution." </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Questo, complice la cultura hacker, oggi non e` piu` possibile.</p>
|
||||||
|
<h3>Opensource e Free Software</h3>
|
||||||
|
<p>Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.</p>
|
||||||
|
<p>Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e` stato corrotto mediaticamente andando a ricoprire significato di cracker.</p>
|
||||||
|
<p>Stallman nel 2007 gia` ci avvertiva che il software opensource manca l'obbiettivo:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi. </p>
|
||||||
|
<p>L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e` cancro o comunismo.</p>
|
||||||
|
<p>Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.</p>
|
||||||
|
<p>Basta fare un giro su <a href="https://stackshare.io/stacks">stackshare.io</a> per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.</p>
|
||||||
|
<p>Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.</p>
|
||||||
|
<p>Ne sono un esempio gitlab, redislab e elasticsearch.</p>
|
||||||
|
<p>Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.</p></div></description><category>lecture</category><category>PesceWanda</category><category>politecnico</category><category>polito</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2019/05/18/cultura-hacker/</guid><pubDate>Sat, 18 May 2019 00:00:00 GMT</pubDate></item><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
||||||
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
||||||
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
||||||
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
||||||
|
@ -637,26 +895,4 @@ Attraverso la dissipazione l'opera, che fissata nel momento aveva acquisito una
|
||||||
<p>Poi sono arrivate le cache, <a href="francescomecca.eu/blog/2017/3/7/spazio-digitale-rant-facebook/archive.org">Wayback Machine</a>, Reddit, e sembra che i contenuti non scompaiano più.</p>
|
<p>Poi sono arrivate le cache, <a href="francescomecca.eu/blog/2017/3/7/spazio-digitale-rant-facebook/archive.org">Wayback Machine</a>, Reddit, e sembra che i contenuti non scompaiano più.</p>
|
||||||
<p>Eppure mi ci é voluto un po' per capire che questa non é memoria, solo una forma nobile di accanimento.</p>
|
<p>Eppure mi ci é voluto un po' per capire che questa non é memoria, solo una forma nobile di accanimento.</p>
|
||||||
<p>Piace ai nostalgici, agli archivisti. </p>
|
<p>Piace ai nostalgici, agli archivisti. </p>
|
||||||
<p>Spaventa a chi di Internet non vuole farsene una ragione.</p></div></description><category>community</category><category>Facebook</category><category>feudalesimo</category><category>PesceWanda</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2017/3/7/spazio-digitale-rant-facebook/</guid><pubDate>Tue, 07 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Capire il Machine Learning (parte 3)</title><link>francescomecca.eu/blog/2016/11/15/machine-learning-parte3/</link><dc:creator>Francesco Mecca</dc:creator><description><div><h3>Riconoscimento delle immagini</h3>
|
<p>Spaventa a chi di Internet non vuole farsene una ragione.</p></div></description><category>community</category><category>Facebook</category><category>feudalesimo</category><category>PesceWanda</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2017/3/7/spazio-digitale-rant-facebook/</guid><pubDate>Tue, 07 Mar 2017 00:00:00 GMT</pubDate></item></channel></rss>
|
||||||
<p>Il machine learning viene utilizzato anche per il riconoscimento delle immagini.
|
|
||||||
La tipologia di rete neurale utilizzata per questa applicazione è chiamata rete neural a convoluzione ( <strong>convolutional neural networks</strong>), abbreviata CNN.</p>
|
|
||||||
<p>Innanzitutto consideriamo che ogni immagine può essere codificata come una matrice di valori</p>
|
|
||||||
<p><img alt="pixel" src="francescomecca.eu/wp-content/uploads/2016/8.jpg"></p>
|
|
||||||
<p>Vediamo ora quali sono le operazioni compiute da una <strong>CNN</strong> per riconoscere delle immagini.</p>
|
|
||||||
<h5>Convoluzione</h5>
|
|
||||||
<p>Durante la fase di apprendimento, la rete neurale analizza moltissime immagini (categorizzate) utilizzando dei "filtri", ovvero delle funzioni che mescolate all'input originale permettono di evidenziare dei pattern nell'immagine.
|
|
||||||
Questi pattern corrispondono alle caratteristiche proprie di un oggetto (quali possono essere ad esempio per un uccello il becco, le piume, le ali) e nel caso queste sono presenti, possiamo riconoscere l'immagine.</p>
|
|
||||||
<p>In questo esempio l'immagine di Wally é mescolata (l'operazione si chiama <strong>convoluzione</strong>) con un filtro "a cerchio" che risponde molto bene a caratteristiche come quella di possedere degli occhi.</p>
|
|
||||||
<p><img alt="waldoblue" src="francescomecca.eu/wp-content/uploads/2016/bluefilter.png"></p>
|
|
||||||
<p>La <strong>convoluzione</strong> é un'operazione che ha la proprietà di essere indipendente dalla posizione. Non importa la posizione degli occhi, quando applichiamo la <strong>convoluzione</strong> su un'immagine con un filtro "a cerchio" notiamo che gli occhi sono presenti.</p>
|
|
||||||
<h5>Subsampling</h5>
|
|
||||||
<p>Ogni segnale contiene del "rumore", ovvero degli elementi che la allontanano dal comportamento ideale. </p>
|
|
||||||
<p><img alt="ideal" src="francescomecca.eu/wp-content/uploads/2016/ideal.jpg"></p>
|
|
||||||
<p><img alt="real" src="francescomecca.eu/wp-content/uploads/2016/real.jpg"></p>
|
|
||||||
<p>Attraverso il subsampling possiamo ridurre il rumore e rendere il nostro algoritmo meno suscettibile a queste piccole variazioni; benché l'immagine abbia una risoluzione minore, i pattern rimangono.</p>
|
|
||||||
<p><img alt="waldosub" src="francescomecca.eu/wp-content/uploads/2016/sub.png"></p>
|
|
||||||
<h5>Connessione completa</h5>
|
|
||||||
<p>Alla fine dell'analisi tutte le caratteristiche estrapolate vengono considerate nell'insieme e in questo modo possiamo capire a quale categoria appartiene l'immagine.</p>
|
|
||||||
<p>Questo procedimento a livello algoritmo si esplicita con una connessione completa fra tutti i nodi della rete neurale che possono poi restituire l'output (probabilità che l'immagine appartenga ad una determinata categoria).</p>
|
|
||||||
<h5>Fase di rinforzo</h5>
|
|
||||||
<p>Durante il training é presente un'ultima fase (o strato), chiamato più propriamente <strong>loss layer</strong>. Questo strato provvede a dare un <strong>feedback</strong> alla rete neurale analizzando l'output in relazione ai dati di partenza (ovvero le immagini già categorizzate).</p></div></description><category>AI</category><category>algoritmi genetici</category><category>Genetic algorithm</category><category>Neural networks</category><category>PesceWanda</category><category>programming</category><category>reti neurali</category><guid>francescomecca.eu/blog/2016/11/15/machine-learning-parte3/</guid><pubDate>Tue, 15 Nov 2016 00:00:00 GMT</pubDate></item></channel></rss>
|
|
|
@ -42,6 +42,9 @@
|
||||||
|
|
||||||
</header><ul class="postlist">
|
</header><ul class="postlist">
|
||||||
<li>
|
<li>
|
||||||
|
<time class="listdate" datetime="2019-05-18T00:00:00Z" title="2019-05-18 00:00">2019-05-18 00:00</time><a href="../../blog/2019/05/18/cultura-hacker/" class="listtitle">Breve storia della cultura hacker</a><a></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
<time class="listdate" datetime="2019-03-06T00:00:00Z" title="2019-03-06 00:00">2019-03-06 00:00</time><a href="../../blog/2019/03/06/Dconf-2019/" class="listtitle">Dconf 2019</a><a></a>
|
<time class="listdate" datetime="2019-03-06T00:00:00Z" title="2019-03-06 00:00">2019-03-06 00:00</time><a href="../../blog/2019/03/06/Dconf-2019/" class="listtitle">Dconf 2019</a><a></a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about Conference)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/conference.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:42:17 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about Conference)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/conference.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:40:47 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
||||||
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
||||||
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
||||||
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item></channel></rss>
|
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item></channel></rss>
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about DConf)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/dconf.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:42:17 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about DConf)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/dconf.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:40:47 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
||||||
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
||||||
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
||||||
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item></channel></rss>
|
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item></channel></rss>
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about dlang)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/dlang.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:42:17 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about dlang)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/dlang.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:41:16 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
||||||
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
||||||
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
||||||
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Un articolo per r/italyinformatica</title><link>francescomecca.eu/blog/2018/07/27/addio-reddit/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo articolo è stato originalmente scritto per il <a href="https://tldr.italyinformatica.org">blog</a> di <a href="https://reddit.com/r/italyinformatica">r/italyinformatica</a>.</p>
|
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Un articolo per r/italyinformatica</title><link>francescomecca.eu/blog/2018/07/27/addio-reddit/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo articolo è stato originalmente scritto per il <a href="https://tldr.italyinformatica.org">blog</a> di <a href="https://reddit.com/r/italyinformatica">r/italyinformatica</a>.</p>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about education)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/education.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:31:59 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about education)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/education.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:40:46 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
||||||
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
||||||
<h2>In the beginning there was the LMS</h2>
|
<h2>In the beginning there was the LMS</h2>
|
||||||
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about elearning)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/elearning.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:31:59 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about elearning)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/elearning.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:40:47 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
||||||
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
||||||
<h2>In the beginning there was the LMS</h2>
|
<h2>In the beginning there was the LMS</h2>
|
||||||
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about Facebook)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/facebook.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:31:59 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about Facebook)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/facebook.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:40:47 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
||||||
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
||||||
<h2>In the beginning there was the LMS</h2>
|
<h2>In the beginning there was the LMS</h2>
|
||||||
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
||||||
|
|
|
@ -115,6 +115,7 @@
|
||||||
<li><a class="reference listtitle" href="instant-messaging/">instant messaging</a></li>
|
<li><a class="reference listtitle" href="instant-messaging/">instant messaging</a></li>
|
||||||
<li><a class="reference listtitle" href="intelligenze-artificiali/">Intelligenze artificiali</a></li>
|
<li><a class="reference listtitle" href="intelligenze-artificiali/">Intelligenze artificiali</a></li>
|
||||||
<li><a class="reference listtitle" href="jekyll/">jekyll</a></li>
|
<li><a class="reference listtitle" href="jekyll/">jekyll</a></li>
|
||||||
|
<li><a class="reference listtitle" href="lecture/">lecture</a></li>
|
||||||
<li><a class="reference listtitle" href="leibniz/">Leibniz</a></li>
|
<li><a class="reference listtitle" href="leibniz/">Leibniz</a></li>
|
||||||
<li><a class="reference listtitle" href="lifehacks/">lifehacks</a></li>
|
<li><a class="reference listtitle" href="lifehacks/">lifehacks</a></li>
|
||||||
<li><a class="reference listtitle" href="linux/">linux</a></li>
|
<li><a class="reference listtitle" href="linux/">linux</a></li>
|
||||||
|
@ -140,6 +141,8 @@
|
||||||
<li><a class="reference listtitle" href="perl/">perl</a></li>
|
<li><a class="reference listtitle" href="perl/">perl</a></li>
|
||||||
<li><a class="reference listtitle" href="perl-core/">perl-core</a></li>
|
<li><a class="reference listtitle" href="perl-core/">perl-core</a></li>
|
||||||
<li><a class="reference listtitle" href="pescewanda/">PesceWanda</a></li>
|
<li><a class="reference listtitle" href="pescewanda/">PesceWanda</a></li>
|
||||||
|
<li><a class="reference listtitle" href="politecnico/">politecnico</a></li>
|
||||||
|
<li><a class="reference listtitle" href="polito/">polito</a></li>
|
||||||
<li><a class="reference listtitle" href="poll/">poll()</a></li>
|
<li><a class="reference listtitle" href="poll/">poll()</a></li>
|
||||||
<li><a class="reference listtitle" href="pollh/">poll.h</a></li>
|
<li><a class="reference listtitle" href="pollh/">poll.h</a></li>
|
||||||
<li><a class="reference listtitle" href="polli-digitali/">polli digitali</a></li>
|
<li><a class="reference listtitle" href="polli-digitali/">polli digitali</a></li>
|
||||||
|
|
260
output/categories/lecture.xml
Normal file
260
output/categories/lecture.xml
Normal file
|
@ -0,0 +1,260 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about lecture)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/lecture.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sat, 18 May 2019 21:11:19 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Breve storia della cultura hacker</title><link>francescomecca.eu/blog/2019/05/18/cultura-hacker/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso <a href="http://rivoluzionedigitale.polito.it/">Rivoluzione Digitale</a>.</p>
|
||||||
|
<h2>Scopo della lezione</h2>
|
||||||
|
<p>Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e` alle radici dell'informatica come scienza e come strumento di cultura di massa.</p>
|
||||||
|
<h2>Jargon File</h2>
|
||||||
|
<p>Cosi` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita` iniziarono a raccogliere gli slang piu` utilizzati e le storie legate a questi modi di esprimersi.</p>
|
||||||
|
<p>Con l'espandersi della comunita` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.</p>
|
||||||
|
<p><a href="http://catdb.org/esr">ESR</a> scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Esempi di slang e trasformazioni del lessico:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Data General -&gt; Dirty Genitals</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>IBM 360 -&gt; IBM Three-Sickly</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Government Property -- Do Not Duplicate (on keys) -&gt; Government Duplicity -- Do Not Propagate</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>for historical reasons -&gt; for hysterical raisins</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Margaret Jacks Hall (the CS building at Stanford) -&gt; Marginal Hacks Hall</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft -&gt; Microsloth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Internet Explorer -&gt; Internet Exploiter</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft Outlook -&gt; Microsoft Outhouse</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Linux -&gt; Linsux</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>FreeBSD -&gt; FreeLSD</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>C# -&gt; C Flat</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Piu` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano <code>true</code> <code>false</code>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Definizione della parola hacker</h3>
|
||||||
|
<p><img alt="Definition of hacker" src="francescomecca.eu/wp-content/uploads/2019/def_hacker.jpg"></p>
|
||||||
|
<p>Come si evince dall'immagine il significato della parola hacker nel gergo comune si e` via via svuotato per poi andare a sostituire quello del termine cracker.</p>
|
||||||
|
<p>Un cracker e` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu` nobili.</p>
|
||||||
|
<p>Del termine hacker abbiamo piu` definizioni, alcune indifferenti all'uso di sistemi informatici:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona capace di programmare celermente e con precisione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.</p>
|
||||||
|
<h2>Chiave di lettura</h2>
|
||||||
|
<p>Nella storia della cultura hacker si possono distinguere tre tipi di persone:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>i poeti e matematici, come Donald Knuth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>gli esperti di determinate tipologie di hardware o software, come Bruce Schneier</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>i makers, coloro che costruiscono cio` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita` di cui parleremo rientrano in piu` di una di queste categoria. In tutti i casi e` importante capire che sono tre approcci complementari.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Storia</h2>
|
||||||
|
<h3>In the beginning there were the real programmers</h3>
|
||||||
|
<p>La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.</p>
|
||||||
|
<p>Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.</p>
|
||||||
|
<p>Fra i piu` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono` al primo avvio.</p>
|
||||||
|
<p>Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.</p>
|
||||||
|
<p>Qua parte il primo filone della storia della cultura hacker, quello universitario.</p>
|
||||||
|
<h4>I primi hacker, la tribu` connessa</h4>
|
||||||
|
<p>Rimanendo all'interno delle universita` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.</p>
|
||||||
|
<p>Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).</p>
|
||||||
|
<p>Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.</p>
|
||||||
|
<p>Questo e` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.</p>
|
||||||
|
<p>Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita` e laboratori di ricerca.</p>
|
||||||
|
<p>Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu` ampia di entusiasti.</p>
|
||||||
|
<p>Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.</p>
|
||||||
|
<h4>La nascita di Unix</h4>
|
||||||
|
<p>Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.</p>
|
||||||
|
<p>All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e` stata quella di fornire un'interfaccia unificata e le stesse funzionalita` su macchine diverse.</p>
|
||||||
|
<p>Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita` fra macchine diverse.</p>
|
||||||
|
<p>C e` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e` rimasta viva nei suoi discendenti.</p>
|
||||||
|
<h3>Freak + Phone = Phreaking</h3>
|
||||||
|
<p>Il reverse engineering e` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.</p>
|
||||||
|
<p>I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.</p>
|
||||||
|
<p>Il piu` celebre fra questi e` John Draper che scopri` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.</p>
|
||||||
|
<p>Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.</p>
|
||||||
|
<h3>Digressione: Anarco Illuminismo</h3>
|
||||||
|
<p>La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se` ideali di due ideologie differenti.</p>
|
||||||
|
<p>Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.</p>
|
||||||
|
<p>Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.</p>
|
||||||
|
<p>Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.</p>
|
||||||
|
<p>Nonostante cio` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.</p>
|
||||||
|
<h3>L'era del software proprietario</h3>
|
||||||
|
<p>Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una serie meno organizzata di gruppetti piu` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Nel frattempo iniziavano a diventare piu` comuni le prime macchine prodotte da Apple e Microsoft. In realta` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.</p>
|
||||||
|
<p>La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.</p>
|
||||||
|
<p>Nel 1983 DEC annuncio` la fine della linea dei PDP, definendo cosi` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&amp;T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.</p>
|
||||||
|
<p>L'hackerdom vide la possibilita` che uno dei suoi piu` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.</p>
|
||||||
|
<p>Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&amp;T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita` delle sue implementazioni, ma AT&amp;T vinse molte battaglie legali appropriandosi di vari standard.</p>
|
||||||
|
<h3>Verso una prima ideologia hacker</h3>
|
||||||
|
<p>In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita` sarebbe sparito lentamente.</p>
|
||||||
|
<p>Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu` severo (benche` non sia paragonabile alla copertura che tali eventi hanno oggi).</p>
|
||||||
|
<p>La soluzione proposta risiede nella congiunzione di tre idee:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>decentralizzazione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>crittografia</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>software libero</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Decentralizzazione</h4>
|
||||||
|
<p>La decentralizzazione e` il processo in cui un'attivita` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.</p>
|
||||||
|
<p>L'assunto alla base e` il principio Manzoniano per cui una persona che detiene il potere si ritrovera` prima o poi costretta a compiere decisioni non etiche. La soluzione e` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.</p>
|
||||||
|
<p>Un'esempio di decentralizzazione e` l'architettura di internet, almeno nelle sue prime forme, dove non c'e` un'autorita` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu` attuale e` la rete Bittorrent.</p>
|
||||||
|
<h4>Crittografia</h4>
|
||||||
|
<p>Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.</p>
|
||||||
|
<p>Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.</p>
|
||||||
|
<p>L'idea alla base (Cypherpunk's Manifesto) e` che la privacy e` necessaria per poter costituire una societa` aperta nell'era dell'informazione; non c'e` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.</p>
|
||||||
|
<p>Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.</p>
|
||||||
|
<h4>Software Libero</h4>
|
||||||
|
<p>Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.</p>
|
||||||
|
<p>Quando nel 1980 la stampante fu sostituita Xerox si rifiuto` di concedere a Stallman le facolta` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.</p>
|
||||||
|
<p>Nel 1984 Stallman si licenzio` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto` subito l'interesse della comunita`.</p>
|
||||||
|
<p>Il progetto GNU e` una collezione di software di qualsiasi tipo che rispetti le liberta` garantite dalla licensa <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>; fra questi i piu` famosi sono <a href="https://gcc.gnu.org/">GCC</a>, <a href="https://www.gnu.org/software/emacs/">emacs</a>, <a href="https://www.gnu.org/software/octave/">Octave</a>, <a href="https://www.r-project.org/">R</a> ma anche software di attivismo, gestione delle finanze e tant'altro.</p>
|
||||||
|
<p>Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e` ancora molto instabile.</p>
|
||||||
|
<p>Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. <a href="https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate">Questo dibattito fu il soggetto di un'enorme flame war su usenet</a>.</p>
|
||||||
|
<p>Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.</p>
|
||||||
|
<p>Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta` andrebbe chiamato <a href="https://www.gnu.org/gnu/why-gnu-linux.html">GNU/Linux</a>.</p>
|
||||||
|
<h2>Lo stato della cultura hacker oggi</h2>
|
||||||
|
<p>Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu` amatoriale e pratico, rivolto all'exploitation e infine quello piu` ideologico.</p>
|
||||||
|
<p>E` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo` definire tale), specialmente per chi come me non ne ha le competenze benche` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.</p>
|
||||||
|
<p>Nonostante cio` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.</p>
|
||||||
|
<h3>Disobbedienza civile elettronica</h3>
|
||||||
|
<p>Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).</p>
|
||||||
|
<p>Queste due persone e tutto cio` ha permesso loro di raggiungere questa posizione rappresentano <a href="http://www.mantellini.it/2012/08/17/perche-assange-e-internet/">cio` che il potere teme di internet</a>.</p>
|
||||||
|
<p>Inoltre, riguardo i fatti recenti:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
<a href="https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/">Mantellini sul Post</a>.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>I primi due anni ho provato a concentrarmi su queste domande:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>la cultura hacker ha ancora una componente anarchica?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Sono ancora possibili atti come quelli degli attivisti del cypherpunk?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In che ottica possiamo inquadrare le azioni di Assange e Snowden?</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.</p>
|
||||||
|
<p>Prima dell'arrivo di internet e dell'informatica piu` in generale il cuore degli organismi di potere e controllo era facile da individuare.</p>
|
||||||
|
<p>Cosi` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.</p>
|
||||||
|
<p>Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.</p>
|
||||||
|
<p>Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita`.
|
||||||
|
E` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.</p>
|
||||||
|
<p>Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.</p>
|
||||||
|
<p>Questo ad oggi non e` piu` vero, gli edifici benche` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.</p>
|
||||||
|
<p>Cosi` quando nel <a href="https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt">2016</a> i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.</p>
|
||||||
|
<p>Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu` nelle strutture fisiche.</p>
|
||||||
|
<p>Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che a domande come:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Did Facebook deceive its users?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"if I delete my account, how long does Facebook keep my data?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Does Facebook use cross-device tracking?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What data is being sold?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Is facebook censoring specific groups?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What’s Facebook’s reach beyond its website?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"How much information does Facebook have on non-Facebook users?"</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Zuckerberg ha potuto affermare che non conosce la risposta o che puo` chiedere al suo team e rispondere in futuro.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Whether you know it or not, if you are a hacker, you are a revolutionary</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Una volta compreso cio` queste parole di Doctor Crash su <a href="http://phrack.org/issues/6/3.html">phrack</a> appaiono ingenue.</p>
|
||||||
|
<p>Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.</p>
|
||||||
|
<p>Sempre Doctor Crash scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution." </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Questo, complice la cultura hacker, oggi non e` piu` possibile.</p>
|
||||||
|
<h3>Opensource e Free Software</h3>
|
||||||
|
<p>Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.</p>
|
||||||
|
<p>Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e` stato corrotto mediaticamente andando a ricoprire significato di cracker.</p>
|
||||||
|
<p>Stallman nel 2007 gia` ci avvertiva che il software opensource manca l'obbiettivo:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi. </p>
|
||||||
|
<p>L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e` cancro o comunismo.</p>
|
||||||
|
<p>Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.</p>
|
||||||
|
<p>Basta fare un giro su <a href="https://stackshare.io/stacks">stackshare.io</a> per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.</p>
|
||||||
|
<p>Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.</p>
|
||||||
|
<p>Ne sono un esempio gitlab, redislab e elasticsearch.</p>
|
||||||
|
<p>Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.</p></div></description><category>lecture</category><category>PesceWanda</category><category>politecnico</category><category>polito</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2019/05/18/cultura-hacker/</guid><pubDate>Sat, 18 May 2019 00:00:00 GMT</pubDate></item></channel></rss>
|
52
output/categories/lecture/index.html
Normal file
52
output/categories/lecture/index.html
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>Posts about lecture | Caught in the Net</title>
|
||||||
|
<link rel="stylesheet" href="../../assets/blog/fonts/opensans.css">
|
||||||
|
<link href="../../assets/blog/css/normalize.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../../assets/blog/css/cayman.css" rel="stylesheet" type="text/css">
|
||||||
|
<meta name="theme-color" content="#5670d4">
|
||||||
|
<meta name="generator" content="Nikola (getnikola.com)">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="../../rss.xml">
|
||||||
|
<link rel="canonical" href="francescomecca.eu/categories/lecture/">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS for tag lecture" hreflang="en" href="../lecture.xml">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<section class="page-header"><h1 class="project-name">
|
||||||
|
Caught in the Net
|
||||||
|
</h1>
|
||||||
|
<h2 class="project-tagline">La rete ti cattura ma libera il pensiero</h2>
|
||||||
|
<a class="btn" href="../../">Home</a>
|
||||||
|
<a class="btn" href="../../pages/about/">About me</a>
|
||||||
|
<a class="btn" href="../../pages/contattami/">Contact me</a>
|
||||||
|
<a class="btn" href="../../archiveall.html">Archive</a>
|
||||||
|
<a class="btn" href="../../rss.xml">RSS</a>
|
||||||
|
<a class="btn" href="http://francescomecca.eu/git/pesceWanda">Personal Git</a>
|
||||||
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
|
<a class="btn" href="../../wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
|
</section><section class="main-content"><article class="tagpage"><header><h1>Posts about lecture</h1>
|
||||||
|
<div class="metadata">
|
||||||
|
|
||||||
|
<p class="feedlink">
|
||||||
|
|
||||||
|
<a href="../lecture.xml" hreflang="en" type="application/rss+xml">RSS feed</a>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</header><ul class="postlist">
|
||||||
|
<li>
|
||||||
|
<time class="listdate" datetime="2019-05-18T00:00:00Z" title="2019-05-18 00:00">2019-05-18 00:00</time><a href="../../blog/2019/05/18/cultura-hacker/" class="listtitle">Breve storia della cultura hacker</a><a></a>
|
||||||
|
</li>
|
||||||
|
</ul></article><footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
||||||
|
<span class="site-footer-credits"><a href="https://getnikola.com">Nikola</a>, <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a>.</span>
|
||||||
|
</footer></section>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about lms)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/lms.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:31:59 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about lms)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/lms.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:40:47 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
||||||
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
||||||
<h2>In the beginning there was the LMS</h2>
|
<h2>In the beginning there was the LMS</h2>
|
||||||
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
||||||
|
|
|
@ -1,5 +1,263 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about PesceWanda)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/pescewanda.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:42:17 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about PesceWanda)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/pescewanda.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sat, 18 May 2019 21:11:19 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Breve storia della cultura hacker</title><link>francescomecca.eu/blog/2019/05/18/cultura-hacker/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso <a href="http://rivoluzionedigitale.polito.it/">Rivoluzione Digitale</a>.</p>
|
||||||
|
<h2>Scopo della lezione</h2>
|
||||||
|
<p>Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e` alle radici dell'informatica come scienza e come strumento di cultura di massa.</p>
|
||||||
|
<h2>Jargon File</h2>
|
||||||
|
<p>Cosi` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita` iniziarono a raccogliere gli slang piu` utilizzati e le storie legate a questi modi di esprimersi.</p>
|
||||||
|
<p>Con l'espandersi della comunita` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.</p>
|
||||||
|
<p><a href="http://catdb.org/esr">ESR</a> scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Esempi di slang e trasformazioni del lessico:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Data General -&gt; Dirty Genitals</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>IBM 360 -&gt; IBM Three-Sickly</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Government Property -- Do Not Duplicate (on keys) -&gt; Government Duplicity -- Do Not Propagate</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>for historical reasons -&gt; for hysterical raisins</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Margaret Jacks Hall (the CS building at Stanford) -&gt; Marginal Hacks Hall</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft -&gt; Microsloth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Internet Explorer -&gt; Internet Exploiter</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft Outlook -&gt; Microsoft Outhouse</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Linux -&gt; Linsux</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>FreeBSD -&gt; FreeLSD</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>C# -&gt; C Flat</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Piu` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano <code>true</code> <code>false</code>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Definizione della parola hacker</h3>
|
||||||
|
<p><img alt="Definition of hacker" src="francescomecca.eu/wp-content/uploads/2019/def_hacker.jpg"></p>
|
||||||
|
<p>Come si evince dall'immagine il significato della parola hacker nel gergo comune si e` via via svuotato per poi andare a sostituire quello del termine cracker.</p>
|
||||||
|
<p>Un cracker e` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu` nobili.</p>
|
||||||
|
<p>Del termine hacker abbiamo piu` definizioni, alcune indifferenti all'uso di sistemi informatici:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona capace di programmare celermente e con precisione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.</p>
|
||||||
|
<h2>Chiave di lettura</h2>
|
||||||
|
<p>Nella storia della cultura hacker si possono distinguere tre tipi di persone:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>i poeti e matematici, come Donald Knuth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>gli esperti di determinate tipologie di hardware o software, come Bruce Schneier</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>i makers, coloro che costruiscono cio` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita` di cui parleremo rientrano in piu` di una di queste categoria. In tutti i casi e` importante capire che sono tre approcci complementari.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Storia</h2>
|
||||||
|
<h3>In the beginning there were the real programmers</h3>
|
||||||
|
<p>La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.</p>
|
||||||
|
<p>Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.</p>
|
||||||
|
<p>Fra i piu` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono` al primo avvio.</p>
|
||||||
|
<p>Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.</p>
|
||||||
|
<p>Qua parte il primo filone della storia della cultura hacker, quello universitario.</p>
|
||||||
|
<h4>I primi hacker, la tribu` connessa</h4>
|
||||||
|
<p>Rimanendo all'interno delle universita` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.</p>
|
||||||
|
<p>Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).</p>
|
||||||
|
<p>Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.</p>
|
||||||
|
<p>Questo e` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.</p>
|
||||||
|
<p>Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita` e laboratori di ricerca.</p>
|
||||||
|
<p>Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu` ampia di entusiasti.</p>
|
||||||
|
<p>Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.</p>
|
||||||
|
<h4>La nascita di Unix</h4>
|
||||||
|
<p>Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.</p>
|
||||||
|
<p>All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e` stata quella di fornire un'interfaccia unificata e le stesse funzionalita` su macchine diverse.</p>
|
||||||
|
<p>Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita` fra macchine diverse.</p>
|
||||||
|
<p>C e` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e` rimasta viva nei suoi discendenti.</p>
|
||||||
|
<h3>Freak + Phone = Phreaking</h3>
|
||||||
|
<p>Il reverse engineering e` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.</p>
|
||||||
|
<p>I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.</p>
|
||||||
|
<p>Il piu` celebre fra questi e` John Draper che scopri` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.</p>
|
||||||
|
<p>Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.</p>
|
||||||
|
<h3>Digressione: Anarco Illuminismo</h3>
|
||||||
|
<p>La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se` ideali di due ideologie differenti.</p>
|
||||||
|
<p>Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.</p>
|
||||||
|
<p>Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.</p>
|
||||||
|
<p>Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.</p>
|
||||||
|
<p>Nonostante cio` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.</p>
|
||||||
|
<h3>L'era del software proprietario</h3>
|
||||||
|
<p>Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una serie meno organizzata di gruppetti piu` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Nel frattempo iniziavano a diventare piu` comuni le prime macchine prodotte da Apple e Microsoft. In realta` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.</p>
|
||||||
|
<p>La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.</p>
|
||||||
|
<p>Nel 1983 DEC annuncio` la fine della linea dei PDP, definendo cosi` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&amp;T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.</p>
|
||||||
|
<p>L'hackerdom vide la possibilita` che uno dei suoi piu` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.</p>
|
||||||
|
<p>Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&amp;T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita` delle sue implementazioni, ma AT&amp;T vinse molte battaglie legali appropriandosi di vari standard.</p>
|
||||||
|
<h3>Verso una prima ideologia hacker</h3>
|
||||||
|
<p>In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita` sarebbe sparito lentamente.</p>
|
||||||
|
<p>Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu` severo (benche` non sia paragonabile alla copertura che tali eventi hanno oggi).</p>
|
||||||
|
<p>La soluzione proposta risiede nella congiunzione di tre idee:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>decentralizzazione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>crittografia</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>software libero</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Decentralizzazione</h4>
|
||||||
|
<p>La decentralizzazione e` il processo in cui un'attivita` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.</p>
|
||||||
|
<p>L'assunto alla base e` il principio Manzoniano per cui una persona che detiene il potere si ritrovera` prima o poi costretta a compiere decisioni non etiche. La soluzione e` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.</p>
|
||||||
|
<p>Un'esempio di decentralizzazione e` l'architettura di internet, almeno nelle sue prime forme, dove non c'e` un'autorita` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu` attuale e` la rete Bittorrent.</p>
|
||||||
|
<h4>Crittografia</h4>
|
||||||
|
<p>Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.</p>
|
||||||
|
<p>Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.</p>
|
||||||
|
<p>L'idea alla base (Cypherpunk's Manifesto) e` che la privacy e` necessaria per poter costituire una societa` aperta nell'era dell'informazione; non c'e` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.</p>
|
||||||
|
<p>Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.</p>
|
||||||
|
<h4>Software Libero</h4>
|
||||||
|
<p>Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.</p>
|
||||||
|
<p>Quando nel 1980 la stampante fu sostituita Xerox si rifiuto` di concedere a Stallman le facolta` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.</p>
|
||||||
|
<p>Nel 1984 Stallman si licenzio` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto` subito l'interesse della comunita`.</p>
|
||||||
|
<p>Il progetto GNU e` una collezione di software di qualsiasi tipo che rispetti le liberta` garantite dalla licensa <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>; fra questi i piu` famosi sono <a href="https://gcc.gnu.org/">GCC</a>, <a href="https://www.gnu.org/software/emacs/">emacs</a>, <a href="https://www.gnu.org/software/octave/">Octave</a>, <a href="https://www.r-project.org/">R</a> ma anche software di attivismo, gestione delle finanze e tant'altro.</p>
|
||||||
|
<p>Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e` ancora molto instabile.</p>
|
||||||
|
<p>Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. <a href="https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate">Questo dibattito fu il soggetto di un'enorme flame war su usenet</a>.</p>
|
||||||
|
<p>Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.</p>
|
||||||
|
<p>Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta` andrebbe chiamato <a href="https://www.gnu.org/gnu/why-gnu-linux.html">GNU/Linux</a>.</p>
|
||||||
|
<h2>Lo stato della cultura hacker oggi</h2>
|
||||||
|
<p>Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu` amatoriale e pratico, rivolto all'exploitation e infine quello piu` ideologico.</p>
|
||||||
|
<p>E` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo` definire tale), specialmente per chi come me non ne ha le competenze benche` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.</p>
|
||||||
|
<p>Nonostante cio` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.</p>
|
||||||
|
<h3>Disobbedienza civile elettronica</h3>
|
||||||
|
<p>Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).</p>
|
||||||
|
<p>Queste due persone e tutto cio` ha permesso loro di raggiungere questa posizione rappresentano <a href="http://www.mantellini.it/2012/08/17/perche-assange-e-internet/">cio` che il potere teme di internet</a>.</p>
|
||||||
|
<p>Inoltre, riguardo i fatti recenti:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
<a href="https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/">Mantellini sul Post</a>.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>I primi due anni ho provato a concentrarmi su queste domande:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>la cultura hacker ha ancora una componente anarchica?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Sono ancora possibili atti come quelli degli attivisti del cypherpunk?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In che ottica possiamo inquadrare le azioni di Assange e Snowden?</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.</p>
|
||||||
|
<p>Prima dell'arrivo di internet e dell'informatica piu` in generale il cuore degli organismi di potere e controllo era facile da individuare.</p>
|
||||||
|
<p>Cosi` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.</p>
|
||||||
|
<p>Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.</p>
|
||||||
|
<p>Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita`.
|
||||||
|
E` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.</p>
|
||||||
|
<p>Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.</p>
|
||||||
|
<p>Questo ad oggi non e` piu` vero, gli edifici benche` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.</p>
|
||||||
|
<p>Cosi` quando nel <a href="https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt">2016</a> i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.</p>
|
||||||
|
<p>Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu` nelle strutture fisiche.</p>
|
||||||
|
<p>Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che a domande come:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Did Facebook deceive its users?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"if I delete my account, how long does Facebook keep my data?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Does Facebook use cross-device tracking?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What data is being sold?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Is facebook censoring specific groups?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What’s Facebook’s reach beyond its website?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"How much information does Facebook have on non-Facebook users?"</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Zuckerberg ha potuto affermare che non conosce la risposta o che puo` chiedere al suo team e rispondere in futuro.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Whether you know it or not, if you are a hacker, you are a revolutionary</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Una volta compreso cio` queste parole di Doctor Crash su <a href="http://phrack.org/issues/6/3.html">phrack</a> appaiono ingenue.</p>
|
||||||
|
<p>Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.</p>
|
||||||
|
<p>Sempre Doctor Crash scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution." </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Questo, complice la cultura hacker, oggi non e` piu` possibile.</p>
|
||||||
|
<h3>Opensource e Free Software</h3>
|
||||||
|
<p>Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.</p>
|
||||||
|
<p>Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e` stato corrotto mediaticamente andando a ricoprire significato di cracker.</p>
|
||||||
|
<p>Stallman nel 2007 gia` ci avvertiva che il software opensource manca l'obbiettivo:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi. </p>
|
||||||
|
<p>L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e` cancro o comunismo.</p>
|
||||||
|
<p>Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.</p>
|
||||||
|
<p>Basta fare un giro su <a href="https://stackshare.io/stacks">stackshare.io</a> per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.</p>
|
||||||
|
<p>Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.</p>
|
||||||
|
<p>Ne sono un esempio gitlab, redislab e elasticsearch.</p>
|
||||||
|
<p>Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.</p></div></description><category>lecture</category><category>PesceWanda</category><category>politecnico</category><category>polito</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2019/05/18/cultura-hacker/</guid><pubDate>Sat, 18 May 2019 00:00:00 GMT</pubDate></item><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
||||||
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
||||||
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
||||||
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Addio Reddit</title><link>francescomecca.eu/blog/2018/3/27/addio-reddit/</link><dc:creator>Francesco Mecca</dc:creator><description><div><blockquote>
|
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Addio Reddit</title><link>francescomecca.eu/blog/2018/3/27/addio-reddit/</link><dc:creator>Francesco Mecca</dc:creator><description><div><blockquote>
|
||||||
|
@ -289,206 +547,4 @@ Pierre aking his soul came to the packs and drove up his father-in-law women.
|
||||||
|
|
||||||
|
|
||||||
<p>Possiamo notare come l'output migliori visibilmente.</p>
|
<p>Possiamo notare come l'output migliori visibilmente.</p>
|
||||||
<p>Nel prossimo post tratterò una variante di rete neurale utilizzata per classificare e riconoscere immagini.</p></div></description><category>AI</category><category>algoritmi genetici</category><category>Genetic algorithm</category><category>Neural networks</category><category>PesceWanda</category><category>programming</category><category>reti neurali</category><guid>francescomecca.eu/blog/2016/11/11/machine-learning-parte2/</guid><pubDate>Fri, 11 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Capire il Machine Learning (parte 1)</title><link>francescomecca.eu/blog/2016/11/10/machine-learning-intro/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo è il primo di una serie di post che hanno l'obbiettivo di fornire una breve e generale introduzione al mondo del machine learning e delle intelligenze artificiali più in generale.
|
<p>Nel prossimo post tratterò una variante di rete neurale utilizzata per classificare e riconoscere immagini.</p></div></description><category>AI</category><category>algoritmi genetici</category><category>Genetic algorithm</category><category>Neural networks</category><category>PesceWanda</category><category>programming</category><category>reti neurali</category><guid>francescomecca.eu/blog/2016/11/11/machine-learning-parte2/</guid><pubDate>Fri, 11 Nov 2016 00:00:00 GMT</pubDate></item></channel></rss>
|
||||||
Mi auguro che questa breve introduzione al mondo dell'apprendimento automatico sia una sorta di vaccino contro il sensazionalismo mediatico e la disinformazione che negli ultimi anni fanno da contorno al progresso in questo settore.</p>
|
|
||||||
<h3>Non c'è risultato senza algoritmo</h3>
|
|
||||||
<p>Nelle scienze informatiche un algoritmo è un insieme di istruzioni che partendo da uno stato iniziale (input) permette di arrivare ad uno stato finale (output) attraverso una serie di step logici.
|
|
||||||
Ogni algoritmo utilizza una logica propria e specifica per il problema di cui si occupa.
|
|
||||||
Nel caso del machine learning l'algoritmo non viene progettato in base al tipo di problema bensì vengono utilizzati algoritmi generici adattabili attraverso dei parametri.
|
|
||||||
L'algoritmo di machine learning analizza i vari parametri e i dati che riceve "in pasto" al fine di raggiungere lo stato di output ottimale.
|
|
||||||
L'output ottimale è la migliore approssimazione di un risultato teorico che si raggiunge nella fase di "training".</p>
|
|
||||||
<h3>La macchina impara</h3>
|
|
||||||
<p>Nella fase di allenamento o di apprendimento, il "training", si possono adottare due tecniche differenti: apprendimento con supervisione ( <strong>supervised learning</strong> ) e apprendimento senza supervisione ( <strong>unsupervised learning</strong> ).</p>
|
|
||||||
<h5>Supervised Learning</h5>
|
|
||||||
<p>Immaginiamo di dover valutare il prezzo di un'automobile usata senza essere esperti in materia.
|
|
||||||
Noi abbiamo questi dati:</p>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>PREZZO ORIGINALE</th>
|
|
||||||
<th align="center">Km percorsi</th>
|
|
||||||
<th align="center">stato di usura</th>
|
|
||||||
<th align="right">PREZZO FINALE</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>50 000</td>
|
|
||||||
<td align="center">120 000</td>
|
|
||||||
<td align="center">lieve</td>
|
|
||||||
<td align="right">40 000</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>30 000</td>
|
|
||||||
<td align="center">150 000</td>
|
|
||||||
<td align="center">notevole</td>
|
|
||||||
<td align="right">8 000</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>20 000</td>
|
|
||||||
<td align="center">80 000</td>
|
|
||||||
<td align="center">lieve</td>
|
|
||||||
<td align="right">15 000</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>20 000</td>
|
|
||||||
<td align="center">120 000</td>
|
|
||||||
<td align="center">notevole</td>
|
|
||||||
<td align="right">...</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>Dalla tabella possiamo dedurre la caratteristica fondamentale del <strong>supervised learning</strong>: abbiamo due vettori (serie di dati) di input (prezzo originale) e di output (prezzo finale) che hanno una correlazione certa e valida.</p>
|
|
||||||
<p>Possiamo dedurre intuitivamente quale sarà il prezzo dell'ultima auto se analizziamo i dati precedenti.
|
|
||||||
Questo è quello che succede nel caso del <strong>supervised learning</strong>.
|
|
||||||
Un algoritmo di machine learning che utilizza il <strong>supervised learning</strong> estrapolerà la relazione fra i vari dati e in questo modo potrà ottenere un determinato output partendo dai dati di input.
|
|
||||||
Possiamo capire già da ora che nel caso ci fossero dati che "inquinano" il nostro data set, come ad esempio il colore dell'auto, l'algoritmo non sarà capace di fare un'analisi corretta.</p>
|
|
||||||
<p>La precisione della soluzione dipende dalla quantità di dati e dall'influenza che questi hanno nella situazione reale.</p>
|
|
||||||
<h2>Unsupervised Learning</h2>
|
|
||||||
<p>Nel caso di unsupervised learning ci troviamo di fronte agli stessi dati ma senza la possibilità di conoscere il prezzo finale.</p>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>PREZZO ORIGINALE</th>
|
|
||||||
<th align="center">Km percorsi</th>
|
|
||||||
<th align="right">stato di usura</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>50 000</td>
|
|
||||||
<td align="center">120 000</td>
|
|
||||||
<td align="right">lieve</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>30 000</td>
|
|
||||||
<td align="center">150 000</td>
|
|
||||||
<td align="right">notevole</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>20 000</td>
|
|
||||||
<td align="center">80 000</td>
|
|
||||||
<td align="right">lieve</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>20 000</td>
|
|
||||||
<td align="center">120 000</td>
|
|
||||||
<td align="right">notevole</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>Non siamo capaci di stabilire il prezzo finale attraverso l'unsupervised learning, ma possiamo stabilire dei pattern fra i vari dati.
|
|
||||||
Non c'è nessun tipo di feedback (il prezzo finale) che possa aiutarci a capire se il risultato sia giusto ma possiamo analizzare le notevoli relazioni fra i dati.</p>
|
|
||||||
<h2>Machine Learning e intelligenza</h2>
|
|
||||||
<p>Concentriamoci sul <strong>supervised learning</strong>.
|
|
||||||
Nel caso della vendita dell'automobile, abbiamo un semplice problema con una soluzione lineare di questo tipo:
|
|
||||||
<em>prezzo finale</em> = <em>prezzo originale</em> + <em>km percorsi</em> + stato di usura</p>
|
|
||||||
<p>Ovviamente ogni incognita nella nostra equazione influisce diversamente sul prezzo finale e quindi possiamo riscriverla come:
|
|
||||||
<em>prezzo finale</em> = A <em><em>prezzo originale</em> + B </em><em>km percorsi</em> + C * stato di usura</p>
|
|
||||||
<p>Se pensiamo ad un algoritmo possiamo ragionare in questo modo:</p>
|
|
||||||
<pre class="code literal-block"><span></span><span class="n">funzione</span><span class="o">:</span> <span class="n">calcola_prezzo_auto</span><span class="o">:</span>
|
|
||||||
<span class="n">parametri</span><span class="o">:</span> <span class="n">prezzo_originale</span><span class="o">,</span> <span class="n">km_percorsi</span><span class="o">,</span> <span class="n">stato_usura</span>
|
|
||||||
<span class="n">variabili</span><span class="o">:</span> <span class="n">prezzo_finale</span> <span class="o">=</span> <span class="mi">0</span>
|
|
||||||
|
|
||||||
<span class="n">prezzo</span> <span class="n">finale</span> <span class="o">=</span> <span class="n">prezzo_originale</span> <span class="o">*</span> <span class="mf">0.804246</span>
|
|
||||||
<span class="n">prezzo</span> <span class="n">finale</span> <span class="o">=</span> <span class="n">prezzo_finale</span> <span class="o">+</span> <span class="n">km_percorsi</span> <span class="o">*</span> <span class="o">-</span><span class="mf">0.000125</span>
|
|
||||||
<span class="n">prezzo</span> <span class="n">finale</span> <span class="o">=</span> <span class="n">prezzo_finale</span> <span class="o">+</span> <span class="n">stato_usura</span> <span class="o">*</span> <span class="o">-</span><span class="mi">2500</span>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<p>I valori di quelle costanti, stabilite casualmente nell'esempio, sono chiamate <em>pesi</em> e servono a stimare il prezzo finale.
|
|
||||||
Una volta stabiliti i pesi, il nostro algoritmo di supervised learning applica questi pesi ai dati originali e ne valuta l'errore:</p>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>PREZZO ORIGINALE</th>
|
|
||||||
<th align="center">Km percorsi</th>
|
|
||||||
<th align="center">stato di usura</th>
|
|
||||||
<th align="center">PREZZO FINALE</th>
|
|
||||||
<th align="right">PREZZO STIMATO</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>50 000</td>
|
|
||||||
<td align="center">120 000</td>
|
|
||||||
<td align="center">lieve</td>
|
|
||||||
<td align="center">40 000</td>
|
|
||||||
<td align="right">374888</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>30 000</td>
|
|
||||||
<td align="center">150 000</td>
|
|
||||||
<td align="center">notevole</td>
|
|
||||||
<td align="center">8 000</td>
|
|
||||||
<td align="right">16000</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>20 000</td>
|
|
||||||
<td align="center">80 000</td>
|
|
||||||
<td align="center">lieve</td>
|
|
||||||
<td align="center">15 000</td>
|
|
||||||
<td align="right">13492</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>20 000</td>
|
|
||||||
<td align="center">120 000</td>
|
|
||||||
<td align="center">notevole</td>
|
|
||||||
<td align="center">...</td>
|
|
||||||
<td align="right">10988</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>Una volta valutato l'errore e la distanza dal prezzo finale, l'algoritmo di machine learning modifica i pesi di conseguenza e ripete la procedura fino ad arrivare al risultato che più si avvicina ai dati iniziali.
|
|
||||||
<img alt="rete1" src="francescomecca.eu/wp-content/uploads/2016/reteneurale1.jpg">
|
|
||||||
Ci sono varie funzioni che stimano l'errore e permettono di correggere i pesi o metodi che restringono lo spazio di ricerca fino a convergere alla soluzione, ovvero i pesi cercati.</p>
|
|
||||||
<h3>Reti Neurali</h3>
|
|
||||||
<p>Ora, come possiamo immaginare, il prezzo di un'auto ha molti fattori che si aggiungono a quelli elencati nell'esempio.
|
|
||||||
Non solo, ma molti problemi non hanno una soluzione lineare, ovvero una soluzione che si può semplicemente esprimere attraverso una funzione che aggiunge e moltiplica i valori una sola volta.</p>
|
|
||||||
<p>Possiamo arricchire l'esempio dell'automobile immaginando di avere più set di pesi e di ripetere il procedimento più volte:</p>
|
|
||||||
<pre class="code literal-block"><span></span>|---------------------------------------------------|
|
|
||||||
| PREZZO_ORIG * peso A1 -----&gt; |
|
|
||||||
| KM_PERCORSI * peso B1 -----&gt; |
|
|
||||||
| STATO_USURA * peso C1 -----&gt; |
|
|
||||||
| PREZZO FINALE STIMATO 1|
|
|
||||||
|---------------------------------------------------|
|
|
||||||
|
|
||||||
| --------------------------------------------------|
|
|
||||||
| PREZZO_ORIG * peso A2 -----&gt; |
|
|
||||||
| KM_PERCORSI * peso B2 -----&gt; |
|
|
||||||
| STATO_USURA * peso C2 -----&gt; |
|
|
||||||
| PREZZO FINALE STIMATO 2|
|
|
||||||
|---------------------------------------------------|
|
|
||||||
|
|
||||||
| --------------------------------------------------|
|
|
||||||
| PREZZO_ORIG * peso A3 -----&gt; |
|
|
||||||
| KM_PERCORSI * peso B3 -----&gt; |
|
|
||||||
| STATO_USURA * peso C3 -----&gt; |
|
|
||||||
| PREZZO FINALE STIMATO 3|
|
|
||||||
|---------------------------------------------------|
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<p>E ora immaginiamo di combinare ogni PREZZO FINALE STIMATO in un'ultimo risultato:</p>
|
|
||||||
<pre class="code literal-block"><span></span>| --------------------------------------------------|
|
|
||||||
| PREZZO_1 * peso X -----&gt; |
|
|
||||||
| PREZZO_2 * peso Y -----&gt; |
|
|
||||||
| PREZZO_3 * peso Z -----&gt; |
|
|
||||||
| PREZZO FINALE DEF |
|
|
||||||
|---------------------------------------------------|
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<p>Questa é, seppur molto basica, una rete neurale.
|
|
||||||
Proviamo a visualizzarla in un'immagine dove i box arancioni sono i nodi di input e i rossi sono i nodi "nascosti" e temporanei.</p>
|
|
||||||
<p><img alt="rete2" src="francescomecca.eu/wp-content/uploads/2016/reteneurale2.jpg"></p>
|
|
||||||
<p>In una rete neurale (<em>neural networks</em>) abbiamo:</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>i neuroni: la funzione di stima e i set di pesi;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>le catene: i collegamenti fra neuroni che permettono di valutare il prezzo più volte.</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>Nel prossimo <a href="francescomecca.eu/pescewanda/2016/11/11/machine-learning-PARTE2">post</a> cercherò di approfondire il concetto di rete neurale con degli esempi di applicazioni concrete.</p></div></description><category>AI</category><category>algoritmi genetici</category><category>Genetic algorithm</category><category>Neural networks</category><category>PesceWanda</category><category>programming</category><category>reti neurali</category><guid>francescomecca.eu/blog/2016/11/10/machine-learning-intro/</guid><pubDate>Thu, 10 Nov 2016 00:00:00 GMT</pubDate></item></channel></rss>
|
|
|
@ -42,6 +42,9 @@
|
||||||
|
|
||||||
</header><ul class="postlist">
|
</header><ul class="postlist">
|
||||||
<li>
|
<li>
|
||||||
|
<time class="listdate" datetime="2019-05-18T00:00:00Z" title="2019-05-18 00:00">2019-05-18 00:00</time><a href="../../blog/2019/05/18/cultura-hacker/" class="listtitle">Breve storia della cultura hacker</a><a></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
<time class="listdate" datetime="2019-03-06T00:00:00Z" title="2019-03-06 00:00">2019-03-06 00:00</time><a href="../../blog/2019/03/06/Dconf-2019/" class="listtitle">Dconf 2019</a><a></a>
|
<time class="listdate" datetime="2019-03-06T00:00:00Z" title="2019-03-06 00:00">2019-03-06 00:00</time><a href="../../blog/2019/03/06/Dconf-2019/" class="listtitle">Dconf 2019</a><a></a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
260
output/categories/politecnico.xml
Normal file
260
output/categories/politecnico.xml
Normal file
|
@ -0,0 +1,260 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about politecnico)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/politecnico.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sat, 18 May 2019 21:11:19 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Breve storia della cultura hacker</title><link>francescomecca.eu/blog/2019/05/18/cultura-hacker/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso <a href="http://rivoluzionedigitale.polito.it/">Rivoluzione Digitale</a>.</p>
|
||||||
|
<h2>Scopo della lezione</h2>
|
||||||
|
<p>Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e` alle radici dell'informatica come scienza e come strumento di cultura di massa.</p>
|
||||||
|
<h2>Jargon File</h2>
|
||||||
|
<p>Cosi` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita` iniziarono a raccogliere gli slang piu` utilizzati e le storie legate a questi modi di esprimersi.</p>
|
||||||
|
<p>Con l'espandersi della comunita` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.</p>
|
||||||
|
<p><a href="http://catdb.org/esr">ESR</a> scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Esempi di slang e trasformazioni del lessico:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Data General -&gt; Dirty Genitals</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>IBM 360 -&gt; IBM Three-Sickly</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Government Property -- Do Not Duplicate (on keys) -&gt; Government Duplicity -- Do Not Propagate</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>for historical reasons -&gt; for hysterical raisins</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Margaret Jacks Hall (the CS building at Stanford) -&gt; Marginal Hacks Hall</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft -&gt; Microsloth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Internet Explorer -&gt; Internet Exploiter</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft Outlook -&gt; Microsoft Outhouse</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Linux -&gt; Linsux</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>FreeBSD -&gt; FreeLSD</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>C# -&gt; C Flat</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Piu` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano <code>true</code> <code>false</code>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Definizione della parola hacker</h3>
|
||||||
|
<p><img alt="Definition of hacker" src="francescomecca.eu/wp-content/uploads/2019/def_hacker.jpg"></p>
|
||||||
|
<p>Come si evince dall'immagine il significato della parola hacker nel gergo comune si e` via via svuotato per poi andare a sostituire quello del termine cracker.</p>
|
||||||
|
<p>Un cracker e` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu` nobili.</p>
|
||||||
|
<p>Del termine hacker abbiamo piu` definizioni, alcune indifferenti all'uso di sistemi informatici:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona capace di programmare celermente e con precisione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.</p>
|
||||||
|
<h2>Chiave di lettura</h2>
|
||||||
|
<p>Nella storia della cultura hacker si possono distinguere tre tipi di persone:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>i poeti e matematici, come Donald Knuth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>gli esperti di determinate tipologie di hardware o software, come Bruce Schneier</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>i makers, coloro che costruiscono cio` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita` di cui parleremo rientrano in piu` di una di queste categoria. In tutti i casi e` importante capire che sono tre approcci complementari.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Storia</h2>
|
||||||
|
<h3>In the beginning there were the real programmers</h3>
|
||||||
|
<p>La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.</p>
|
||||||
|
<p>Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.</p>
|
||||||
|
<p>Fra i piu` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono` al primo avvio.</p>
|
||||||
|
<p>Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.</p>
|
||||||
|
<p>Qua parte il primo filone della storia della cultura hacker, quello universitario.</p>
|
||||||
|
<h4>I primi hacker, la tribu` connessa</h4>
|
||||||
|
<p>Rimanendo all'interno delle universita` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.</p>
|
||||||
|
<p>Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).</p>
|
||||||
|
<p>Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.</p>
|
||||||
|
<p>Questo e` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.</p>
|
||||||
|
<p>Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita` e laboratori di ricerca.</p>
|
||||||
|
<p>Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu` ampia di entusiasti.</p>
|
||||||
|
<p>Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.</p>
|
||||||
|
<h4>La nascita di Unix</h4>
|
||||||
|
<p>Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.</p>
|
||||||
|
<p>All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e` stata quella di fornire un'interfaccia unificata e le stesse funzionalita` su macchine diverse.</p>
|
||||||
|
<p>Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita` fra macchine diverse.</p>
|
||||||
|
<p>C e` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e` rimasta viva nei suoi discendenti.</p>
|
||||||
|
<h3>Freak + Phone = Phreaking</h3>
|
||||||
|
<p>Il reverse engineering e` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.</p>
|
||||||
|
<p>I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.</p>
|
||||||
|
<p>Il piu` celebre fra questi e` John Draper che scopri` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.</p>
|
||||||
|
<p>Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.</p>
|
||||||
|
<h3>Digressione: Anarco Illuminismo</h3>
|
||||||
|
<p>La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se` ideali di due ideologie differenti.</p>
|
||||||
|
<p>Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.</p>
|
||||||
|
<p>Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.</p>
|
||||||
|
<p>Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.</p>
|
||||||
|
<p>Nonostante cio` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.</p>
|
||||||
|
<h3>L'era del software proprietario</h3>
|
||||||
|
<p>Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una serie meno organizzata di gruppetti piu` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Nel frattempo iniziavano a diventare piu` comuni le prime macchine prodotte da Apple e Microsoft. In realta` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.</p>
|
||||||
|
<p>La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.</p>
|
||||||
|
<p>Nel 1983 DEC annuncio` la fine della linea dei PDP, definendo cosi` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&amp;T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.</p>
|
||||||
|
<p>L'hackerdom vide la possibilita` che uno dei suoi piu` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.</p>
|
||||||
|
<p>Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&amp;T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita` delle sue implementazioni, ma AT&amp;T vinse molte battaglie legali appropriandosi di vari standard.</p>
|
||||||
|
<h3>Verso una prima ideologia hacker</h3>
|
||||||
|
<p>In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita` sarebbe sparito lentamente.</p>
|
||||||
|
<p>Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu` severo (benche` non sia paragonabile alla copertura che tali eventi hanno oggi).</p>
|
||||||
|
<p>La soluzione proposta risiede nella congiunzione di tre idee:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>decentralizzazione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>crittografia</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>software libero</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Decentralizzazione</h4>
|
||||||
|
<p>La decentralizzazione e` il processo in cui un'attivita` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.</p>
|
||||||
|
<p>L'assunto alla base e` il principio Manzoniano per cui una persona che detiene il potere si ritrovera` prima o poi costretta a compiere decisioni non etiche. La soluzione e` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.</p>
|
||||||
|
<p>Un'esempio di decentralizzazione e` l'architettura di internet, almeno nelle sue prime forme, dove non c'e` un'autorita` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu` attuale e` la rete Bittorrent.</p>
|
||||||
|
<h4>Crittografia</h4>
|
||||||
|
<p>Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.</p>
|
||||||
|
<p>Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.</p>
|
||||||
|
<p>L'idea alla base (Cypherpunk's Manifesto) e` che la privacy e` necessaria per poter costituire una societa` aperta nell'era dell'informazione; non c'e` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.</p>
|
||||||
|
<p>Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.</p>
|
||||||
|
<h4>Software Libero</h4>
|
||||||
|
<p>Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.</p>
|
||||||
|
<p>Quando nel 1980 la stampante fu sostituita Xerox si rifiuto` di concedere a Stallman le facolta` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.</p>
|
||||||
|
<p>Nel 1984 Stallman si licenzio` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto` subito l'interesse della comunita`.</p>
|
||||||
|
<p>Il progetto GNU e` una collezione di software di qualsiasi tipo che rispetti le liberta` garantite dalla licensa <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>; fra questi i piu` famosi sono <a href="https://gcc.gnu.org/">GCC</a>, <a href="https://www.gnu.org/software/emacs/">emacs</a>, <a href="https://www.gnu.org/software/octave/">Octave</a>, <a href="https://www.r-project.org/">R</a> ma anche software di attivismo, gestione delle finanze e tant'altro.</p>
|
||||||
|
<p>Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e` ancora molto instabile.</p>
|
||||||
|
<p>Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. <a href="https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate">Questo dibattito fu il soggetto di un'enorme flame war su usenet</a>.</p>
|
||||||
|
<p>Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.</p>
|
||||||
|
<p>Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta` andrebbe chiamato <a href="https://www.gnu.org/gnu/why-gnu-linux.html">GNU/Linux</a>.</p>
|
||||||
|
<h2>Lo stato della cultura hacker oggi</h2>
|
||||||
|
<p>Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu` amatoriale e pratico, rivolto all'exploitation e infine quello piu` ideologico.</p>
|
||||||
|
<p>E` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo` definire tale), specialmente per chi come me non ne ha le competenze benche` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.</p>
|
||||||
|
<p>Nonostante cio` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.</p>
|
||||||
|
<h3>Disobbedienza civile elettronica</h3>
|
||||||
|
<p>Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).</p>
|
||||||
|
<p>Queste due persone e tutto cio` ha permesso loro di raggiungere questa posizione rappresentano <a href="http://www.mantellini.it/2012/08/17/perche-assange-e-internet/">cio` che il potere teme di internet</a>.</p>
|
||||||
|
<p>Inoltre, riguardo i fatti recenti:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
<a href="https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/">Mantellini sul Post</a>.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>I primi due anni ho provato a concentrarmi su queste domande:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>la cultura hacker ha ancora una componente anarchica?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Sono ancora possibili atti come quelli degli attivisti del cypherpunk?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In che ottica possiamo inquadrare le azioni di Assange e Snowden?</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.</p>
|
||||||
|
<p>Prima dell'arrivo di internet e dell'informatica piu` in generale il cuore degli organismi di potere e controllo era facile da individuare.</p>
|
||||||
|
<p>Cosi` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.</p>
|
||||||
|
<p>Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.</p>
|
||||||
|
<p>Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita`.
|
||||||
|
E` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.</p>
|
||||||
|
<p>Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.</p>
|
||||||
|
<p>Questo ad oggi non e` piu` vero, gli edifici benche` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.</p>
|
||||||
|
<p>Cosi` quando nel <a href="https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt">2016</a> i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.</p>
|
||||||
|
<p>Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu` nelle strutture fisiche.</p>
|
||||||
|
<p>Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che a domande come:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Did Facebook deceive its users?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"if I delete my account, how long does Facebook keep my data?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Does Facebook use cross-device tracking?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What data is being sold?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Is facebook censoring specific groups?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What’s Facebook’s reach beyond its website?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"How much information does Facebook have on non-Facebook users?"</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Zuckerberg ha potuto affermare che non conosce la risposta o che puo` chiedere al suo team e rispondere in futuro.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Whether you know it or not, if you are a hacker, you are a revolutionary</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Una volta compreso cio` queste parole di Doctor Crash su <a href="http://phrack.org/issues/6/3.html">phrack</a> appaiono ingenue.</p>
|
||||||
|
<p>Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.</p>
|
||||||
|
<p>Sempre Doctor Crash scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution." </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Questo, complice la cultura hacker, oggi non e` piu` possibile.</p>
|
||||||
|
<h3>Opensource e Free Software</h3>
|
||||||
|
<p>Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.</p>
|
||||||
|
<p>Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e` stato corrotto mediaticamente andando a ricoprire significato di cracker.</p>
|
||||||
|
<p>Stallman nel 2007 gia` ci avvertiva che il software opensource manca l'obbiettivo:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi. </p>
|
||||||
|
<p>L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e` cancro o comunismo.</p>
|
||||||
|
<p>Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.</p>
|
||||||
|
<p>Basta fare un giro su <a href="https://stackshare.io/stacks">stackshare.io</a> per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.</p>
|
||||||
|
<p>Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.</p>
|
||||||
|
<p>Ne sono un esempio gitlab, redislab e elasticsearch.</p>
|
||||||
|
<p>Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.</p></div></description><category>lecture</category><category>PesceWanda</category><category>politecnico</category><category>polito</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2019/05/18/cultura-hacker/</guid><pubDate>Sat, 18 May 2019 00:00:00 GMT</pubDate></item></channel></rss>
|
52
output/categories/politecnico/index.html
Normal file
52
output/categories/politecnico/index.html
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>Posts about politecnico | Caught in the Net</title>
|
||||||
|
<link rel="stylesheet" href="../../assets/blog/fonts/opensans.css">
|
||||||
|
<link href="../../assets/blog/css/normalize.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../../assets/blog/css/cayman.css" rel="stylesheet" type="text/css">
|
||||||
|
<meta name="theme-color" content="#5670d4">
|
||||||
|
<meta name="generator" content="Nikola (getnikola.com)">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="../../rss.xml">
|
||||||
|
<link rel="canonical" href="francescomecca.eu/categories/politecnico/">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS for tag politecnico" hreflang="en" href="../politecnico.xml">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<section class="page-header"><h1 class="project-name">
|
||||||
|
Caught in the Net
|
||||||
|
</h1>
|
||||||
|
<h2 class="project-tagline">La rete ti cattura ma libera il pensiero</h2>
|
||||||
|
<a class="btn" href="../../">Home</a>
|
||||||
|
<a class="btn" href="../../pages/about/">About me</a>
|
||||||
|
<a class="btn" href="../../pages/contattami/">Contact me</a>
|
||||||
|
<a class="btn" href="../../archiveall.html">Archive</a>
|
||||||
|
<a class="btn" href="../../rss.xml">RSS</a>
|
||||||
|
<a class="btn" href="http://francescomecca.eu/git/pesceWanda">Personal Git</a>
|
||||||
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
|
<a class="btn" href="../../wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
|
</section><section class="main-content"><article class="tagpage"><header><h1>Posts about politecnico</h1>
|
||||||
|
<div class="metadata">
|
||||||
|
|
||||||
|
<p class="feedlink">
|
||||||
|
|
||||||
|
<a href="../politecnico.xml" hreflang="en" type="application/rss+xml">RSS feed</a>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</header><ul class="postlist">
|
||||||
|
<li>
|
||||||
|
<time class="listdate" datetime="2019-05-18T00:00:00Z" title="2019-05-18 00:00">2019-05-18 00:00</time><a href="../../blog/2019/05/18/cultura-hacker/" class="listtitle">Breve storia della cultura hacker</a><a></a>
|
||||||
|
</li>
|
||||||
|
</ul></article><footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
||||||
|
<span class="site-footer-credits"><a href="https://getnikola.com">Nikola</a>, <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a>.</span>
|
||||||
|
</footer></section>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
260
output/categories/polito.xml
Normal file
260
output/categories/polito.xml
Normal file
|
@ -0,0 +1,260 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about polito)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/polito.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sat, 18 May 2019 21:11:19 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Breve storia della cultura hacker</title><link>francescomecca.eu/blog/2019/05/18/cultura-hacker/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso <a href="http://rivoluzionedigitale.polito.it/">Rivoluzione Digitale</a>.</p>
|
||||||
|
<h2>Scopo della lezione</h2>
|
||||||
|
<p>Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e` alle radici dell'informatica come scienza e come strumento di cultura di massa.</p>
|
||||||
|
<h2>Jargon File</h2>
|
||||||
|
<p>Cosi` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita` iniziarono a raccogliere gli slang piu` utilizzati e le storie legate a questi modi di esprimersi.</p>
|
||||||
|
<p>Con l'espandersi della comunita` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.</p>
|
||||||
|
<p><a href="http://catdb.org/esr">ESR</a> scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Esempi di slang e trasformazioni del lessico:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Data General -&gt; Dirty Genitals</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>IBM 360 -&gt; IBM Three-Sickly</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Government Property -- Do Not Duplicate (on keys) -&gt; Government Duplicity -- Do Not Propagate</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>for historical reasons -&gt; for hysterical raisins</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Margaret Jacks Hall (the CS building at Stanford) -&gt; Marginal Hacks Hall</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft -&gt; Microsloth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Internet Explorer -&gt; Internet Exploiter</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft Outlook -&gt; Microsoft Outhouse</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Linux -&gt; Linsux</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>FreeBSD -&gt; FreeLSD</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>C# -&gt; C Flat</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Piu` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano <code>true</code> <code>false</code>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Definizione della parola hacker</h3>
|
||||||
|
<p><img alt="Definition of hacker" src="francescomecca.eu/wp-content/uploads/2019/def_hacker.jpg"></p>
|
||||||
|
<p>Come si evince dall'immagine il significato della parola hacker nel gergo comune si e` via via svuotato per poi andare a sostituire quello del termine cracker.</p>
|
||||||
|
<p>Un cracker e` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu` nobili.</p>
|
||||||
|
<p>Del termine hacker abbiamo piu` definizioni, alcune indifferenti all'uso di sistemi informatici:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona capace di programmare celermente e con precisione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.</p>
|
||||||
|
<h2>Chiave di lettura</h2>
|
||||||
|
<p>Nella storia della cultura hacker si possono distinguere tre tipi di persone:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>i poeti e matematici, come Donald Knuth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>gli esperti di determinate tipologie di hardware o software, come Bruce Schneier</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>i makers, coloro che costruiscono cio` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita` di cui parleremo rientrano in piu` di una di queste categoria. In tutti i casi e` importante capire che sono tre approcci complementari.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Storia</h2>
|
||||||
|
<h3>In the beginning there were the real programmers</h3>
|
||||||
|
<p>La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.</p>
|
||||||
|
<p>Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.</p>
|
||||||
|
<p>Fra i piu` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono` al primo avvio.</p>
|
||||||
|
<p>Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.</p>
|
||||||
|
<p>Qua parte il primo filone della storia della cultura hacker, quello universitario.</p>
|
||||||
|
<h4>I primi hacker, la tribu` connessa</h4>
|
||||||
|
<p>Rimanendo all'interno delle universita` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.</p>
|
||||||
|
<p>Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).</p>
|
||||||
|
<p>Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.</p>
|
||||||
|
<p>Questo e` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.</p>
|
||||||
|
<p>Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita` e laboratori di ricerca.</p>
|
||||||
|
<p>Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu` ampia di entusiasti.</p>
|
||||||
|
<p>Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.</p>
|
||||||
|
<h4>La nascita di Unix</h4>
|
||||||
|
<p>Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.</p>
|
||||||
|
<p>All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e` stata quella di fornire un'interfaccia unificata e le stesse funzionalita` su macchine diverse.</p>
|
||||||
|
<p>Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita` fra macchine diverse.</p>
|
||||||
|
<p>C e` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e` rimasta viva nei suoi discendenti.</p>
|
||||||
|
<h3>Freak + Phone = Phreaking</h3>
|
||||||
|
<p>Il reverse engineering e` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.</p>
|
||||||
|
<p>I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.</p>
|
||||||
|
<p>Il piu` celebre fra questi e` John Draper che scopri` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.</p>
|
||||||
|
<p>Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.</p>
|
||||||
|
<h3>Digressione: Anarco Illuminismo</h3>
|
||||||
|
<p>La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se` ideali di due ideologie differenti.</p>
|
||||||
|
<p>Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.</p>
|
||||||
|
<p>Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.</p>
|
||||||
|
<p>Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.</p>
|
||||||
|
<p>Nonostante cio` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.</p>
|
||||||
|
<h3>L'era del software proprietario</h3>
|
||||||
|
<p>Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una serie meno organizzata di gruppetti piu` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Nel frattempo iniziavano a diventare piu` comuni le prime macchine prodotte da Apple e Microsoft. In realta` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.</p>
|
||||||
|
<p>La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.</p>
|
||||||
|
<p>Nel 1983 DEC annuncio` la fine della linea dei PDP, definendo cosi` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&amp;T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.</p>
|
||||||
|
<p>L'hackerdom vide la possibilita` che uno dei suoi piu` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.</p>
|
||||||
|
<p>Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&amp;T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita` delle sue implementazioni, ma AT&amp;T vinse molte battaglie legali appropriandosi di vari standard.</p>
|
||||||
|
<h3>Verso una prima ideologia hacker</h3>
|
||||||
|
<p>In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita` sarebbe sparito lentamente.</p>
|
||||||
|
<p>Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu` severo (benche` non sia paragonabile alla copertura che tali eventi hanno oggi).</p>
|
||||||
|
<p>La soluzione proposta risiede nella congiunzione di tre idee:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>decentralizzazione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>crittografia</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>software libero</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Decentralizzazione</h4>
|
||||||
|
<p>La decentralizzazione e` il processo in cui un'attivita` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.</p>
|
||||||
|
<p>L'assunto alla base e` il principio Manzoniano per cui una persona che detiene il potere si ritrovera` prima o poi costretta a compiere decisioni non etiche. La soluzione e` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.</p>
|
||||||
|
<p>Un'esempio di decentralizzazione e` l'architettura di internet, almeno nelle sue prime forme, dove non c'e` un'autorita` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu` attuale e` la rete Bittorrent.</p>
|
||||||
|
<h4>Crittografia</h4>
|
||||||
|
<p>Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.</p>
|
||||||
|
<p>Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.</p>
|
||||||
|
<p>L'idea alla base (Cypherpunk's Manifesto) e` che la privacy e` necessaria per poter costituire una societa` aperta nell'era dell'informazione; non c'e` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.</p>
|
||||||
|
<p>Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.</p>
|
||||||
|
<h4>Software Libero</h4>
|
||||||
|
<p>Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.</p>
|
||||||
|
<p>Quando nel 1980 la stampante fu sostituita Xerox si rifiuto` di concedere a Stallman le facolta` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.</p>
|
||||||
|
<p>Nel 1984 Stallman si licenzio` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto` subito l'interesse della comunita`.</p>
|
||||||
|
<p>Il progetto GNU e` una collezione di software di qualsiasi tipo che rispetti le liberta` garantite dalla licensa <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>; fra questi i piu` famosi sono <a href="https://gcc.gnu.org/">GCC</a>, <a href="https://www.gnu.org/software/emacs/">emacs</a>, <a href="https://www.gnu.org/software/octave/">Octave</a>, <a href="https://www.r-project.org/">R</a> ma anche software di attivismo, gestione delle finanze e tant'altro.</p>
|
||||||
|
<p>Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e` ancora molto instabile.</p>
|
||||||
|
<p>Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. <a href="https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate">Questo dibattito fu il soggetto di un'enorme flame war su usenet</a>.</p>
|
||||||
|
<p>Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.</p>
|
||||||
|
<p>Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta` andrebbe chiamato <a href="https://www.gnu.org/gnu/why-gnu-linux.html">GNU/Linux</a>.</p>
|
||||||
|
<h2>Lo stato della cultura hacker oggi</h2>
|
||||||
|
<p>Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu` amatoriale e pratico, rivolto all'exploitation e infine quello piu` ideologico.</p>
|
||||||
|
<p>E` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo` definire tale), specialmente per chi come me non ne ha le competenze benche` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.</p>
|
||||||
|
<p>Nonostante cio` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.</p>
|
||||||
|
<h3>Disobbedienza civile elettronica</h3>
|
||||||
|
<p>Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).</p>
|
||||||
|
<p>Queste due persone e tutto cio` ha permesso loro di raggiungere questa posizione rappresentano <a href="http://www.mantellini.it/2012/08/17/perche-assange-e-internet/">cio` che il potere teme di internet</a>.</p>
|
||||||
|
<p>Inoltre, riguardo i fatti recenti:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
<a href="https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/">Mantellini sul Post</a>.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>I primi due anni ho provato a concentrarmi su queste domande:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>la cultura hacker ha ancora una componente anarchica?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Sono ancora possibili atti come quelli degli attivisti del cypherpunk?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In che ottica possiamo inquadrare le azioni di Assange e Snowden?</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.</p>
|
||||||
|
<p>Prima dell'arrivo di internet e dell'informatica piu` in generale il cuore degli organismi di potere e controllo era facile da individuare.</p>
|
||||||
|
<p>Cosi` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.</p>
|
||||||
|
<p>Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.</p>
|
||||||
|
<p>Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita`.
|
||||||
|
E` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.</p>
|
||||||
|
<p>Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.</p>
|
||||||
|
<p>Questo ad oggi non e` piu` vero, gli edifici benche` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.</p>
|
||||||
|
<p>Cosi` quando nel <a href="https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt">2016</a> i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.</p>
|
||||||
|
<p>Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu` nelle strutture fisiche.</p>
|
||||||
|
<p>Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che a domande come:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Did Facebook deceive its users?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"if I delete my account, how long does Facebook keep my data?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Does Facebook use cross-device tracking?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What data is being sold?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Is facebook censoring specific groups?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What’s Facebook’s reach beyond its website?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"How much information does Facebook have on non-Facebook users?"</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Zuckerberg ha potuto affermare che non conosce la risposta o che puo` chiedere al suo team e rispondere in futuro.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Whether you know it or not, if you are a hacker, you are a revolutionary</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Una volta compreso cio` queste parole di Doctor Crash su <a href="http://phrack.org/issues/6/3.html">phrack</a> appaiono ingenue.</p>
|
||||||
|
<p>Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.</p>
|
||||||
|
<p>Sempre Doctor Crash scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution." </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Questo, complice la cultura hacker, oggi non e` piu` possibile.</p>
|
||||||
|
<h3>Opensource e Free Software</h3>
|
||||||
|
<p>Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.</p>
|
||||||
|
<p>Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e` stato corrotto mediaticamente andando a ricoprire significato di cracker.</p>
|
||||||
|
<p>Stallman nel 2007 gia` ci avvertiva che il software opensource manca l'obbiettivo:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi. </p>
|
||||||
|
<p>L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e` cancro o comunismo.</p>
|
||||||
|
<p>Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.</p>
|
||||||
|
<p>Basta fare un giro su <a href="https://stackshare.io/stacks">stackshare.io</a> per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.</p>
|
||||||
|
<p>Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.</p>
|
||||||
|
<p>Ne sono un esempio gitlab, redislab e elasticsearch.</p>
|
||||||
|
<p>Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.</p></div></description><category>lecture</category><category>PesceWanda</category><category>politecnico</category><category>polito</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2019/05/18/cultura-hacker/</guid><pubDate>Sat, 18 May 2019 00:00:00 GMT</pubDate></item></channel></rss>
|
52
output/categories/polito/index.html
Normal file
52
output/categories/polito/index.html
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>Posts about polito | Caught in the Net</title>
|
||||||
|
<link rel="stylesheet" href="../../assets/blog/fonts/opensans.css">
|
||||||
|
<link href="../../assets/blog/css/normalize.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../../assets/blog/css/cayman.css" rel="stylesheet" type="text/css">
|
||||||
|
<meta name="theme-color" content="#5670d4">
|
||||||
|
<meta name="generator" content="Nikola (getnikola.com)">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="../../rss.xml">
|
||||||
|
<link rel="canonical" href="francescomecca.eu/categories/polito/">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS for tag polito" hreflang="en" href="../polito.xml">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<section class="page-header"><h1 class="project-name">
|
||||||
|
Caught in the Net
|
||||||
|
</h1>
|
||||||
|
<h2 class="project-tagline">La rete ti cattura ma libera il pensiero</h2>
|
||||||
|
<a class="btn" href="../../">Home</a>
|
||||||
|
<a class="btn" href="../../pages/about/">About me</a>
|
||||||
|
<a class="btn" href="../../pages/contattami/">Contact me</a>
|
||||||
|
<a class="btn" href="../../archiveall.html">Archive</a>
|
||||||
|
<a class="btn" href="../../rss.xml">RSS</a>
|
||||||
|
<a class="btn" href="http://francescomecca.eu/git/pesceWanda">Personal Git</a>
|
||||||
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
|
<a class="btn" href="../../wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
|
</section><section class="main-content"><article class="tagpage"><header><h1>Posts about polito</h1>
|
||||||
|
<div class="metadata">
|
||||||
|
|
||||||
|
<p class="feedlink">
|
||||||
|
|
||||||
|
<a href="../polito.xml" hreflang="en" type="application/rss+xml">RSS feed</a>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</header><ul class="postlist">
|
||||||
|
<li>
|
||||||
|
<time class="listdate" datetime="2019-05-18T00:00:00Z" title="2019-05-18 00:00">2019-05-18 00:00</time><a href="../../blog/2019/05/18/cultura-hacker/" class="listtitle">Breve storia della cultura hacker</a><a></a>
|
||||||
|
</li>
|
||||||
|
</ul></article><footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
||||||
|
<span class="site-footer-credits"><a href="https://getnikola.com">Nikola</a>, <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a>.</span>
|
||||||
|
</footer></section>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about programming)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/programming.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:31:59 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Un articolo per r/italyinformatica</title><link>francescomecca.eu/blog/2018/07/27/addio-reddit/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo articolo è stato originalmente scritto per il <a href="https://tldr.italyinformatica.org">blog</a> di <a href="https://reddit.com/r/italyinformatica">r/italyinformatica</a>.</p>
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about programming)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/programming.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:41:16 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Un articolo per r/italyinformatica</title><link>francescomecca.eu/blog/2018/07/27/addio-reddit/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo articolo è stato originalmente scritto per il <a href="https://tldr.italyinformatica.org">blog</a> di <a href="https://reddit.com/r/italyinformatica">r/italyinformatica</a>.</p>
|
||||||
<p>Negli ultimi anni abbiamo assistito all'ascesa di un gran numero di linguaggi di programmazione, in particolare <a href="https://golang.rg">Go</a> (2009), <a href="https://www.rust-lang.org/en-US/">Rust</a> (2010), <a href="https://kotlinlang.org/">Kotlin</a> (2011), <a href="https://elixir-lang.org/">Elixir</a> (2011), <a href="https://crystal-lang.org/">Crystal</a> (2014), <a href="https://www.ponylang.or">Pony</a> (2014).</p>
|
<p>Negli ultimi anni abbiamo assistito all'ascesa di un gran numero di linguaggi di programmazione, in particolare <a href="https://golang.rg">Go</a> (2009), <a href="https://www.rust-lang.org/en-US/">Rust</a> (2010), <a href="https://kotlinlang.org/">Kotlin</a> (2011), <a href="https://elixir-lang.org/">Elixir</a> (2011), <a href="https://crystal-lang.org/">Crystal</a> (2014), <a href="https://www.ponylang.or">Pony</a> (2014).</p>
|
||||||
<p>Questa esplosione di nuovi linguaggi è dovuta, fra le molte motivazioni, alla necessità di adottare paradigmi di programmazione non immediatamente recenti come cittadini di primo tipo.</p>
|
<p>Questa esplosione di nuovi linguaggi è dovuta, fra le molte motivazioni, alla necessità di adottare paradigmi di programmazione non immediatamente recenti come cittadini di primo tipo.</p>
|
||||||
<p>Rispetto ai più maturi C, C++ o Java, Python o Ruby questi linguaggi offrono "out of the box" supporto per:</p>
|
<p>Rispetto ai più maturi C, C++ o Java, Python o Ruby questi linguaggi offrono "out of the box" supporto per:</p>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about reddit)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/reddit.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:40:18 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about reddit)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/reddit.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:40:47 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
||||||
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
<p><img alt="Me, giving the talk" src="francescomecca.eu/wp-content/uploads/2018/coventry.jpg"></p>
|
||||||
<h2>In the beginning there was the LMS</h2>
|
<h2>In the beginning there was the LMS</h2>
|
||||||
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
<p>Learning Management Systems appeared on the market around the beginning of 2000.</p>
|
||||||
|
|
|
@ -1,5 +1,263 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about Rivoluzione Digitale)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/rivoluzione-digitale.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:27:55 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Some shallow thoughts from my tiny virtual space</title><link>francescomecca.eu/blog/2017/3/20/spazio-digitale-rant-facebook__eng/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>I am not the kind of guy who goes to concerts. Ever.</p>
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about Rivoluzione Digitale)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/rivoluzione-digitale.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sat, 18 May 2019 21:11:19 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Breve storia della cultura hacker</title><link>francescomecca.eu/blog/2019/05/18/cultura-hacker/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso <a href="http://rivoluzionedigitale.polito.it/">Rivoluzione Digitale</a>.</p>
|
||||||
|
<h2>Scopo della lezione</h2>
|
||||||
|
<p>Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e` alle radici dell'informatica come scienza e come strumento di cultura di massa.</p>
|
||||||
|
<h2>Jargon File</h2>
|
||||||
|
<p>Cosi` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita` iniziarono a raccogliere gli slang piu` utilizzati e le storie legate a questi modi di esprimersi.</p>
|
||||||
|
<p>Con l'espandersi della comunita` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.</p>
|
||||||
|
<p><a href="http://catdb.org/esr">ESR</a> scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Esempi di slang e trasformazioni del lessico:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Data General -&gt; Dirty Genitals</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>IBM 360 -&gt; IBM Three-Sickly</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Government Property -- Do Not Duplicate (on keys) -&gt; Government Duplicity -- Do Not Propagate</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>for historical reasons -&gt; for hysterical raisins</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Margaret Jacks Hall (the CS building at Stanford) -&gt; Marginal Hacks Hall</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft -&gt; Microsloth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Internet Explorer -&gt; Internet Exploiter</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft Outlook -&gt; Microsoft Outhouse</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Linux -&gt; Linsux</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>FreeBSD -&gt; FreeLSD</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>C# -&gt; C Flat</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Piu` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano <code>true</code> <code>false</code>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Definizione della parola hacker</h3>
|
||||||
|
<p><img alt="Definition of hacker" src="francescomecca.eu/wp-content/uploads/2019/def_hacker.jpg"></p>
|
||||||
|
<p>Come si evince dall'immagine il significato della parola hacker nel gergo comune si e` via via svuotato per poi andare a sostituire quello del termine cracker.</p>
|
||||||
|
<p>Un cracker e` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu` nobili.</p>
|
||||||
|
<p>Del termine hacker abbiamo piu` definizioni, alcune indifferenti all'uso di sistemi informatici:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona capace di programmare celermente e con precisione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.</p>
|
||||||
|
<h2>Chiave di lettura</h2>
|
||||||
|
<p>Nella storia della cultura hacker si possono distinguere tre tipi di persone:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>i poeti e matematici, come Donald Knuth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>gli esperti di determinate tipologie di hardware o software, come Bruce Schneier</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>i makers, coloro che costruiscono cio` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita` di cui parleremo rientrano in piu` di una di queste categoria. In tutti i casi e` importante capire che sono tre approcci complementari.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Storia</h2>
|
||||||
|
<h3>In the beginning there were the real programmers</h3>
|
||||||
|
<p>La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.</p>
|
||||||
|
<p>Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.</p>
|
||||||
|
<p>Fra i piu` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono` al primo avvio.</p>
|
||||||
|
<p>Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.</p>
|
||||||
|
<p>Qua parte il primo filone della storia della cultura hacker, quello universitario.</p>
|
||||||
|
<h4>I primi hacker, la tribu` connessa</h4>
|
||||||
|
<p>Rimanendo all'interno delle universita` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.</p>
|
||||||
|
<p>Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).</p>
|
||||||
|
<p>Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.</p>
|
||||||
|
<p>Questo e` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.</p>
|
||||||
|
<p>Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita` e laboratori di ricerca.</p>
|
||||||
|
<p>Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu` ampia di entusiasti.</p>
|
||||||
|
<p>Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.</p>
|
||||||
|
<h4>La nascita di Unix</h4>
|
||||||
|
<p>Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.</p>
|
||||||
|
<p>All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e` stata quella di fornire un'interfaccia unificata e le stesse funzionalita` su macchine diverse.</p>
|
||||||
|
<p>Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita` fra macchine diverse.</p>
|
||||||
|
<p>C e` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e` rimasta viva nei suoi discendenti.</p>
|
||||||
|
<h3>Freak + Phone = Phreaking</h3>
|
||||||
|
<p>Il reverse engineering e` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.</p>
|
||||||
|
<p>I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.</p>
|
||||||
|
<p>Il piu` celebre fra questi e` John Draper che scopri` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.</p>
|
||||||
|
<p>Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.</p>
|
||||||
|
<h3>Digressione: Anarco Illuminismo</h3>
|
||||||
|
<p>La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se` ideali di due ideologie differenti.</p>
|
||||||
|
<p>Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.</p>
|
||||||
|
<p>Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.</p>
|
||||||
|
<p>Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.</p>
|
||||||
|
<p>Nonostante cio` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.</p>
|
||||||
|
<h3>L'era del software proprietario</h3>
|
||||||
|
<p>Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una serie meno organizzata di gruppetti piu` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Nel frattempo iniziavano a diventare piu` comuni le prime macchine prodotte da Apple e Microsoft. In realta` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.</p>
|
||||||
|
<p>La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.</p>
|
||||||
|
<p>Nel 1983 DEC annuncio` la fine della linea dei PDP, definendo cosi` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&amp;T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.</p>
|
||||||
|
<p>L'hackerdom vide la possibilita` che uno dei suoi piu` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.</p>
|
||||||
|
<p>Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&amp;T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita` delle sue implementazioni, ma AT&amp;T vinse molte battaglie legali appropriandosi di vari standard.</p>
|
||||||
|
<h3>Verso una prima ideologia hacker</h3>
|
||||||
|
<p>In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita` sarebbe sparito lentamente.</p>
|
||||||
|
<p>Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu` severo (benche` non sia paragonabile alla copertura che tali eventi hanno oggi).</p>
|
||||||
|
<p>La soluzione proposta risiede nella congiunzione di tre idee:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>decentralizzazione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>crittografia</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>software libero</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Decentralizzazione</h4>
|
||||||
|
<p>La decentralizzazione e` il processo in cui un'attivita` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.</p>
|
||||||
|
<p>L'assunto alla base e` il principio Manzoniano per cui una persona che detiene il potere si ritrovera` prima o poi costretta a compiere decisioni non etiche. La soluzione e` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.</p>
|
||||||
|
<p>Un'esempio di decentralizzazione e` l'architettura di internet, almeno nelle sue prime forme, dove non c'e` un'autorita` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu` attuale e` la rete Bittorrent.</p>
|
||||||
|
<h4>Crittografia</h4>
|
||||||
|
<p>Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.</p>
|
||||||
|
<p>Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.</p>
|
||||||
|
<p>L'idea alla base (Cypherpunk's Manifesto) e` che la privacy e` necessaria per poter costituire una societa` aperta nell'era dell'informazione; non c'e` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.</p>
|
||||||
|
<p>Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.</p>
|
||||||
|
<h4>Software Libero</h4>
|
||||||
|
<p>Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.</p>
|
||||||
|
<p>Quando nel 1980 la stampante fu sostituita Xerox si rifiuto` di concedere a Stallman le facolta` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.</p>
|
||||||
|
<p>Nel 1984 Stallman si licenzio` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto` subito l'interesse della comunita`.</p>
|
||||||
|
<p>Il progetto GNU e` una collezione di software di qualsiasi tipo che rispetti le liberta` garantite dalla licensa <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>; fra questi i piu` famosi sono <a href="https://gcc.gnu.org/">GCC</a>, <a href="https://www.gnu.org/software/emacs/">emacs</a>, <a href="https://www.gnu.org/software/octave/">Octave</a>, <a href="https://www.r-project.org/">R</a> ma anche software di attivismo, gestione delle finanze e tant'altro.</p>
|
||||||
|
<p>Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e` ancora molto instabile.</p>
|
||||||
|
<p>Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. <a href="https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate">Questo dibattito fu il soggetto di un'enorme flame war su usenet</a>.</p>
|
||||||
|
<p>Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.</p>
|
||||||
|
<p>Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta` andrebbe chiamato <a href="https://www.gnu.org/gnu/why-gnu-linux.html">GNU/Linux</a>.</p>
|
||||||
|
<h2>Lo stato della cultura hacker oggi</h2>
|
||||||
|
<p>Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu` amatoriale e pratico, rivolto all'exploitation e infine quello piu` ideologico.</p>
|
||||||
|
<p>E` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo` definire tale), specialmente per chi come me non ne ha le competenze benche` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.</p>
|
||||||
|
<p>Nonostante cio` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.</p>
|
||||||
|
<h3>Disobbedienza civile elettronica</h3>
|
||||||
|
<p>Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).</p>
|
||||||
|
<p>Queste due persone e tutto cio` ha permesso loro di raggiungere questa posizione rappresentano <a href="http://www.mantellini.it/2012/08/17/perche-assange-e-internet/">cio` che il potere teme di internet</a>.</p>
|
||||||
|
<p>Inoltre, riguardo i fatti recenti:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
<a href="https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/">Mantellini sul Post</a>.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>I primi due anni ho provato a concentrarmi su queste domande:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>la cultura hacker ha ancora una componente anarchica?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Sono ancora possibili atti come quelli degli attivisti del cypherpunk?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In che ottica possiamo inquadrare le azioni di Assange e Snowden?</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.</p>
|
||||||
|
<p>Prima dell'arrivo di internet e dell'informatica piu` in generale il cuore degli organismi di potere e controllo era facile da individuare.</p>
|
||||||
|
<p>Cosi` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.</p>
|
||||||
|
<p>Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.</p>
|
||||||
|
<p>Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita`.
|
||||||
|
E` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.</p>
|
||||||
|
<p>Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.</p>
|
||||||
|
<p>Questo ad oggi non e` piu` vero, gli edifici benche` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.</p>
|
||||||
|
<p>Cosi` quando nel <a href="https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt">2016</a> i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.</p>
|
||||||
|
<p>Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu` nelle strutture fisiche.</p>
|
||||||
|
<p>Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che a domande come:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Did Facebook deceive its users?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"if I delete my account, how long does Facebook keep my data?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Does Facebook use cross-device tracking?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What data is being sold?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Is facebook censoring specific groups?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What’s Facebook’s reach beyond its website?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"How much information does Facebook have on non-Facebook users?"</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Zuckerberg ha potuto affermare che non conosce la risposta o che puo` chiedere al suo team e rispondere in futuro.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Whether you know it or not, if you are a hacker, you are a revolutionary</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Una volta compreso cio` queste parole di Doctor Crash su <a href="http://phrack.org/issues/6/3.html">phrack</a> appaiono ingenue.</p>
|
||||||
|
<p>Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.</p>
|
||||||
|
<p>Sempre Doctor Crash scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution." </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Questo, complice la cultura hacker, oggi non e` piu` possibile.</p>
|
||||||
|
<h3>Opensource e Free Software</h3>
|
||||||
|
<p>Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.</p>
|
||||||
|
<p>Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e` stato corrotto mediaticamente andando a ricoprire significato di cracker.</p>
|
||||||
|
<p>Stallman nel 2007 gia` ci avvertiva che il software opensource manca l'obbiettivo:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi. </p>
|
||||||
|
<p>L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e` cancro o comunismo.</p>
|
||||||
|
<p>Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.</p>
|
||||||
|
<p>Basta fare un giro su <a href="https://stackshare.io/stacks">stackshare.io</a> per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.</p>
|
||||||
|
<p>Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.</p>
|
||||||
|
<p>Ne sono un esempio gitlab, redislab e elasticsearch.</p>
|
||||||
|
<p>Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.</p></div></description><category>lecture</category><category>PesceWanda</category><category>politecnico</category><category>polito</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2019/05/18/cultura-hacker/</guid><pubDate>Sat, 18 May 2019 00:00:00 GMT</pubDate></item><item><title>Some shallow thoughts from my tiny virtual space</title><link>francescomecca.eu/blog/2017/3/20/spazio-digitale-rant-facebook__eng/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>I am not the kind of guy who goes to concerts. Ever.</p>
|
||||||
<p>I prefer studio recordings because in these, the logical thoughts of the artist emerge as the track comes to life and reaches our ears. I have always been attracted by that, much more than to the sprinkle of emotions that come from venues and theaters.</p>
|
<p>I prefer studio recordings because in these, the logical thoughts of the artist emerge as the track comes to life and reaches our ears. I have always been attracted by that, much more than to the sprinkle of emotions that come from venues and theaters.</p>
|
||||||
<p>In my case the exceptions are the live performances of Dale Crover (from The Melvins) and Jeff Mangum. Both of which were some kind of unshaped epiphanic experiences for me. </p>
|
<p>In my case the exceptions are the live performances of Dale Crover (from The Melvins) and Jeff Mangum. Both of which were some kind of unshaped epiphanic experiences for me. </p>
|
||||||
<p>Milan, December 2015, The Melvins were at the end of their most recent European tour when Jeff Pinkus drops the bass guitar, tunes the effects pedal and kicks the bass with his bare foot until the right repetition of sounds comes out of the speakers. Slowly, each one of the members leaves the stage, sounds are still coming from
|
<p>Milan, December 2015, The Melvins were at the end of their most recent European tour when Jeff Pinkus drops the bass guitar, tunes the effects pedal and kicks the bass with his bare foot until the right repetition of sounds comes out of the speakers. Slowly, each one of the members leaves the stage, sounds are still coming from
|
||||||
|
|
|
@ -42,6 +42,9 @@
|
||||||
|
|
||||||
</header><ul class="postlist">
|
</header><ul class="postlist">
|
||||||
<li>
|
<li>
|
||||||
|
<time class="listdate" datetime="2019-05-18T00:00:00Z" title="2019-05-18 00:00">2019-05-18 00:00</time><a href="../../blog/2019/05/18/cultura-hacker/" class="listtitle">Breve storia della cultura hacker</a><a></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
<time class="listdate" datetime="2017-03-20T00:00:00Z" title="2017-03-20 00:00">2017-03-20 00:00</time><a href="../../blog/2017/3/20/spazio-digitale-rant-facebook__eng/" class="listtitle">Some shallow thoughts from my tiny virtual space</a><a></a>
|
<time class="listdate" datetime="2017-03-20T00:00:00Z" title="2017-03-20 00:00">2017-03-20 00:00</time><a href="../../blog/2017/3/20/spazio-digitale-rant-facebook__eng/" class="listtitle">Some shallow thoughts from my tiny virtual space</a><a></a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
37
output/categories/web.xml
Normal file
37
output/categories/web.xml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net (Posts about web)</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/categories/web.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sun, 24 Mar 2019 14:38:24 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Experiment part 1</title><link>francescomecca.eu/blog/2018/15/11/programming-session/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is an experimental blogpost with the goal of improving myself on the design of system programs.</p>
|
||||||
|
<p>The following words are a flow that tries to recapture the process that I follow when I program.</p>
|
||||||
|
<h2>17.11</h2>
|
||||||
|
<p>This is the <a href="https://www.discogs.com/Various-Psychedelic-Underground-13/release/1251814">tracklist</a>:</p>
|
||||||
|
<p>Tracklist
|
||||||
|
1 Waniyetula - Lindis Farne
|
||||||
|
2 Missus Beastly - Steel's Electric
|
||||||
|
3 Vikings Invasion - Shadow Boogie
|
||||||
|
4 Live - Fly Like A Bird
|
||||||
|
5 Arktis - Speed Boogie
|
||||||
|
6 Level π - Hubble's Dream - Dream Without End
|
||||||
|
7 Emma Myldenberger - RAA
|
||||||
|
8 Skyline - Beautiful Lady
|
||||||
|
9 Guru Guru - Oxymoron</p>
|
||||||
|
<h2>The problem</h2>
|
||||||
|
<p>Yesterday I got an insider tip that probably http://isole.ecn.org/ might be taken down and I remembered that I had an old archive of the entire site.
|
||||||
|
Actually I am an amateur data hoarder so I keep archives/backups of pretty much everything I find amusing.</p>
|
||||||
|
<p>I wanted to update the archive so I used httrack.
|
||||||
|
I found the following problems:</p>
|
||||||
|
<ol>
|
||||||
|
<li>too slow (doesn't even use 1/20 of my connection)</li>
|
||||||
|
<li>doesn't understand that if I want to mirror ecn.org I may want isole.ecn.org as well</li>
|
||||||
|
<li>if I configure httrack to archive everything basically I hit some external websites (like google.com) and it starts archiving that as well</li>
|
||||||
|
<li>I can't configure it to avoid any external link because I may need them</li>
|
||||||
|
</ol>
|
||||||
|
<p>A perfect scraper for me would:
|
||||||
|
1. record a list of every external website it hit so that later I can archive them as well
|
||||||
|
2. allow me to scrape subdomains as well
|
||||||
|
3. configure a level of archiving for external websites</p>
|
||||||
|
<h2>The approach</h2>
|
||||||
|
<p>Right now httrack does a perfect job of storing the webpages with a coherent folder layout and offline browsing capabilities.
|
||||||
|
Let's see how it does that.</p>
|
||||||
|
<p>On the original page I can found:
|
||||||
|
<code>&lt;link rel='stylesheet' id='avia-google-webfont' href='//fonts.googleapis.com/css?family=Lato:300,400,700' type='text/css' media='all'/&gt;</code></p>
|
||||||
|
<p>When httrack saves it:
|
||||||
|
<code>&lt;link rel='stylesheet' id='avia-google-webfont' href='../fonts.googleapis.com/css8f84.css?family=Lato:300,400,700' type='text/css' media='all'/&gt;</code></p></div></description><category>dlang</category><category>programming</category><category>web</category><guid>francescomecca.eu/blog/2018/15/11/programming-session/</guid><pubDate>Thu, 15 Nov 2018 00:00:00 GMT</pubDate></item></channel></rss>
|
52
output/categories/web/index.html
Normal file
52
output/categories/web/index.html
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>Posts about web | Caught in the Net</title>
|
||||||
|
<link rel="stylesheet" href="../../assets/blog/fonts/opensans.css">
|
||||||
|
<link href="../../assets/blog/css/normalize.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../../assets/blog/css/cayman.css" rel="stylesheet" type="text/css">
|
||||||
|
<meta name="theme-color" content="#5670d4">
|
||||||
|
<meta name="generator" content="Nikola (getnikola.com)">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="../../rss.xml">
|
||||||
|
<link rel="canonical" href="francescomecca.eu/categories/web/">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS for tag web" hreflang="en" href="../web.xml">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
|
||||||
|
<section class="page-header"><h1 class="project-name">
|
||||||
|
Caught in the Net
|
||||||
|
</h1>
|
||||||
|
<h2 class="project-tagline">La rete ti cattura ma libera il pensiero</h2>
|
||||||
|
<a class="btn" href="../../">Home</a>
|
||||||
|
<a class="btn" href="../../pages/about/">About me</a>
|
||||||
|
<a class="btn" href="../../pages/contattami/">Contact me</a>
|
||||||
|
<a class="btn" href="../../archiveall.html">Archive</a>
|
||||||
|
<a class="btn" href="../../rss.xml">RSS</a>
|
||||||
|
<a class="btn" href="http://francescomecca.eu/git/pesceWanda">Personal Git</a>
|
||||||
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
|
<a class="btn" href="../../wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
|
</section><section class="main-content"><article class="tagpage"><header><h1>Posts about web</h1>
|
||||||
|
<div class="metadata">
|
||||||
|
|
||||||
|
<p class="feedlink">
|
||||||
|
|
||||||
|
<a href="../web.xml" hreflang="en" type="application/rss+xml">RSS feed</a>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</header><ul class="postlist">
|
||||||
|
<li>
|
||||||
|
<time class="listdate" datetime="2018-11-15T00:00:00Z" title="2018-11-15 00:00">2018-11-15 00:00</time><a href="../../blog/2018/15/11/programming-session/" class="listtitle">Experiment part 1</a><a></a>
|
||||||
|
</li>
|
||||||
|
</ul></article><footer class="site-footer" id="footer"><span> CC BY-SA 4.0 International.<br></span>
|
||||||
|
<span class="site-footer-credits"><a href="https://getnikola.com">Nikola</a>, <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a>.</span>
|
||||||
|
</footer></section>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -30,7 +30,155 @@
|
||||||
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
<a class="btn" href="wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
<a class="btn" href="wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
</section><section class="main-content"><div class="posts">
|
</section><section class="main-content"><div class="posts">
|
||||||
<article class="post"><header><h1 class="post-title"><a href="blog/2018/3/27/addio-reddit/" class="u-url">Addio Reddit</a></h1>
|
<article class="post"><header><h1 class="post-title"><a href="blog/2018/07/27/addio-reddit/" class="u-url">Un articolo per r/italyinformatica</a></h1>
|
||||||
|
</header><div>
|
||||||
|
<span class="post-date">27 July 2018</span>
|
||||||
|
</div>
|
||||||
|
<br><div class="e-content entry-content">
|
||||||
|
<div>
|
||||||
|
<p>Questo articolo è stato originalmente scritto per il <a href="https://tldr.italyinformatica.org">blog</a> di <a href="https://reddit.com/r/italyinformatica">r/italyinformatica</a>.</p>
|
||||||
|
<p>Negli ultimi anni abbiamo assistito all'ascesa di un gran numero di linguaggi di programmazione, in particolare <a href="https://golang.rg">Go</a> (2009), <a href="https://www.rust-lang.org/en-US/">Rust</a> (2010), <a href="https://kotlinlang.org/">Kotlin</a> (2011), <a href="https://elixir-lang.org/">Elixir</a> (2011), <a href="https://crystal-lang.org/">Crystal</a> (2014), <a href="https://www.ponylang.or">Pony</a> (2014).</p>
|
||||||
|
<p>Questa esplosione di nuovi linguaggi è dovuta, fra le molte motivazioni, alla necessità di adottare paradigmi di programmazione non immediatamente recenti come cittadini di primo tipo.</p>
|
||||||
|
<p>Rispetto ai più maturi C, C++ o Java, Python o Ruby questi linguaggi offrono "out of the box" supporto per:</p>
|
||||||
|
<ul>
|
||||||
|
<li>una visione moderna delle concorrenze (le goroutines di Go o il modello ad attori di Pony ed Elixir)</li>
|
||||||
|
<li>Memory safeness, in particolare:<ul>
|
||||||
|
<li>assenza di NULL (Pony, Rust, Kotlin)</li>
|
||||||
|
<li>gestione automatica della memoria, il cosiddetto <a href="https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)%20(o%20%5BReference%20Counting%5D(https://en.wikipedia.org/wiki/Reference_counting)%20per%20Rust">Garbage Collector</a>
|
||||||
|
</li>
|
||||||
|
<li>assenza di puntatori</li>
|
||||||
|
<li>assenza di deadlocks</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>Supporto ad HTTP nella standard library</li>
|
||||||
|
<li>Management delle dipendenze (ad eccezione di Kotlin)</li>
|
||||||
|
<li>Namespaces</li>
|
||||||
|
</ul>
|
||||||
|
<p>Chiaramente nessuno di questi linguaggi è oggettivamente superiore agli altri, sono tutti <a href="https://en.wikipedia.org/wiki/Turing_completeness">turing completi</a> e la scelta del programmatore ricade su motivazioni del tutto personali (stile, programmazione ad oggetti, familiarità con altri linguaggi).</p>
|
||||||
|
<h3>Un pò di contesto</h3>
|
||||||
|
<p>Ho scritto la mie prime due righe di codice nel 2013 per il corso di Computer Science del Politecnico di Torino.</p>
|
||||||
|
<p>Per mia fortuna, al Politecnico le cose si muovono ancora lentamente e ci hanno fatto usare C per tutta la durata della triennale. Si è aggiunto un corso di principi della programmazione ad oggetti al terzo anno, in Java.</p>
|
||||||
|
<p>Personalmente ho imparato durante l'estate di quel primo anno le basi di C++ e Python poco dopo.</p>
|
||||||
|
<p>Sono stati con i miei primi <a href="https://github.com/framecca">progetti</a> che ho capito che non si può avere un buon linguaggio senza un buon tooling ed una community vivace e soprattutto tanta, tanta documentazione. Per questo, per molto tempo C è stata la mia prima scelta, dato che il mio target è sempre Linux.</p>
|
||||||
|
<h3>Gli obbiettivi prima del linguaggio</h3>
|
||||||
|
<p>Questo post vuole essere una raccolta più o meno organizzata delle motivazioni per cui mi sono dovuto muovere oltre la frontiera di C nel mio ultimo progetto, ovvero un backend per la raccolta e presentazione di pubblicazione di ricerca e materiale didattico per più di 80 centri di ricerca.</p>
|
||||||
|
<p>Per il Centro <a href="http://nexa.polito.it/">Nexa</a> del Politecnico di Torino mi sono ritrovato per la prima volta responsabile del codice che dovevo scrivere e dell'uso che se ne sarebbe fatto.</p>
|
||||||
|
<p>Ho dovuto tenere in considerazione, oltre chiaramente alla funzionalità della piattaforma, in ordine di priorità:</p>
|
||||||
|
<ol>
|
||||||
|
<li>Sicurezza</li>
|
||||||
|
<li>Performance e scalabilità</li>
|
||||||
|
<li>Separazione dal frontend</li>
|
||||||
|
<li>Facilità di deploy in un server che non controllo</li>
|
||||||
|
</ol>
|
||||||
|
<p>Fortunatamente non mi è stata imposta nessuna limitazione sulla scelta del linguaggio, altrimenti Python sarebbe stato la scelta più adeguata se avessi dovuto tener conto anche di altri programmatori.</p>
|
||||||
|
<h3>Benvenuto D</h3>
|
||||||
|
<p>La mia scelta è caduta su <a href="https://dlang.org">D</a>.</p>
|
||||||
|
<p>Voglio provare ad affrontare ad uno ad uno i motivi di questa scelta magari inusuale.</p>
|
||||||
|
<h5>Sicurezza</h5>
|
||||||
|
<p>Nessuno vuole davvero vantarsi di usare un backend scritto in C/C++. Il <a href="https://en.wikipedia.org/wiki/Buffer_overflow">buffer overflow</a> può essere considerato il bug più comune e ci sono <a href="https://techaeris.com/2017/09/27/buzz-fuzzing-find-uncommon-vulnerability/">situazioni</a> in cui non appaiono affatto in maniera ovvia.</p>
|
||||||
|
<p>Inoltre per un applicativo distribuito il Garbage Collector è la scelta più performante, <a href="https://www.usenix.org/node/189882">specialmente se coordinato fra le varie istanze</a>.</p>
|
||||||
|
<p>D offre questo di design, e benchè il suo GC sia frutto di numerose <a href="https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Andrei-Alexandrescu">discussioni</a>, offre in maniera del tutto innovativa, robustezza e <a href="http://www.walterbright.com/gonewild.pdf">sicurezza</a>.</p>
|
||||||
|
<p>In particolare, D presenta:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Array che sono slices (o ranges) ma non puntatori (e neanche oggetti)</li>
|
||||||
|
<li>Bound checking durante la fase di compilazione.</li>
|
||||||
|
<li>Inizializzazione automatica delle variabili.</li>
|
||||||
|
<li>Safe Casting (chiaramente come eredità di C++).</li>
|
||||||
|
<li>Restricted pointers: si può passare una funzione per referenza dichiarandola <code>ref</code>, ma solo quando passata come parametro o di ritorno. Inoltre non c'è nessuna pointer arithmetic.</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization">RAII</a>, ovvero l'acquisizione delle risorse equivale alla loro assegnazione e Scopes: le variabili hanno una lifetime limitata allo scope di dichiarazione. Nessun dangling pointer come in C.</li>
|
||||||
|
<li>Strutture immutabili: come nelle specifiche di molti linguaggi funzionali, si può dichiarare una variabile come <code>immutable</code> e quindi può essere facilmente condivisa fra threads.</li>
|
||||||
|
<li>@safe, @trusted: le specifiche del linguaggio permettono di annotare delle funzioni come sicure o affidabili affinchè il compilatore controlli che non gestiscano puntatori (ad esempio interfacciandosi con C) ed utilizzino il subset "sicuro" del linguaggio (maggiori dettagli in seguito).</li>
|
||||||
|
<li>funzioni pure: le funzioni inoltre possono essere dichiarate pure, prive di effetti collaterali e sempre <a href="https://en.wikipedia.org/wiki/Reentrancy_(computing)">rientranti</a>. Questo permette di evitare <a href="https://en.wikipedia.org/wiki/Deadlock">deadlocks</a> e un controllo totale sul risultato delle funzioni.</li>
|
||||||
|
</ul>
|
||||||
|
<h5>Performance</h5>
|
||||||
|
<p>Ci sono moltissime soluzioni per scrivere un applicativo che si interfaccia con il web, ma hanno tutte la loro origine nel famoso <a href="http://www.kegel.com/c10k.html">C10K problem</a>.</p>
|
||||||
|
<p>Nel mio caso ho deciso di utilizzare un approccio <a href="https://stackoverflow.com/questions/10960998/how-different-async-programming-is-from-threads">asincrono</a> con coroutines (anche detti <a href="https://en.wikipedia.org/wiki/Green_threads">threads leggeri</a>).</p>
|
||||||
|
<p>Benchè D abbia <a href="https://dlang.org/library/core/thread/fiber.html">supporto nativo</a> alle coroutines, ho deciso di appoggiarmi al framework più comune per web dev in D: <a href="blog/2018/07/27/addio-reddit/vibed.org">vibe.d</a>.</p>
|
||||||
|
<p>Ogni volta che Vibe accetta una richiesta dall'esterno ed esegue una funzione bloccante (che interrompe l'esecuzione del programma fino al ritorno della funzione), questa viene messa in una pool di azioni da eseguire e Vibe controlla periodicamente che almeno una di queste sia pronta a ritornare un risultato e continuare con l'esecuzione di questa.</p>
|
||||||
|
<p>Inoltre, benchè questo meccanismo funzioni interamente su un solo thread, è elementare coordinare una <a href="https://en.wikipedia.org/wiki/Thread_pool">thread pool</a> che distribuisa il carico fra i vari core che eseguono migliaia di threads leggeri concorrentemente.</p>
|
||||||
|
<h5>Contratti e Tests</h5>
|
||||||
|
<p>Non amo scrivere commenti sui programmi. Penso sia assolutamente necessario commentare il codice di librerie ma al di fuori di queste il codice (buon codice) dovrebbe essere autoesplicativo.</p>
|
||||||
|
<p>Inoltre, nelle mie recenti esperienze, il comportamento del programma era chiaro a partire dai tests.</p>
|
||||||
|
<p>In D questo concetto viene portato agli estremi applicando il <a href="https://en.wikipedia.org/wiki/Design_by_contract">"Design by Contract programming</a>.</p>
|
||||||
|
<p>Un contratto è la divisione di una funzione in:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Precondizione, ovvero le condizioni che devono essersi verificate prima della chiamata della funzione;</li>
|
||||||
|
<li>Postcondizione, ovvero le condizioni che devono essere rispettate all'uscita della funzione (solitamente applicate al risultato);</li>
|
||||||
|
<li>Invarianti, ovvero le specifiche di una struttura dati che devono rimanere verificate in ogni funzione;</li>
|
||||||
|
<li>Corpo della funzione</li>
|
||||||
|
</ul>
|
||||||
|
<p>Un esempio:</p>
|
||||||
|
<pre class="code literal-block"><span></span>struct Clock {
|
||||||
|
|
||||||
|
short time;
|
||||||
|
|
||||||
|
invariant {
|
||||||
|
|
||||||
|
assert (time > 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
short addReturnTime(Clock c, short n)
|
||||||
|
|
||||||
|
in {
|
||||||
|
n > 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
|
||||||
|
return c->time + t;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
out (result){
|
||||||
|
|
||||||
|
result > c->time;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
unittest {
|
||||||
|
|
||||||
|
auto clock = Clock(60);
|
||||||
|
|
||||||
|
assert (addReturnTime(clock, 10) == 70);
|
||||||
|
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Come si nota dall'esempio il supporto ai tests è built-in nel linguaggio e distanti solo una flag in fase di compilazione.</p>
|
||||||
|
<h5>Un approccio moderno alle concorrenze</h5>
|
||||||
|
<p>Il modello primitivo delle concorrenze in Posix è discutibilmente datato e prono ad errori per il programmatore.</p>
|
||||||
|
<p>D di default evita la condivisione di dati fra Threads.
|
||||||
|
Fra le varie motivazioni c'è il fatto che questo rifletta più realisticamente l'hardware, ma sicuramente l'obbiettivo finale è la riduzione di bug.</p>
|
||||||
|
<p>Non voglio dilungarmi nei dettagli di ogni singolo approccio, ma per completezza D offre out of the box i seguenti modelli:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Message passing e <a href="http://dist-prog-book.com/chapter/3/message-passing.html">attori</a>, ovvero tutti i dati che vogliono essere condivisi fra thread sono incapsulati in <a href="https://en.wikipedia.org/wiki/Remote_procedure_call">RPC</a>;</li>
|
||||||
|
<li>Green threads, come nel mio caso;</li>
|
||||||
|
<li>Multi processing, ovvero <code>man 3 fork</code>
|
||||||
|
</li>
|
||||||
|
<li>TaskPools, ovvero future e promises di Python e Javascript;</li>
|
||||||
|
<li><a href="http://moss.csc.ncsu.edu/~mueller/cluster/ps3/SDK3.0/docs/accessibility/sdkpt/cbet_1simdvector.html">SIMD vectorization</a></li>
|
||||||
|
</ul>
|
||||||
|
<p>Andrei Alexandrescu, uno dei due creatori del linguaggio, dedica un intero capitolo alle concorrenze che potete leggere liberamente <a href="http://www.informit.com/articles/article.aspx?p=1609144">qui</a>.</p>
|
||||||
|
<h5>Assenza di dogmatismi</h5>
|
||||||
|
<p>Non potrei mai pensare di scrivere un linguaggio di programmazione senza mettere al secondo posto la semplicità.</p>
|
||||||
|
<p>Ma chiaramente ancora prima di discutere di semplicità la dobbiamo definire.</p>
|
||||||
|
<p>Go e Python sono due linguaggi semplici. Lo sono per la ridotta sintassi (Go in particolare) e perchè attraverso il loro dogmatismo costringono il programmatore ad adottare dei paradigmi di programmazione scelti dai designer di quel linguaggio. E` il motivo per cui in python non abbiamo delle vere lambda e per cui Go non ha le eccezioni.</p>
|
||||||
|
<p>In D il programmatore ha libertà piena di scelta. Oltre ad un paradigma di programmazione si può ridefinire la sintassi e evitare il Garbage Collector. Si può in ultimo disattivare tutte le feature del linguaggio che sono @safe e adottare uno stile molto più vicino al C/C++, con tanto di inline asm.</p>
|
||||||
|
<h3>Dove iniziare</h3>
|
||||||
|
<p>Non posso non concludere un post propagandistico senza indirizzare i più interessati alle prime risorse per imparare D.</p>
|
||||||
|
<p>Personalmente consiglio il <a href="http://www.informit.com/store/d-programming-language-9780321635365?w_ptgrevartcl=Concurrency+in+the+D+Programming+Language_1609144">libro</a> di Andrei che offre in particolare moltissimi dettagli sulle motivazioni del design di D. Non ho ancora letto un libro che affrontasse così chiaramente il design di linguaggi di programmazione e i vari compromessi fra performance, semplicità e complessità del compilatore.</p>
|
||||||
|
<p>Inoltre il sito della community offre due intro per chi proviene da <a href="https://dlang.org/ctod.html">C</a> e <a href="https://dlang.org/cpptod.html">C++</a>, oltre al classi <a href="https://tour.dlang.org/">tour</a>.</p>
|
||||||
|
<p>Inoltre la libreria standard, <a href="https://github.com/dlang/phobos">Phobos</a>, è talmente chiara che solitamente mi trovo a mio agio a consultare direttamente il codice piuttosto che la documentazione online.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article><br><hr>
|
||||||
|
<br><article class="post"><header><h1 class="post-title"><a href="blog/2018/3/27/addio-reddit/" class="u-url">Addio Reddit</a></h1>
|
||||||
</header><div>
|
</header><div>
|
||||||
<span class="post-date">27 March 2018</span>
|
<span class="post-date">27 March 2018</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="rss.xml">
|
<link rel="alternate" type="application/rss+xml" title="RSS" hreflang="en" href="rss.xml">
|
||||||
<link rel="canonical" href="francescomecca.eu/">
|
<link rel="canonical" href="francescomecca.eu/">
|
||||||
<link rel="next" href="index-19.html" type="text/html">
|
<link rel="next" href="index-19.html" type="text/html">
|
||||||
<link rel="prefetch" href="blog/2019/03/06/Dconf-2019/" type="text/html">
|
<link rel="prefetch" href="blog/2019/05/18/cultura-hacker/" type="text/html">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="container">
|
<div id="container">
|
||||||
|
@ -30,7 +30,275 @@
|
||||||
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
<a class="btn" href="https://github.com/FraMecca">Github</a>
|
||||||
<a class="btn" href="wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
<a class="btn" href="wp-content/curriculum/CV_Mecca_Francesco.pdf">Curriculum</a>
|
||||||
</section><section class="main-content"><div class="posts">
|
</section><section class="main-content"><div class="posts">
|
||||||
<article class="post"><header><h1 class="post-title"><a href="blog/2019/03/06/Dconf-2019/" class="u-url">Dconf 2019</a></h1>
|
<article class="post"><header><h1 class="post-title"><a href="blog/2019/05/18/cultura-hacker/" class="u-url">Breve storia della cultura hacker</a></h1>
|
||||||
|
</header><div>
|
||||||
|
<span class="post-date">18 May 2019</span>
|
||||||
|
</div>
|
||||||
|
<br><div class="e-content entry-content">
|
||||||
|
<div>
|
||||||
|
<p>Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso <a href="http://rivoluzionedigitale.polito.it/">Rivoluzione Digitale</a>.</p>
|
||||||
|
<h2>Scopo della lezione</h2>
|
||||||
|
<p>Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e` alle radici dell'informatica come scienza e come strumento di cultura di massa.</p>
|
||||||
|
<h2>Jargon File</h2>
|
||||||
|
<p>Cosi` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita` iniziarono a raccogliere gli slang piu` utilizzati e le storie legate a questi modi di esprimersi.</p>
|
||||||
|
<p>Con l'espandersi della comunita` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.</p>
|
||||||
|
<p><a href="http://catdb.org/esr">ESR</a> scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Esempi di slang e trasformazioni del lessico:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Data General -> Dirty Genitals</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>IBM 360 -> IBM Three-Sickly</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Government Property -- Do Not Duplicate (on keys) -> Government Duplicity -- Do Not Propagate</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>for historical reasons -> for hysterical raisins</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Margaret Jacks Hall (the CS building at Stanford) -> Marginal Hacks Hall</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft -> Microsloth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Internet Explorer -> Internet Exploiter</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft Outlook -> Microsoft Outhouse</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Linux -> Linsux</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>FreeBSD -> FreeLSD</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>C# -> C Flat</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Piu` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano <code>true</code> <code>false</code>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Definizione della parola hacker</h3>
|
||||||
|
<p><img alt="Definition of hacker" src="wp-content/uploads/2019/def_hacker.jpg"></p>
|
||||||
|
<p>Come si evince dall'immagine il significato della parola hacker nel gergo comune si e` via via svuotato per poi andare a sostituire quello del termine cracker.</p>
|
||||||
|
<p>Un cracker e` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu` nobili.</p>
|
||||||
|
<p>Del termine hacker abbiamo piu` definizioni, alcune indifferenti all'uso di sistemi informatici:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona capace di programmare celermente e con precisione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.</p>
|
||||||
|
<h2>Chiave di lettura</h2>
|
||||||
|
<p>Nella storia della cultura hacker si possono distinguere tre tipi di persone:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>i poeti e matematici, come Donald Knuth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>gli esperti di determinate tipologie di hardware o software, come Bruce Schneier</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>i makers, coloro che costruiscono cio` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita` di cui parleremo rientrano in piu` di una di queste categoria. In tutti i casi e` importante capire che sono tre approcci complementari.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Storia</h2>
|
||||||
|
<h3>In the beginning there were the real programmers</h3>
|
||||||
|
<p>La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.</p>
|
||||||
|
<p>Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.</p>
|
||||||
|
<p>Fra i piu` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono` al primo avvio.</p>
|
||||||
|
<p>Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.</p>
|
||||||
|
<p>Qua parte il primo filone della storia della cultura hacker, quello universitario.</p>
|
||||||
|
<h4>I primi hacker, la tribu` connessa</h4>
|
||||||
|
<p>Rimanendo all'interno delle universita` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.</p>
|
||||||
|
<p>Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).</p>
|
||||||
|
<p>Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.</p>
|
||||||
|
<p>Questo e` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.</p>
|
||||||
|
<p>Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita` e laboratori di ricerca.</p>
|
||||||
|
<p>Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu` ampia di entusiasti.</p>
|
||||||
|
<p>Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.</p>
|
||||||
|
<h4>La nascita di Unix</h4>
|
||||||
|
<p>Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.</p>
|
||||||
|
<p>All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e` stata quella di fornire un'interfaccia unificata e le stesse funzionalita` su macchine diverse.</p>
|
||||||
|
<p>Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita` fra macchine diverse.</p>
|
||||||
|
<p>C e` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e` rimasta viva nei suoi discendenti.</p>
|
||||||
|
<h3>Freak + Phone = Phreaking</h3>
|
||||||
|
<p>Il reverse engineering e` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.</p>
|
||||||
|
<p>I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.</p>
|
||||||
|
<p>Il piu` celebre fra questi e` John Draper che scopri` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.</p>
|
||||||
|
<p>Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.</p>
|
||||||
|
<h3>Digressione: Anarco Illuminismo</h3>
|
||||||
|
<p>La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se` ideali di due ideologie differenti.</p>
|
||||||
|
<p>Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.</p>
|
||||||
|
<p>Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.</p>
|
||||||
|
<p>Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.</p>
|
||||||
|
<p>Nonostante cio` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.</p>
|
||||||
|
<h3>L'era del software proprietario</h3>
|
||||||
|
<p>Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una serie meno organizzata di gruppetti piu` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Nel frattempo iniziavano a diventare piu` comuni le prime macchine prodotte da Apple e Microsoft. In realta` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.</p>
|
||||||
|
<p>La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.</p>
|
||||||
|
<p>Nel 1983 DEC annuncio` la fine della linea dei PDP, definendo cosi` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.</p>
|
||||||
|
<p>L'hackerdom vide la possibilita` che uno dei suoi piu` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.</p>
|
||||||
|
<p>Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita` delle sue implementazioni, ma AT&T vinse molte battaglie legali appropriandosi di vari standard.</p>
|
||||||
|
<h3>Verso una prima ideologia hacker</h3>
|
||||||
|
<p>In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita` sarebbe sparito lentamente.</p>
|
||||||
|
<p>Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu` severo (benche` non sia paragonabile alla copertura che tali eventi hanno oggi).</p>
|
||||||
|
<p>La soluzione proposta risiede nella congiunzione di tre idee:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>decentralizzazione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>crittografia</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>software libero</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Decentralizzazione</h4>
|
||||||
|
<p>La decentralizzazione e` il processo in cui un'attivita` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.</p>
|
||||||
|
<p>L'assunto alla base e` il principio Manzoniano per cui una persona che detiene il potere si ritrovera` prima o poi costretta a compiere decisioni non etiche. La soluzione e` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.</p>
|
||||||
|
<p>Un'esempio di decentralizzazione e` l'architettura di internet, almeno nelle sue prime forme, dove non c'e` un'autorita` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu` attuale e` la rete Bittorrent.</p>
|
||||||
|
<h4>Crittografia</h4>
|
||||||
|
<p>Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.</p>
|
||||||
|
<p>Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.</p>
|
||||||
|
<p>L'idea alla base (Cypherpunk's Manifesto) e` che la privacy e` necessaria per poter costituire una societa` aperta nell'era dell'informazione; non c'e` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.</p>
|
||||||
|
<p>Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.</p>
|
||||||
|
<h4>Software Libero</h4>
|
||||||
|
<p>Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.</p>
|
||||||
|
<p>Quando nel 1980 la stampante fu sostituita Xerox si rifiuto` di concedere a Stallman le facolta` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.</p>
|
||||||
|
<p>Nel 1984 Stallman si licenzio` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto` subito l'interesse della comunita`.</p>
|
||||||
|
<p>Il progetto GNU e` una collezione di software di qualsiasi tipo che rispetti le liberta` garantite dalla licensa <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>; fra questi i piu` famosi sono <a href="https://gcc.gnu.org/">GCC</a>, <a href="https://www.gnu.org/software/emacs/">emacs</a>, <a href="https://www.gnu.org/software/octave/">Octave</a>, <a href="https://www.r-project.org/">R</a> ma anche software di attivismo, gestione delle finanze e tant'altro.</p>
|
||||||
|
<p>Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e` ancora molto instabile.</p>
|
||||||
|
<p>Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. <a href="https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate">Questo dibattito fu il soggetto di un'enorme flame war su usenet</a>.</p>
|
||||||
|
<p>Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.</p>
|
||||||
|
<p>Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta` andrebbe chiamato <a href="https://www.gnu.org/gnu/why-gnu-linux.html">GNU/Linux</a>.</p>
|
||||||
|
<h2>Lo stato della cultura hacker oggi</h2>
|
||||||
|
<p>Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu` amatoriale e pratico, rivolto all'exploitation e infine quello piu` ideologico.</p>
|
||||||
|
<p>E` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo` definire tale), specialmente per chi come me non ne ha le competenze benche` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.</p>
|
||||||
|
<p>Nonostante cio` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.</p>
|
||||||
|
<h3>Disobbedienza civile elettronica</h3>
|
||||||
|
<p>Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).</p>
|
||||||
|
<p>Queste due persone e tutto cio` ha permesso loro di raggiungere questa posizione rappresentano <a href="http://www.mantellini.it/2012/08/17/perche-assange-e-internet/">cio` che il potere teme di internet</a>.</p>
|
||||||
|
<p>Inoltre, riguardo i fatti recenti:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
<a href="https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/">Mantellini sul Post</a>.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>I primi due anni ho provato a concentrarmi su queste domande:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>la cultura hacker ha ancora una componente anarchica?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Sono ancora possibili atti come quelli degli attivisti del cypherpunk?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In che ottica possiamo inquadrare le azioni di Assange e Snowden?</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.</p>
|
||||||
|
<p>Prima dell'arrivo di internet e dell'informatica piu` in generale il cuore degli organismi di potere e controllo era facile da individuare.</p>
|
||||||
|
<p>Cosi` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.</p>
|
||||||
|
<p>Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.</p>
|
||||||
|
<p>Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita`.
|
||||||
|
E` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.</p>
|
||||||
|
<p>Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.</p>
|
||||||
|
<p>Questo ad oggi non e` piu` vero, gli edifici benche` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.</p>
|
||||||
|
<p>Cosi` quando nel <a href="https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt">2016</a> i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.</p>
|
||||||
|
<p>Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu` nelle strutture fisiche.</p>
|
||||||
|
<p>Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che a domande come:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Did Facebook deceive its users?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"if I delete my account, how long does Facebook keep my data?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Does Facebook use cross-device tracking?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What data is being sold?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Is facebook censoring specific groups?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What’s Facebook’s reach beyond its website?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"How much information does Facebook have on non-Facebook users?"</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Zuckerberg ha potuto affermare che non conosce la risposta o che puo` chiedere al suo team e rispondere in futuro.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Whether you know it or not, if you are a hacker, you are a revolutionary</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Una volta compreso cio` queste parole di Doctor Crash su <a href="http://phrack.org/issues/6/3.html">phrack</a> appaiono ingenue.</p>
|
||||||
|
<p>Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.</p>
|
||||||
|
<p>Sempre Doctor Crash scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution." </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Questo, complice la cultura hacker, oggi non e` piu` possibile.</p>
|
||||||
|
<h3>Opensource e Free Software</h3>
|
||||||
|
<p>Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.</p>
|
||||||
|
<p>Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e` stato corrotto mediaticamente andando a ricoprire significato di cracker.</p>
|
||||||
|
<p>Stallman nel 2007 gia` ci avvertiva che il software opensource manca l'obbiettivo:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi. </p>
|
||||||
|
<p>L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e` cancro o comunismo.</p>
|
||||||
|
<p>Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.</p>
|
||||||
|
<p>Basta fare un giro su <a href="https://stackshare.io/stacks">stackshare.io</a> per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.</p>
|
||||||
|
<p>Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.</p>
|
||||||
|
<p>Ne sono un esempio gitlab, redislab e elasticsearch.</p>
|
||||||
|
<p>Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article><br><hr>
|
||||||
|
<br><article class="post"><header><h1 class="post-title"><a href="blog/2019/03/06/Dconf-2019/" class="u-url">Dconf 2019</a></h1>
|
||||||
</header><div>
|
</header><div>
|
||||||
<span class="post-date">06 March 2019</span>
|
<span class="post-date">06 March 2019</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -335,154 +603,6 @@ The following is a list of the positive and negative results of such studies gro
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</article><br><hr>
|
</article><br><hr>
|
||||||
<br><article class="post"><header><h1 class="post-title"><a href="blog/2018/07/27/addio-reddit/" class="u-url">Un articolo per r/italyinformatica</a></h1>
|
|
||||||
</header><div>
|
|
||||||
<span class="post-date">27 July 2018</span>
|
|
||||||
</div>
|
|
||||||
<br><div class="e-content entry-content">
|
|
||||||
<div>
|
|
||||||
<p>Questo articolo è stato originalmente scritto per il <a href="https://tldr.italyinformatica.org">blog</a> di <a href="https://reddit.com/r/italyinformatica">r/italyinformatica</a>.</p>
|
|
||||||
<p>Negli ultimi anni abbiamo assistito all'ascesa di un gran numero di linguaggi di programmazione, in particolare <a href="https://golang.rg">Go</a> (2009), <a href="https://www.rust-lang.org/en-US/">Rust</a> (2010), <a href="https://kotlinlang.org/">Kotlin</a> (2011), <a href="https://elixir-lang.org/">Elixir</a> (2011), <a href="https://crystal-lang.org/">Crystal</a> (2014), <a href="https://www.ponylang.or">Pony</a> (2014).</p>
|
|
||||||
<p>Questa esplosione di nuovi linguaggi è dovuta, fra le molte motivazioni, alla necessità di adottare paradigmi di programmazione non immediatamente recenti come cittadini di primo tipo.</p>
|
|
||||||
<p>Rispetto ai più maturi C, C++ o Java, Python o Ruby questi linguaggi offrono "out of the box" supporto per:</p>
|
|
||||||
<ul>
|
|
||||||
<li>una visione moderna delle concorrenze (le goroutines di Go o il modello ad attori di Pony ed Elixir)</li>
|
|
||||||
<li>Memory safeness, in particolare:<ul>
|
|
||||||
<li>assenza di NULL (Pony, Rust, Kotlin)</li>
|
|
||||||
<li>gestione automatica della memoria, il cosiddetto <a href="https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)%20(o%20%5BReference%20Counting%5D(https://en.wikipedia.org/wiki/Reference_counting)%20per%20Rust">Garbage Collector</a>
|
|
||||||
</li>
|
|
||||||
<li>assenza di puntatori</li>
|
|
||||||
<li>assenza di deadlocks</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>Supporto ad HTTP nella standard library</li>
|
|
||||||
<li>Management delle dipendenze (ad eccezione di Kotlin)</li>
|
|
||||||
<li>Namespaces</li>
|
|
||||||
</ul>
|
|
||||||
<p>Chiaramente nessuno di questi linguaggi è oggettivamente superiore agli altri, sono tutti <a href="https://en.wikipedia.org/wiki/Turing_completeness">turing completi</a> e la scelta del programmatore ricade su motivazioni del tutto personali (stile, programmazione ad oggetti, familiarità con altri linguaggi).</p>
|
|
||||||
<h3>Un pò di contesto</h3>
|
|
||||||
<p>Ho scritto la mie prime due righe di codice nel 2013 per il corso di Computer Science del Politecnico di Torino.</p>
|
|
||||||
<p>Per mia fortuna, al Politecnico le cose si muovono ancora lentamente e ci hanno fatto usare C per tutta la durata della triennale. Si è aggiunto un corso di principi della programmazione ad oggetti al terzo anno, in Java.</p>
|
|
||||||
<p>Personalmente ho imparato durante l'estate di quel primo anno le basi di C++ e Python poco dopo.</p>
|
|
||||||
<p>Sono stati con i miei primi <a href="https://github.com/framecca">progetti</a> che ho capito che non si può avere un buon linguaggio senza un buon tooling ed una community vivace e soprattutto tanta, tanta documentazione. Per questo, per molto tempo C è stata la mia prima scelta, dato che il mio target è sempre Linux.</p>
|
|
||||||
<h3>Gli obbiettivi prima del linguaggio</h3>
|
|
||||||
<p>Questo post vuole essere una raccolta più o meno organizzata delle motivazioni per cui mi sono dovuto muovere oltre la frontiera di C nel mio ultimo progetto, ovvero un backend per la raccolta e presentazione di pubblicazione di ricerca e materiale didattico per più di 80 centri di ricerca.</p>
|
|
||||||
<p>Per il Centro <a href="http://nexa.polito.it/">Nexa</a> del Politecnico di Torino mi sono ritrovato per la prima volta responsabile del codice che dovevo scrivere e dell'uso che se ne sarebbe fatto.</p>
|
|
||||||
<p>Ho dovuto tenere in considerazione, oltre chiaramente alla funzionalità della piattaforma, in ordine di priorità:</p>
|
|
||||||
<ol>
|
|
||||||
<li>Sicurezza</li>
|
|
||||||
<li>Performance e scalabilità</li>
|
|
||||||
<li>Separazione dal frontend</li>
|
|
||||||
<li>Facilità di deploy in un server che non controllo</li>
|
|
||||||
</ol>
|
|
||||||
<p>Fortunatamente non mi è stata imposta nessuna limitazione sulla scelta del linguaggio, altrimenti Python sarebbe stato la scelta più adeguata se avessi dovuto tener conto anche di altri programmatori.</p>
|
|
||||||
<h3>Benvenuto D</h3>
|
|
||||||
<p>La mia scelta è caduta su <a href="https://dlang.org">D</a>.</p>
|
|
||||||
<p>Voglio provare ad affrontare ad uno ad uno i motivi di questa scelta magari inusuale.</p>
|
|
||||||
<h5>Sicurezza</h5>
|
|
||||||
<p>Nessuno vuole davvero vantarsi di usare un backend scritto in C/C++. Il <a href="https://en.wikipedia.org/wiki/Buffer_overflow">buffer overflow</a> può essere considerato il bug più comune e ci sono <a href="https://techaeris.com/2017/09/27/buzz-fuzzing-find-uncommon-vulnerability/">situazioni</a> in cui non appaiono affatto in maniera ovvia.</p>
|
|
||||||
<p>Inoltre per un applicativo distribuito il Garbage Collector è la scelta più performante, <a href="https://www.usenix.org/node/189882">specialmente se coordinato fra le varie istanze</a>.</p>
|
|
||||||
<p>D offre questo di design, e benchè il suo GC sia frutto di numerose <a href="https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Andrei-Alexandrescu">discussioni</a>, offre in maniera del tutto innovativa, robustezza e <a href="http://www.walterbright.com/gonewild.pdf">sicurezza</a>.</p>
|
|
||||||
<p>In particolare, D presenta:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Array che sono slices (o ranges) ma non puntatori (e neanche oggetti)</li>
|
|
||||||
<li>Bound checking durante la fase di compilazione.</li>
|
|
||||||
<li>Inizializzazione automatica delle variabili.</li>
|
|
||||||
<li>Safe Casting (chiaramente come eredità di C++).</li>
|
|
||||||
<li>Restricted pointers: si può passare una funzione per referenza dichiarandola <code>ref</code>, ma solo quando passata come parametro o di ritorno. Inoltre non c'è nessuna pointer arithmetic.</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization">RAII</a>, ovvero l'acquisizione delle risorse equivale alla loro assegnazione e Scopes: le variabili hanno una lifetime limitata allo scope di dichiarazione. Nessun dangling pointer come in C.</li>
|
|
||||||
<li>Strutture immutabili: come nelle specifiche di molti linguaggi funzionali, si può dichiarare una variabile come <code>immutable</code> e quindi può essere facilmente condivisa fra threads.</li>
|
|
||||||
<li>@safe, @trusted: le specifiche del linguaggio permettono di annotare delle funzioni come sicure o affidabili affinchè il compilatore controlli che non gestiscano puntatori (ad esempio interfacciandosi con C) ed utilizzino il subset "sicuro" del linguaggio (maggiori dettagli in seguito).</li>
|
|
||||||
<li>funzioni pure: le funzioni inoltre possono essere dichiarate pure, prive di effetti collaterali e sempre <a href="https://en.wikipedia.org/wiki/Reentrancy_(computing)">rientranti</a>. Questo permette di evitare <a href="https://en.wikipedia.org/wiki/Deadlock">deadlocks</a> e un controllo totale sul risultato delle funzioni.</li>
|
|
||||||
</ul>
|
|
||||||
<h5>Performance</h5>
|
|
||||||
<p>Ci sono moltissime soluzioni per scrivere un applicativo che si interfaccia con il web, ma hanno tutte la loro origine nel famoso <a href="http://www.kegel.com/c10k.html">C10K problem</a>.</p>
|
|
||||||
<p>Nel mio caso ho deciso di utilizzare un approccio <a href="https://stackoverflow.com/questions/10960998/how-different-async-programming-is-from-threads">asincrono</a> con coroutines (anche detti <a href="https://en.wikipedia.org/wiki/Green_threads">threads leggeri</a>).</p>
|
|
||||||
<p>Benchè D abbia <a href="https://dlang.org/library/core/thread/fiber.html">supporto nativo</a> alle coroutines, ho deciso di appoggiarmi al framework più comune per web dev in D: <a href="blog/2018/07/27/addio-reddit/vibed.org">vibe.d</a>.</p>
|
|
||||||
<p>Ogni volta che Vibe accetta una richiesta dall'esterno ed esegue una funzione bloccante (che interrompe l'esecuzione del programma fino al ritorno della funzione), questa viene messa in una pool di azioni da eseguire e Vibe controlla periodicamente che almeno una di queste sia pronta a ritornare un risultato e continuare con l'esecuzione di questa.</p>
|
|
||||||
<p>Inoltre, benchè questo meccanismo funzioni interamente su un solo thread, è elementare coordinare una <a href="https://en.wikipedia.org/wiki/Thread_pool">thread pool</a> che distribuisa il carico fra i vari core che eseguono migliaia di threads leggeri concorrentemente.</p>
|
|
||||||
<h5>Contratti e Tests</h5>
|
|
||||||
<p>Non amo scrivere commenti sui programmi. Penso sia assolutamente necessario commentare il codice di librerie ma al di fuori di queste il codice (buon codice) dovrebbe essere autoesplicativo.</p>
|
|
||||||
<p>Inoltre, nelle mie recenti esperienze, il comportamento del programma era chiaro a partire dai tests.</p>
|
|
||||||
<p>In D questo concetto viene portato agli estremi applicando il <a href="https://en.wikipedia.org/wiki/Design_by_contract">"Design by Contract programming</a>.</p>
|
|
||||||
<p>Un contratto è la divisione di una funzione in:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Precondizione, ovvero le condizioni che devono essersi verificate prima della chiamata della funzione;</li>
|
|
||||||
<li>Postcondizione, ovvero le condizioni che devono essere rispettate all'uscita della funzione (solitamente applicate al risultato);</li>
|
|
||||||
<li>Invarianti, ovvero le specifiche di una struttura dati che devono rimanere verificate in ogni funzione;</li>
|
|
||||||
<li>Corpo della funzione</li>
|
|
||||||
</ul>
|
|
||||||
<p>Un esempio:</p>
|
|
||||||
<pre class="code literal-block"><span></span>struct Clock {
|
|
||||||
|
|
||||||
short time;
|
|
||||||
|
|
||||||
invariant {
|
|
||||||
|
|
||||||
assert (time > 0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
short addReturnTime(Clock c, short n)
|
|
||||||
|
|
||||||
in {
|
|
||||||
n > 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
|
|
||||||
return c->time + t;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
out (result){
|
|
||||||
|
|
||||||
result > c->time;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
unittest {
|
|
||||||
|
|
||||||
auto clock = Clock(60);
|
|
||||||
|
|
||||||
assert (addReturnTime(clock, 10) == 70);
|
|
||||||
|
|
||||||
}
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<p>Come si nota dall'esempio il supporto ai tests è built-in nel linguaggio e distanti solo una flag in fase di compilazione.</p>
|
|
||||||
<h5>Un approccio moderno alle concorrenze</h5>
|
|
||||||
<p>Il modello primitivo delle concorrenze in Posix è discutibilmente datato e prono ad errori per il programmatore.</p>
|
|
||||||
<p>D di default evita la condivisione di dati fra Threads.
|
|
||||||
Fra le varie motivazioni c'è il fatto che questo rifletta più realisticamente l'hardware, ma sicuramente l'obbiettivo finale è la riduzione di bug.</p>
|
|
||||||
<p>Non voglio dilungarmi nei dettagli di ogni singolo approccio, ma per completezza D offre out of the box i seguenti modelli:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Message passing e <a href="http://dist-prog-book.com/chapter/3/message-passing.html">attori</a>, ovvero tutti i dati che vogliono essere condivisi fra thread sono incapsulati in <a href="https://en.wikipedia.org/wiki/Remote_procedure_call">RPC</a>;</li>
|
|
||||||
<li>Green threads, come nel mio caso;</li>
|
|
||||||
<li>Multi processing, ovvero <code>man 3 fork</code>
|
|
||||||
</li>
|
|
||||||
<li>TaskPools, ovvero future e promises di Python e Javascript;</li>
|
|
||||||
<li><a href="http://moss.csc.ncsu.edu/~mueller/cluster/ps3/SDK3.0/docs/accessibility/sdkpt/cbet_1simdvector.html">SIMD vectorization</a></li>
|
|
||||||
</ul>
|
|
||||||
<p>Andrei Alexandrescu, uno dei due creatori del linguaggio, dedica un intero capitolo alle concorrenze che potete leggere liberamente <a href="http://www.informit.com/articles/article.aspx?p=1609144">qui</a>.</p>
|
|
||||||
<h5>Assenza di dogmatismi</h5>
|
|
||||||
<p>Non potrei mai pensare di scrivere un linguaggio di programmazione senza mettere al secondo posto la semplicità.</p>
|
|
||||||
<p>Ma chiaramente ancora prima di discutere di semplicità la dobbiamo definire.</p>
|
|
||||||
<p>Go e Python sono due linguaggi semplici. Lo sono per la ridotta sintassi (Go in particolare) e perchè attraverso il loro dogmatismo costringono il programmatore ad adottare dei paradigmi di programmazione scelti dai designer di quel linguaggio. E` il motivo per cui in python non abbiamo delle vere lambda e per cui Go non ha le eccezioni.</p>
|
|
||||||
<p>In D il programmatore ha libertà piena di scelta. Oltre ad un paradigma di programmazione si può ridefinire la sintassi e evitare il Garbage Collector. Si può in ultimo disattivare tutte le feature del linguaggio che sono @safe e adottare uno stile molto più vicino al C/C++, con tanto di inline asm.</p>
|
|
||||||
<h3>Dove iniziare</h3>
|
|
||||||
<p>Non posso non concludere un post propagandistico senza indirizzare i più interessati alle prime risorse per imparare D.</p>
|
|
||||||
<p>Personalmente consiglio il <a href="http://www.informit.com/store/d-programming-language-9780321635365?w_ptgrevartcl=Concurrency+in+the+D+Programming+Language_1609144">libro</a> di Andrei che offre in particolare moltissimi dettagli sulle motivazioni del design di D. Non ho ancora letto un libro che affrontasse così chiaramente il design di linguaggi di programmazione e i vari compromessi fra performance, semplicità e complessità del compilatore.</p>
|
|
||||||
<p>Inoltre il sito della community offre due intro per chi proviene da <a href="https://dlang.org/ctod.html">C</a> e <a href="https://dlang.org/cpptod.html">C++</a>, oltre al classi <a href="https://tour.dlang.org/">tour</a>.</p>
|
|
||||||
<p>Inoltre la libreria standard, <a href="https://github.com/dlang/phobos">Phobos</a>, è talmente chiara che solitamente mi trovo a mio agio a consultare direttamente il codice piuttosto che la documentazione online.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</article><br><hr>
|
|
||||||
<br>
|
<br>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
284
output/rss.xml
284
output/rss.xml
|
@ -1,5 +1,263 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Wed, 06 Mar 2019 09:42:17 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Caught in the Net</title><link>francescomecca.eu</link><description></description><atom:link href="francescomecca.eu/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:francescomecca.eu">Francesco Mecca</a> </copyright><lastBuildDate>Sat, 18 May 2019 21:11:19 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Breve storia della cultura hacker</title><link>francescomecca.eu/blog/2019/05/18/cultura-hacker/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Questo e` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso <a href="http://rivoluzionedigitale.polito.it/">Rivoluzione Digitale</a>.</p>
|
||||||
|
<h2>Scopo della lezione</h2>
|
||||||
|
<p>Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e` alle radici dell'informatica come scienza e come strumento di cultura di massa.</p>
|
||||||
|
<h2>Jargon File</h2>
|
||||||
|
<p>Cosi` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita` iniziarono a raccogliere gli slang piu` utilizzati e le storie legate a questi modi di esprimersi.</p>
|
||||||
|
<p>Con l'espandersi della comunita` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric S. Raymond</a> compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.</p>
|
||||||
|
<p><a href="http://catdb.org/esr">ESR</a> scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Esempi di slang e trasformazioni del lessico:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>Data General -&gt; Dirty Genitals</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>IBM 360 -&gt; IBM Three-Sickly</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Government Property -- Do Not Duplicate (on keys) -&gt; Government Duplicity -- Do Not Propagate</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>for historical reasons -&gt; for hysterical raisins</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Margaret Jacks Hall (the CS building at Stanford) -&gt; Marginal Hacks Hall</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft -&gt; Microsloth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Internet Explorer -&gt; Internet Exploiter</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Microsoft Outlook -&gt; Microsoft Outhouse</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Linux -&gt; Linsux</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>FreeBSD -&gt; FreeLSD</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>C# -&gt; C Flat</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Piu` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano <code>true</code> <code>false</code>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h3>Definizione della parola hacker</h3>
|
||||||
|
<p><img alt="Definition of hacker" src="francescomecca.eu/wp-content/uploads/2019/def_hacker.jpg"></p>
|
||||||
|
<p>Come si evince dall'immagine il significato della parola hacker nel gergo comune si e` via via svuotato per poi andare a sostituire quello del termine cracker.</p>
|
||||||
|
<p>Un cracker e` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu` nobili.</p>
|
||||||
|
<p>Del termine hacker abbiamo piu` definizioni, alcune indifferenti all'uso di sistemi informatici:</p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<p>Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona capace di programmare celermente e con precisione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
<p>A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.</p>
|
||||||
|
<h2>Chiave di lettura</h2>
|
||||||
|
<p>Nella storia della cultura hacker si possono distinguere tre tipi di persone:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>i poeti e matematici, come Donald Knuth</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>gli esperti di determinate tipologie di hardware o software, come Bruce Schneier</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>i makers, coloro che costruiscono cio` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita` di cui parleremo rientrano in piu` di una di queste categoria. In tutti i casi e` importante capire che sono tre approcci complementari.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h2>Storia</h2>
|
||||||
|
<h3>In the beginning there were the real programmers</h3>
|
||||||
|
<p>La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.</p>
|
||||||
|
<p>Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.</p>
|
||||||
|
<p>Fra i piu` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono` al primo avvio.</p>
|
||||||
|
<p>Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.</p>
|
||||||
|
<p>Qua parte il primo filone della storia della cultura hacker, quello universitario.</p>
|
||||||
|
<h4>I primi hacker, la tribu` connessa</h4>
|
||||||
|
<p>Rimanendo all'interno delle universita` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.</p>
|
||||||
|
<p>Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).</p>
|
||||||
|
<p>Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.</p>
|
||||||
|
<p>Questo e` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.</p>
|
||||||
|
<p>Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita` e laboratori di ricerca.</p>
|
||||||
|
<p>Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu` ampia di entusiasti.</p>
|
||||||
|
<p>Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.</p>
|
||||||
|
<h4>La nascita di Unix</h4>
|
||||||
|
<p>Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.</p>
|
||||||
|
<p>All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e` stata quella di fornire un'interfaccia unificata e le stesse funzionalita` su macchine diverse.</p>
|
||||||
|
<p>Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita` fra macchine diverse.</p>
|
||||||
|
<p>C e` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e` rimasta viva nei suoi discendenti.</p>
|
||||||
|
<h3>Freak + Phone = Phreaking</h3>
|
||||||
|
<p>Il reverse engineering e` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.</p>
|
||||||
|
<p>I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.</p>
|
||||||
|
<p>Il piu` celebre fra questi e` John Draper che scopri` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.</p>
|
||||||
|
<p>Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.</p>
|
||||||
|
<h3>Digressione: Anarco Illuminismo</h3>
|
||||||
|
<p>La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se` ideali di due ideologie differenti.</p>
|
||||||
|
<p>Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.</p>
|
||||||
|
<p>Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.</p>
|
||||||
|
<p>Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.</p>
|
||||||
|
<p>Nonostante cio` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.</p>
|
||||||
|
<h3>L'era del software proprietario</h3>
|
||||||
|
<p>Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>una serie meno organizzata di gruppetti piu` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Nel frattempo iniziavano a diventare piu` comuni le prime macchine prodotte da Apple e Microsoft. In realta` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.</p>
|
||||||
|
<p>La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.</p>
|
||||||
|
<p>Nel 1983 DEC annuncio` la fine della linea dei PDP, definendo cosi` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&amp;T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.</p>
|
||||||
|
<p>L'hackerdom vide la possibilita` che uno dei suoi piu` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.</p>
|
||||||
|
<p>Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&amp;T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita` delle sue implementazioni, ma AT&amp;T vinse molte battaglie legali appropriandosi di vari standard.</p>
|
||||||
|
<h3>Verso una prima ideologia hacker</h3>
|
||||||
|
<p>In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita` sarebbe sparito lentamente.</p>
|
||||||
|
<p>Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu` severo (benche` non sia paragonabile alla copertura che tali eventi hanno oggi).</p>
|
||||||
|
<p>La soluzione proposta risiede nella congiunzione di tre idee:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>decentralizzazione</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>crittografia</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>software libero</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Decentralizzazione</h4>
|
||||||
|
<p>La decentralizzazione e` il processo in cui un'attivita` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.</p>
|
||||||
|
<p>L'assunto alla base e` il principio Manzoniano per cui una persona che detiene il potere si ritrovera` prima o poi costretta a compiere decisioni non etiche. La soluzione e` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.</p>
|
||||||
|
<p>Un'esempio di decentralizzazione e` l'architettura di internet, almeno nelle sue prime forme, dove non c'e` un'autorita` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu` attuale e` la rete Bittorrent.</p>
|
||||||
|
<h4>Crittografia</h4>
|
||||||
|
<p>Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.</p>
|
||||||
|
<p>Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.</p>
|
||||||
|
<p>L'idea alla base (Cypherpunk's Manifesto) e` che la privacy e` necessaria per poter costituire una societa` aperta nell'era dell'informazione; non c'e` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.</p>
|
||||||
|
<p>Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.</p>
|
||||||
|
<h4>Software Libero</h4>
|
||||||
|
<p>Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.</p>
|
||||||
|
<p>Quando nel 1980 la stampante fu sostituita Xerox si rifiuto` di concedere a Stallman le facolta` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.</p>
|
||||||
|
<p>Nel 1984 Stallman si licenzio` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto` subito l'interesse della comunita`.</p>
|
||||||
|
<p>Il progetto GNU e` una collezione di software di qualsiasi tipo che rispetti le liberta` garantite dalla licensa <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>; fra questi i piu` famosi sono <a href="https://gcc.gnu.org/">GCC</a>, <a href="https://www.gnu.org/software/emacs/">emacs</a>, <a href="https://www.gnu.org/software/octave/">Octave</a>, <a href="https://www.r-project.org/">R</a> ma anche software di attivismo, gestione delle finanze e tant'altro.</p>
|
||||||
|
<p>Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e` ancora molto instabile.</p>
|
||||||
|
<p>Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. <a href="https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate">Questo dibattito fu il soggetto di un'enorme flame war su usenet</a>.</p>
|
||||||
|
<p>Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.</p>
|
||||||
|
<p>Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta` andrebbe chiamato <a href="https://www.gnu.org/gnu/why-gnu-linux.html">GNU/Linux</a>.</p>
|
||||||
|
<h2>Lo stato della cultura hacker oggi</h2>
|
||||||
|
<p>Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu` amatoriale e pratico, rivolto all'exploitation e infine quello piu` ideologico.</p>
|
||||||
|
<p>E` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo` definire tale), specialmente per chi come me non ne ha le competenze benche` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.</p>
|
||||||
|
<p>Nonostante cio` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.</p>
|
||||||
|
<h3>Disobbedienza civile elettronica</h3>
|
||||||
|
<p>Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).</p>
|
||||||
|
<p>Queste due persone e tutto cio` ha permesso loro di raggiungere questa posizione rappresentano <a href="http://www.mantellini.it/2012/08/17/perche-assange-e-internet/">cio` che il potere teme di internet</a>.</p>
|
||||||
|
<p>Inoltre, riguardo i fatti recenti:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
<a href="https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/">Mantellini sul Post</a>.</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>I primi due anni ho provato a concentrarmi su queste domande:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>la cultura hacker ha ancora una componente anarchica?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>Sono ancora possibili atti come quelli degli attivisti del cypherpunk?</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>In che ottica possiamo inquadrare le azioni di Assange e Snowden?</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.</p>
|
||||||
|
<p>Prima dell'arrivo di internet e dell'informatica piu` in generale il cuore degli organismi di potere e controllo era facile da individuare.</p>
|
||||||
|
<p>Cosi` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.</p>
|
||||||
|
<p>Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.</p>
|
||||||
|
<p>Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita`.
|
||||||
|
E` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.</p>
|
||||||
|
<p>Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.</p>
|
||||||
|
<p>Questo ad oggi non e` piu` vero, gli edifici benche` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.</p>
|
||||||
|
<p>Cosi` quando nel <a href="https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt">2016</a> i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.</p>
|
||||||
|
<p>Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu` nelle strutture fisiche.</p>
|
||||||
|
<p>Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che a domande come:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>"Did Facebook deceive its users?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"if I delete my account, how long does Facebook keep my data?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Does Facebook use cross-device tracking?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What data is being sold?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"Is facebook censoring specific groups?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"What’s Facebook’s reach beyond its website?"</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p>"How much information does Facebook have on non-Facebook users?"</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Zuckerberg ha potuto affermare che non conosce la risposta o che puo` chiedere al suo team e rispondere in futuro.</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>Whether you know it or not, if you are a hacker, you are a revolutionary</p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Una volta compreso cio` queste parole di Doctor Crash su <a href="http://phrack.org/issues/6/3.html">phrack</a> appaiono ingenue.</p>
|
||||||
|
<p>Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.</p>
|
||||||
|
<p>Sempre Doctor Crash scrive:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution." </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Questo, complice la cultura hacker, oggi non e` piu` possibile.</p>
|
||||||
|
<h3>Opensource e Free Software</h3>
|
||||||
|
<p>Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.</p>
|
||||||
|
<p>Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e` stato corrotto mediaticamente andando a ricoprire significato di cracker.</p>
|
||||||
|
<p>Stallman nel 2007 gia` ci avvertiva che il software opensource manca l'obbiettivo:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi. </p>
|
||||||
|
<p>L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità. </p>
|
||||||
|
</blockquote>
|
||||||
|
<p>Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e` cancro o comunismo.</p>
|
||||||
|
<p>Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.</p>
|
||||||
|
<p>Basta fare un giro su <a href="https://stackshare.io/stacks">stackshare.io</a> per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.</p>
|
||||||
|
<p>Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.</p>
|
||||||
|
<p>Ne sono un esempio gitlab, redislab e elasticsearch.</p>
|
||||||
|
<p>Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.</p>
|
||||||
|
<p>Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.</p></div></description><category>lecture</category><category>PesceWanda</category><category>politecnico</category><category>polito</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2019/05/18/cultura-hacker/</guid><pubDate>Sat, 18 May 2019 00:00:00 GMT</pubDate></item><item><title>Dconf 2019</title><link>francescomecca.eu/blog/2019/03/06/Dconf-2019/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>Quest'anno molto del mio tempo passato al pc e` stato investito per D e la sua community.
|
||||||
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
I miei sforzi nell'imparare questo linguaggio sono confluiti nella partecipazione al <a href="https://dlang.org/blog/symmetry-autumn-of-code">SAOC</a> con il mio amico e collega <a href="https://fragal.eu">Francesco Galla`</a>.</p>
|
||||||
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
<p>Accompagnero` Francesco all'edizione del 2019 della <a href="https://dconf.org/2019/index.html">DConf</a> che si terra` dall'otto all'undici marzo a Londra.</p>
|
||||||
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
<p>See you there!</p></div></description><category>Conference</category><category>DConf</category><category>dlang</category><category>PesceWanda</category><guid>francescomecca.eu/blog/2019/03/06/Dconf-2019/</guid><pubDate>Wed, 06 Mar 2019 00:00:00 GMT</pubDate></item><item><title>eLearning in the age of Social Networks, the EduHack Platform</title><link>francescomecca.eu/blog/2018/10/2/eduhack-coventry/</link><dc:creator>Francesco Mecca</dc:creator><description><div><p>This is the revised transcript of my <a href="http://conf.owlteh.org/contributions/published/elearning-in-the-age-of-social-networks-the-eduhack-model/">talk</a> at the <a href="https://www.conf.owlteh.org/">OWLTEH Conference 2018</a> at the Coventry University.</p>
|
||||||
|
@ -637,26 +895,4 @@ Attraverso la dissipazione l'opera, che fissata nel momento aveva acquisito una
|
||||||
<p>Poi sono arrivate le cache, <a href="francescomecca.eu/blog/2017/3/7/spazio-digitale-rant-facebook/archive.org">Wayback Machine</a>, Reddit, e sembra che i contenuti non scompaiano più.</p>
|
<p>Poi sono arrivate le cache, <a href="francescomecca.eu/blog/2017/3/7/spazio-digitale-rant-facebook/archive.org">Wayback Machine</a>, Reddit, e sembra che i contenuti non scompaiano più.</p>
|
||||||
<p>Eppure mi ci é voluto un po' per capire che questa non é memoria, solo una forma nobile di accanimento.</p>
|
<p>Eppure mi ci é voluto un po' per capire che questa non é memoria, solo una forma nobile di accanimento.</p>
|
||||||
<p>Piace ai nostalgici, agli archivisti. </p>
|
<p>Piace ai nostalgici, agli archivisti. </p>
|
||||||
<p>Spaventa a chi di Internet non vuole farsene una ragione.</p></div></description><category>community</category><category>Facebook</category><category>feudalesimo</category><category>PesceWanda</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2017/3/7/spazio-digitale-rant-facebook/</guid><pubDate>Tue, 07 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Capire il Machine Learning (parte 3)</title><link>francescomecca.eu/blog/2016/11/15/machine-learning-parte3/</link><dc:creator>Francesco Mecca</dc:creator><description><div><h3>Riconoscimento delle immagini</h3>
|
<p>Spaventa a chi di Internet non vuole farsene una ragione.</p></div></description><category>community</category><category>Facebook</category><category>feudalesimo</category><category>PesceWanda</category><category>Rivoluzione Digitale</category><guid>francescomecca.eu/blog/2017/3/7/spazio-digitale-rant-facebook/</guid><pubDate>Tue, 07 Mar 2017 00:00:00 GMT</pubDate></item></channel></rss>
|
||||||
<p>Il machine learning viene utilizzato anche per il riconoscimento delle immagini.
|
|
||||||
La tipologia di rete neurale utilizzata per questa applicazione è chiamata rete neural a convoluzione ( <strong>convolutional neural networks</strong>), abbreviata CNN.</p>
|
|
||||||
<p>Innanzitutto consideriamo che ogni immagine può essere codificata come una matrice di valori</p>
|
|
||||||
<p><img alt="pixel" src="francescomecca.eu/wp-content/uploads/2016/8.jpg"></p>
|
|
||||||
<p>Vediamo ora quali sono le operazioni compiute da una <strong>CNN</strong> per riconoscere delle immagini.</p>
|
|
||||||
<h5>Convoluzione</h5>
|
|
||||||
<p>Durante la fase di apprendimento, la rete neurale analizza moltissime immagini (categorizzate) utilizzando dei "filtri", ovvero delle funzioni che mescolate all'input originale permettono di evidenziare dei pattern nell'immagine.
|
|
||||||
Questi pattern corrispondono alle caratteristiche proprie di un oggetto (quali possono essere ad esempio per un uccello il becco, le piume, le ali) e nel caso queste sono presenti, possiamo riconoscere l'immagine.</p>
|
|
||||||
<p>In questo esempio l'immagine di Wally é mescolata (l'operazione si chiama <strong>convoluzione</strong>) con un filtro "a cerchio" che risponde molto bene a caratteristiche come quella di possedere degli occhi.</p>
|
|
||||||
<p><img alt="waldoblue" src="francescomecca.eu/wp-content/uploads/2016/bluefilter.png"></p>
|
|
||||||
<p>La <strong>convoluzione</strong> é un'operazione che ha la proprietà di essere indipendente dalla posizione. Non importa la posizione degli occhi, quando applichiamo la <strong>convoluzione</strong> su un'immagine con un filtro "a cerchio" notiamo che gli occhi sono presenti.</p>
|
|
||||||
<h5>Subsampling</h5>
|
|
||||||
<p>Ogni segnale contiene del "rumore", ovvero degli elementi che la allontanano dal comportamento ideale. </p>
|
|
||||||
<p><img alt="ideal" src="francescomecca.eu/wp-content/uploads/2016/ideal.jpg"></p>
|
|
||||||
<p><img alt="real" src="francescomecca.eu/wp-content/uploads/2016/real.jpg"></p>
|
|
||||||
<p>Attraverso il subsampling possiamo ridurre il rumore e rendere il nostro algoritmo meno suscettibile a queste piccole variazioni; benché l'immagine abbia una risoluzione minore, i pattern rimangono.</p>
|
|
||||||
<p><img alt="waldosub" src="francescomecca.eu/wp-content/uploads/2016/sub.png"></p>
|
|
||||||
<h5>Connessione completa</h5>
|
|
||||||
<p>Alla fine dell'analisi tutte le caratteristiche estrapolate vengono considerate nell'insieme e in questo modo possiamo capire a quale categoria appartiene l'immagine.</p>
|
|
||||||
<p>Questo procedimento a livello algoritmo si esplicita con una connessione completa fra tutti i nodi della rete neurale che possono poi restituire l'output (probabilità che l'immagine appartenga ad una determinata categoria).</p>
|
|
||||||
<h5>Fase di rinforzo</h5>
|
|
||||||
<p>Durante il training é presente un'ultima fase (o strato), chiamato più propriamente <strong>loss layer</strong>. Questo strato provvede a dare un <strong>feedback</strong> alla rete neurale analizzando l'output in relazione ai dati di partenza (ovvero le immagini già categorizzate).</p></div></description><category>AI</category><category>algoritmi genetici</category><category>Genetic algorithm</category><category>Neural networks</category><category>PesceWanda</category><category>programming</category><category>reti neurali</category><guid>francescomecca.eu/blog/2016/11/15/machine-learning-parte3/</guid><pubDate>Tue, 15 Nov 2016 00:00:00 GMT</pubDate></item></channel></rss>
|
|
File diff suppressed because it is too large
Load diff
328
posts/2019/05/18/cultura_hacker.md
Normal file
328
posts/2019/05/18/cultura_hacker.md
Normal file
|
@ -0,0 +1,328 @@
|
||||||
|
<!--
|
||||||
|
.. title: Breve storia della cultura hacker
|
||||||
|
.. slug: cultura-hacker
|
||||||
|
.. date: 2019-05-18
|
||||||
|
.. tags: lezione,Rivoluzione Digitale,PesceWanda,polito,politecnico
|
||||||
|
.. category: PesceWanda
|
||||||
|
.. link:
|
||||||
|
.. description:
|
||||||
|
.. type: text
|
||||||
|
-->
|
||||||
|
|
||||||
|
Questo e\` un post tratto dalla lezione che ho svolto ogni anno per gli ultimi tre anni al Politecnico di Torino per il corso [Rivoluzione Digitale](http://rivoluzionedigitale.polito.it/).
|
||||||
|
|
||||||
|
# Scopo della lezione
|
||||||
|
|
||||||
|
Capire la cultura hacker significa entrare in contatto con quelle che sono le motivazioni e la storia di persone che hanno contribuito in maniera fondamentale alla nascita di internet e hanno presentato al mondo un modo di pensare che ancora oggi e\` alle radici dell'informatica come scienza e come strumento di cultura di massa.
|
||||||
|
|
||||||
|
# Jargon File
|
||||||
|
|
||||||
|
Cosi\` come oggi utilizziamo i social network per portare avanti discussioni (si spera) con una cerchia di interessati online, allo stesso modo a partire dal 1970 alcune persone si ritrovavano su usenet e mailing list: in maniera non organizzata alcuni membri di queste comunita\` iniziarono a raccogliere gli slang piu\` utilizzati e le storie legate a questi modi di esprimersi.
|
||||||
|
|
||||||
|
Con l'espandersi della comunita\` il Jargon File funge da guida introduttiva ai canoni e alle etichette in uso: per questo [Eric S. Raymond](https://en.wikipedia.org/wiki/Eric_S._Raymond) compiette un lavoro di riorganizzazione sistematica che termina con l'ultima edizione del 2003.
|
||||||
|
|
||||||
|
[ESR](http://catdb.org/esr) scrive:
|
||||||
|
> Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of consciousness. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's surreal trompe l'oeil compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways.
|
||||||
|
|
||||||
|
Esempi di slang e trasformazioni del lessico:
|
||||||
|
|
||||||
|
* Data General -> Dirty Genitals
|
||||||
|
|
||||||
|
* IBM 360 -> IBM Three-Sickly
|
||||||
|
|
||||||
|
* Government Property -- Do Not Duplicate (on keys) -> Government Duplicity -- Do Not Propagate
|
||||||
|
|
||||||
|
* for historical reasons -> for hysterical raisins
|
||||||
|
|
||||||
|
* Margaret Jacks Hall (the CS building at Stanford) -> Marginal Hacks Hall
|
||||||
|
|
||||||
|
* Microsoft -> Microsloth
|
||||||
|
|
||||||
|
* Internet Explorer -> Internet Exploiter
|
||||||
|
|
||||||
|
* Microsoft Outlook -> Microsoft Outhouse
|
||||||
|
|
||||||
|
* Linux -> Linsux
|
||||||
|
|
||||||
|
* FreeBSD -> FreeLSD
|
||||||
|
|
||||||
|
* C# -> C Flat
|
||||||
|
|
||||||
|
* Piu\` generale: "Ready for foodP?" (in Lisp la P sta per predicato con risultato booleano `true` `false`)
|
||||||
|
|
||||||
|
## Definizione della parola hacker
|
||||||
|
|
||||||
|
![Definition of hacker](/wp-content/uploads/2019/def_hacker.jpg)
|
||||||
|
|
||||||
|
Come si evince dall'immagine il significato della parola hacker nel gergo comune si e\` via via svuotato per poi andare a sostituire quello del termine cracker.
|
||||||
|
|
||||||
|
Un cracker e\` una persona che fa un uso non previsto e malevolo di un sistema informatico.
|
||||||
|
Nel Jargon File viene specificato che ci si aspetta che un hacker abbia compiuto del cracking e ne conosca le tecniche ma sia velocemente maturato verso forme creative piu\` nobili.
|
||||||
|
|
||||||
|
Del termine hacker abbiamo piu\` definizioni, alcune indifferenti all'uso di sistemi informatici:
|
||||||
|
|
||||||
|
1. Una persona che prova delizia dall'esplorare i dettagli di un sistema programmabile fino a raggiungerne i limiti possibili
|
||||||
|
|
||||||
|
2. una persona a cui piace programmare e lo fa per la maggior parte del tempo in maniera pratica
|
||||||
|
|
||||||
|
3. una persona capace di programmare celermente e con precisione
|
||||||
|
|
||||||
|
4. un esperto di un particolare argomento e su cui lavora spesso, ad esempio Unix Hacker
|
||||||
|
|
||||||
|
5. una persona che trova piacere nella sfida intellettuale di superare un limite in maniera creativa
|
||||||
|
|
||||||
|
A me piace raccogliere queste definizioni parafrasando Larry Wall: essere un hacker non e\` l'obbiettivo: gli obbiettivi variano in base alle persone ed al contesto. Un hacker e\` qualcuno che raggiunge il proprio obbiettivo superando le norme culturali e sociali.
|
||||||
|
|
||||||
|
|
||||||
|
# Chiave di lettura
|
||||||
|
|
||||||
|
Nella storia della cultura hacker si possono distinguere tre tipi di persone:
|
||||||
|
|
||||||
|
* i poeti e matematici, come Donald Knuth
|
||||||
|
|
||||||
|
* gli esperti di determinate tipologie di hardware o software, come Bruce Schneier
|
||||||
|
|
||||||
|
* i makers, coloro che costruiscono cio\` che gli altri usano, come Bill Gates.
|
||||||
|
Chiaramente moltissime delle personalita\` di cui parleremo rientrano in piu\` di una di queste categoria. In tutti i casi e\` importante capire che sono tre approcci complementari.
|
||||||
|
|
||||||
|
# Storia
|
||||||
|
|
||||||
|
## In the beginning there were the real programmers
|
||||||
|
|
||||||
|
La storia della cultura hacker inizia da persone che chiaramente non si nominavano tali all'epoca.
|
||||||
|
|
||||||
|
Persone che solitamente avevano un background in elettronica o fisica e si occupavano di batch computing, ovvero l'uso del computer in maniera non interattiva, solitamente per scopi scientifici.
|
||||||
|
|
||||||
|
Fra i piu\` famosi, Seymour Cray, si dice abbia una volta scritto un sistema operativo in linguaggio macchina tramite gli switch frontali di un computer da lui progettato che funziono\` al primo avvio.
|
||||||
|
|
||||||
|
Queste persone rientrano nella definizione di hacker che prende in considerazione l'esperienza in un campo, quella del calcolo scientifico, soppiantato poi dalla computazione interattiva.
|
||||||
|
|
||||||
|
Qua parte il primo filone della storia della cultura hacker, quello universitario.
|
||||||
|
|
||||||
|
|
||||||
|
### I primi hacker, la tribu\` connessa
|
||||||
|
|
||||||
|
Rimanendo all'interno delle universita\` gli albori della cultura hacker sono estremamente legati alle macchine che queste istituzioni mettevano a disposizione degli studenti.
|
||||||
|
|
||||||
|
Le macchine preferite dagli hacker era la linea dei PDP, prodotti dalla Digital Equipment Corporation (DEC).
|
||||||
|
|
||||||
|
Nei laboratori del MIT, nonostante usassero le stesse macchine che tutte le altre universita\` (PDP-10 in particolare), alcuni studenti decisero di sviluppare un proprio sistema operativo, l'Incompatible Time Sharing System, con l'obbiettivo di poter utilizzare un linguaggio di piu\` alto livello (LISP, lingua franca della cultura hacker) rispetto al sistema operativo distribuito da DEC nei PDP.
|
||||||
|
|
||||||
|
Questo e\` un atteggiamento esemplificativo della cultura hacker di quel tempo: esplorare un sistema nei dettagli per poi superarne i limiti in maniera creativa.
|
||||||
|
|
||||||
|
Nel frattempo stava nascendo Arpanet, per altro inizialmente costituita da computer della linea dei PDP, che forniva l'accesso a centinaia di universita\` e laboratori di ricerca.
|
||||||
|
|
||||||
|
Questo permise a moltissimi hacker di rompere le loro cerchie ristrette e condividere i propri lavori con una massa sempre piu\` ampia di entusiasti.
|
||||||
|
|
||||||
|
Arpanet permise la propagazione di tantissimi artefatti, fra questi le prime versioni del Jargon File.
|
||||||
|
|
||||||
|
### La nascita di Unix
|
||||||
|
|
||||||
|
Nel frattempo, nello stesso anno in cui nacque Arpanet, nei Bell Labs veniva sviluppato Unix.
|
||||||
|
|
||||||
|
All'epoca ogni computer forniva strumenti ed interfacce incompatibili fra loro. L'idea di Ken Thmpson e\` stata quella di fornire un'interfaccia unificata e le stesse funzionalita\` su macchine diverse.
|
||||||
|
|
||||||
|
Per raggiungere questo scopo, ovvero un sistema operativo universale chiamato Unix, Dennis Ritchie invento\` un nuovo linguaggio che potesse facilitare lo sviluppo per Thompson: C.
|
||||||
|
Anche C ha lo stesso obbiettivo di Unix, la portabilita\` fra macchine diverse.
|
||||||
|
|
||||||
|
C e\` sopravvissuto fino ad oggi e la filosofia di Unix, Keep It Simple and Stupid, e\` rimasta viva nei suoi discendenti.
|
||||||
|
|
||||||
|
## Freak + Phone = Phreaking
|
||||||
|
|
||||||
|
Il reverse engineering e\` una pratica comune a molti hacker che consiste nel deconstruire un oggetto (o successivamente del software) in modo da rivelarne il funzionamento.
|
||||||
|
|
||||||
|
I phreaker si occupano del reverse engineering della rete telefonica, che nel 1970 usavano dei toni audio per emettere comandi in rete.
|
||||||
|
|
||||||
|
Il piu\` celebre fra questi e\` John Draper che scopri\` che il fischietto giocattolo fornito all'interno dei cereali Cap'n Crunch emetteva un tono a 2600 Hz, coincidentalmente lo stesso utilizzato dalle linee telefoniche per instradare le chiamate.
|
||||||
|
|
||||||
|
Gli stessi Jobs e Wozniak iniziarono la loro carriera producendo delle blue box che permettevano di fare chiamate gratis o internazionali a prezzi ridotti.
|
||||||
|
|
||||||
|
## Digressione: Anarco Illuminismo
|
||||||
|
|
||||||
|
La cultura hacker, perlomeno fino a questa parte del racconto, raccoglie in se\` ideali di due ideologie differenti.
|
||||||
|
|
||||||
|
Da una parte l'ideale illuminista della diffusione della conoscenza era l'obbiettivo ultimo di moltissimi hacker, forse secondo solo al piacere intellettuale.
|
||||||
|
|
||||||
|
Le informazioni venivano sempre condivise su Arpanet e successivamente su Internet e concesse senza alcuna restrizione.
|
||||||
|
|
||||||
|
Dall'altra parte questo obbiettivo veniva spesso raggiunto con pratiche anarchiche, come la distruzione o manipolazione di oggetti al fine di comprenderli (cracking e phreaking) o l'apertura forzata di laboratori per concedere a masse di entusiasti l'accesso a strumentazione costosa o rara.
|
||||||
|
|
||||||
|
Nonostante cio\` fino ad allora non era stato compiuto nessun tentativo di formalizzare gli ideali di questa cultura.
|
||||||
|
|
||||||
|
## L'era del software proprietario
|
||||||
|
|
||||||
|
Negli anni 80 la cultura hacker era sostanzialmente spaccata in tre gruppi diversi, dagli ideali simili ma organizzati attorno a tecnologie estremamente differenti:
|
||||||
|
|
||||||
|
* il gruppo di Arpanet/PDP, principalmente nato agli AI Labs del MIT, molti di loro iniziavano ad essere assunti nelle prime startup
|
||||||
|
|
||||||
|
* il gruppo di Unix e C, che metteva le basi di internet e dei protocolli ancora oggi utilizzati
|
||||||
|
|
||||||
|
* una serie meno organizzata di gruppetti piu\` anarchici che si dedicavano al reverse engineering e allo studio di tecnologie e linguaggi alternativi a quelle viste precedentemente
|
||||||
|
|
||||||
|
Nel frattempo iniziavano a diventare piu\` comuni le prime macchine prodotte da Apple e Microsoft. In realta\` questi ebbero un'importanza marginale nella cultura hacker in quanto erano sistemi sottoposti a continue evoluzioni imposte dall'alto e privi di strumenti per l'analisi e lo sviluppo.
|
||||||
|
|
||||||
|
La cultura hacker era alla fine del suo slancio iniziale e era ormai un dato di fatto che colossi come Microsoft e IBM avrebbero dominato l'industria del software e di internet.
|
||||||
|
|
||||||
|
Nel 1983 DEC annuncio\` la fine della linea dei PDP, definendo cosi\` la morte del primo gruppo.
|
||||||
|
Nel 1984 Bell fu scorporata e AT&T acquisi i diritti di molti dei suoi prodotti, tra cui Unix.
|
||||||
|
|
||||||
|
L'hackerdom vide la possibilita\` che uno dei suoi piu\` cari lavori venisse rubato da una grande compagnia e facesse la fine di tutto il software proprietario di quell'epoca.
|
||||||
|
|
||||||
|
Per questo in quel decennio si combatte una dura battaglia fra le prime versioni di BSD Unix, nato dalle ceneri di Unix, e la versione proprietaria di AT&T.
|
||||||
|
BSD Unix si diffuse in maniera capillare, in particolare nelle infrastrutture di rete data la qualita\` delle sue implementazioni, ma AT&T vinse molte battaglie legali appropriandosi di vari standard.
|
||||||
|
|
||||||
|
|
||||||
|
## Verso una prima ideologia hacker
|
||||||
|
|
||||||
|
In quegli anni era ormai ovvio che senza acquisire maggiore consapevolezza molto del potere in mano a queste comunita\` sarebbe sparito lentamente.
|
||||||
|
|
||||||
|
Inoltre iniziavano ad avere risalto i primi fenomeni di cracking e l'intervento dei governi si fece piu\` severo (benche\` non sia paragonabile alla copertura che tali eventi hanno oggi).
|
||||||
|
|
||||||
|
La soluzione proposta risiede nella congiunzione di tre idee:
|
||||||
|
|
||||||
|
* decentralizzazione
|
||||||
|
|
||||||
|
* crittografia
|
||||||
|
|
||||||
|
* software libero
|
||||||
|
|
||||||
|
### Decentralizzazione
|
||||||
|
|
||||||
|
La decentralizzazione e\` il processo in cui un'attivita\` viene distribuita in maniera equa fra tutti i partecipanti, e si oppone all'organizzazione gerarchica e autoritaria.
|
||||||
|
|
||||||
|
L'assunto alla base e\` il principio Manzoniano per cui una persona che detiene il potere si ritrovera\` prima o poi costretta a compiere decisioni non etiche. La soluzione e\` quella di ridurre il potere distribuendolo ai margini dell'infrastruttura.
|
||||||
|
|
||||||
|
Un'esempio di decentralizzazione e\` l'architettura di internet, almeno nelle sue prime forme, dove non c'e\` un'autorita\` centrale ma ogni nodo ha eguale importanza.
|
||||||
|
Un'esempio piu\` attuale e\` la rete Bittorrent.
|
||||||
|
|
||||||
|
### Crittografia
|
||||||
|
|
||||||
|
Nel 1992 nasce una mailing list (ad oggi ancora attiva) chiamata Cypherpunk, dal gioco fra i termini cypher e cyberpunk.
|
||||||
|
|
||||||
|
Tutte le discussioni di questo gruppo vertono sull'uso della crittografia e sul concetto di privacy e anonimato.
|
||||||
|
|
||||||
|
L'idea alla base (Cypherpunk's Manifesto) e\` che la privacy e\` necessaria per poter costituire una societa\` aperta nell'era dell'informazione; non c'e\` alcuna garanzia che i governi o le corporazioni si facciano garanti di questi ideali quindi la privacy va difesa dai singoli.
|
||||||
|
|
||||||
|
Il gruppo ha portato alla creazione di software crittografico (fra cui TOR), protocolli per la comunicazione riservata e atti di disobbedienza civile.
|
||||||
|
|
||||||
|
### Software Libero
|
||||||
|
|
||||||
|
Richard Stallman aveva modificato il software di una stampante xerox in modo da mandare un messaggio di posta elettronica agli utenti in attesa di stampa ogni qualvolta la stampante si bloccasse per qualche errore.
|
||||||
|
|
||||||
|
Quando nel 1980 la stampante fu sostituita Xerox si rifiuto\` di concedere a Stallman le facolta\` necessarie per poter modificare il firmware della nuova stampante. Chiaramente questo inconveniente fu risolto con delle pratiche di reverse engineering ma questo inconveniente convinse Stallman a mettere le basi per l'ideologia del software libero.
|
||||||
|
|
||||||
|
Nel 1984 Stallman si licenzio\` dal MIT per lavorare a tempo pieno al suo progetto, GNU, una versione di Unix modificata che concedesse agli utenti finali le liberta\` da lui desiderate tramite l'utilizzo esclusivo di software libero.
|
||||||
|
Nel rispetto della cultura hacker GNU conquisto\` subito l'interesse della comunita\`.
|
||||||
|
|
||||||
|
Il progetto GNU e\` una collezione di software di qualsiasi tipo che rispetti le liberta\` garantite dalla licensa [GPL](https://en.wikipedia.org/wiki/GNU_General_Public_License); fra questi i piu\` famosi sono [GCC](https://gcc.gnu.org/), [emacs](https://www.gnu.org/software/emacs/), [Octave](https://www.gnu.org/software/octave/), [R](https://www.r-project.org/) ma anche software di attivismo, gestione delle finanze e tant'altro.
|
||||||
|
|
||||||
|
Il progetto sarebbe dovuto essere completato da un kernel, HURD, che ad oggi e\` ancora molto instabile.
|
||||||
|
|
||||||
|
Nel frattempo, in Europa, Linus Torvalds, in sintonia con quell'atteggiamento di opposizione e rivolta tipico della cultura hacker , inizio\` a sviluppare il kernel Linux seguendo un approccio inusuale che fu fortemente criticato dal suo professore, Andrew S. Tanenbaum. [Questo dibattito fu il soggetto di un'enorme flame war su usenet](https://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate).
|
||||||
|
|
||||||
|
Linus per lavorare al suo progetto stava utilizzato moltissimi degli strumenti della suite di GNU e fu contattato da Stallman per collaborare ed adottare Linux come kernel, pezzo mancante del sistema operativo GNU.
|
||||||
|
|
||||||
|
Questo ha portato a quello che oggi viene chiamato da molti Linux che in realta\` andrebbe chiamato [GNU/Linux](https://www.gnu.org/gnu/why-gnu-linux.html).
|
||||||
|
|
||||||
|
|
||||||
|
# Lo stato della cultura hacker oggi
|
||||||
|
|
||||||
|
Abbiamo visto fino ad ora che ci sono stati tre filoni della cultura hacker, quello universitario, quello piu\` amatoriale e pratico, rivolto all'exploitation e infine quello piu\` ideologico.
|
||||||
|
|
||||||
|
E\` molto difficile cercare di interpretare la direzione di questa sottocultura (se ancora si puo\` definire tale), specialmente per chi come me non ne ha le competenze benche\` si ritrovi spesso a parlare e conoscere con persone che hanno fatto proprio l'atteggiamento della cultura hacker.
|
||||||
|
|
||||||
|
Nonostante cio\` ogni anno ho provato a trasmettere agli studenti delle mie considerazioni sulla situazione presente, da differenti punti di vista.
|
||||||
|
|
||||||
|
## Disobbedienza civile elettronica
|
||||||
|
|
||||||
|
Non penso di dovermici soffermare ma due figure molto importanti della cultura hacker sono Edward Snowden e Julian Assange (Mendax).
|
||||||
|
|
||||||
|
Queste due persone e tutto cio\` ha permesso loro di raggiungere questa posizione rappresentano [cio\` che il potere teme di internet](http://www.mantellini.it/2012/08/17/perche-assange-e-internet/).
|
||||||
|
|
||||||
|
Inoltre, riguardo i fatti recenti:
|
||||||
|
> A un certo punto su Julian Assange è diventato impossibile dire qualsiasi cosa. È semplicemente accaduto, non è colpa di nessuno. Da un certo momento in avanti, dire qualcosa di sensato su Assange, qualcosa di non ovvio e cialtrone, di vagamente correlato ad un’idea minima di verità sulla vita e le gesta dell’hacker australiano dai capelli argentati è diventato non solo complicato ma perfino inutile. Troppe cose nel frattempo si erano sommate, troppe bugie, troppe interpretazioni di segno opposto si erano saldamente ancorate alla biografia di un uomo indubitabilmente unico, i cui tratti biografici e di comportamento hanno disegnato fin dall’inizio, a complicare ulteriormente le cose, i tratti della stranezza, se non quelli del disturbo psichico.
|
||||||
|
> [Mantellini sul Post](https://www.ilpost.it/massimomantellini/2019/04/11/cosa-potremo-dire-di-assange/).
|
||||||
|
|
||||||
|
I primi due anni ho provato a concentrarmi su queste domande:
|
||||||
|
|
||||||
|
* la cultura hacker ha ancora una componente anarchica?
|
||||||
|
|
||||||
|
* Sono ancora possibili atti come quelli degli attivisti del cypherpunk?
|
||||||
|
|
||||||
|
* In che ottica possiamo inquadrare le azioni di Assange e Snowden?
|
||||||
|
|
||||||
|
Quando si parla di Assange e Snowden si parla di politica e media, ovvero potere e controllo.
|
||||||
|
|
||||||
|
Prima dell'arrivo di internet e dell'informatica piu\` in generale il cuore degli organismi di potere e controllo era facile da individuare.
|
||||||
|
|
||||||
|
Cosi\` penso al Medioevo, dove questo era la chiesa, che faceva dell'arte barocca il suo strumento di controllo.
|
||||||
|
|
||||||
|
Oppure al fascismo, dove come spiega Mosse in "Il fascismo. Verso una teoria generale", l'architettura stessa aveva carattere intimidatorio.
|
||||||
|
|
||||||
|
Gli "antagonisti" del potere non dovevano fare altro che riunirsi in qualche maniera organizzata e far fronte a queste strutture, fisicamente affrontare la loro solidita\`.
|
||||||
|
E\` il motivo per cui nella cultura pop V per Vendetta termina con l'esplosione del parlamento e Fight Club con il crollo delle banche.
|
||||||
|
|
||||||
|
Il regime collassa una volta che l'opposizione ne ha distrutto la fortezza in cui risiede.
|
||||||
|
|
||||||
|
Questo ad oggi non e\` piu\` vero, gli edifici benche\` siano ancora visibili si sono svuotati e il potere si muove come desidera attraverso un flusso ininterrompibile di bits.
|
||||||
|
|
||||||
|
Cosi\` quando nel [2016](https://en.wikipedia.org/wiki/2016_Turkish_coup_d%27%C3%A9tat_attempt) i militari turchi riuscirono a far fuoco sul parlamento e prendere il controllo di radio e televisioni, Erdogan, fisicamente non presente, con una semplice chiamata Facetime riusci\` a recuperare il controllo della situazione prendendo contatto e mobilitando la resistenza.
|
||||||
|
|
||||||
|
Possiamo a questo punto provare ad affermare che il potere risieda nelle persone e non piu\` nelle strutture fisiche.
|
||||||
|
|
||||||
|
Eppure quando nell'aprile del 2018 il congresso statunitense ha affrontato Zuckerberg con un documento di piu\` di 1000 pagine, il potere di Facebook non era presente neanche sotto la forma fisica di un ragazzo di trent'anni.
|
||||||
|
|
||||||
|
Questo ce lo dimostra il fatto che a domande come:
|
||||||
|
|
||||||
|
- "Did Facebook deceive its users?"
|
||||||
|
|
||||||
|
- "if I delete my account, how long does Facebook keep my data?"
|
||||||
|
|
||||||
|
- "Does Facebook use cross-device tracking?"
|
||||||
|
|
||||||
|
- "What data is being sold?"
|
||||||
|
|
||||||
|
- "Is facebook censoring specific groups?"
|
||||||
|
|
||||||
|
- "What’s Facebook’s reach beyond its website?"
|
||||||
|
|
||||||
|
- "How much information does Facebook have on non-Facebook users?"
|
||||||
|
|
||||||
|
Zuckerberg ha potuto affermare che non conosce la risposta o che puo\` chiedere al suo team e rispondere in futuro.
|
||||||
|
|
||||||
|
> Whether you know it or not, if you are a hacker, you are a revolutionary
|
||||||
|
|
||||||
|
Una volta compreso cio\` queste parole di Doctor Crash su [phrack](http://phrack.org/issues/6/3.html) appaiono ingenue.
|
||||||
|
|
||||||
|
Gli hacker combattono per il libero accesso all'informazione senza poi discutere di come queste nuove conoscenze andrebbero applicate.
|
||||||
|
|
||||||
|
Sempre Doctor Crash scrive:
|
||||||
|
> There is one last method of this war against computer abusers. This is a less subtle, less electronic method, but much more direct and gets the message across. I am speaking of what is called Anarchy. Anarchy as we know it does not refer to the true meaning of the word (no ruling body), but to the process of physically destroying buildings and governmental establishments. This is a very drastic, yet vital part of this "techno-revolution."
|
||||||
|
|
||||||
|
Questo, complice la cultura hacker, oggi non e\` piu\` possibile.
|
||||||
|
|
||||||
|
|
||||||
|
## Opensource e Free Software
|
||||||
|
|
||||||
|
Quest'ultimo anno mi son concentrato maggiormente sulla cultura del software libero.
|
||||||
|
|
||||||
|
Nel 2019 il termine opensource ha soppiantato quello di software libero allo stesso modo di come il termine hacker e\` stato corrotto mediaticamente andando a ricoprire significato di cracker.
|
||||||
|
|
||||||
|
Stallman nel 2007 gia\` ci avvertiva che il software opensource manca l'obbiettivo:
|
||||||
|
|
||||||
|
> I due termini descrivono all'incirca la stessa categoria di software. Ma si basano su valori fondamentalmente diversi.
|
||||||
|
> L'open source è una metodologia di sviluppo; il software libero è un movimento sociale. Per il movimento per il software libero, il software libero è un imperativo etico, il rispetto essenziale della libertà degli utenti. Al contrario la filosofia dell'open source pensa a come "migliorare" il software soltanto da un punto di vista pratico. Dice che il software non libero è una soluzione non ottimale. Spesso le discussioni sull'“open source” non considerano quel che è giusto o sbagliato, ma solo il successo e la popolarità.
|
||||||
|
|
||||||
|
Quando ancora GNU/Linux girava sotto forma di dischi o floppy Steve Ballmer diceva che il software libero e\` cancro o comunismo.
|
||||||
|
|
||||||
|
Vent'anni dopo lui stesso afferma di aver sbagliato giudizio e che l'opensource ha divorato il mondo: non solo quasi tutto lo sviluppo avviene utilizzando tool opensource ma banche, data center, agenzie governative, perfino le auto, usano software libero, almeno in parte se non completamente.
|
||||||
|
|
||||||
|
Basta fare un giro su [stackshare.io](https://stackshare.io/stacks) per avere un'idea di quanto i colossi del web siano dipendenti dal software opensource.
|
||||||
|
|
||||||
|
Inoltre moltissime startup o aziende fondano il loro business sul modello "open-core", ovvero il fornire un'edizione del proprio prodotto come software libero e una versione commerciale solitamente sviluppata a partire dalla precedente.
|
||||||
|
|
||||||
|
Ne sono un esempio gitlab, redislab e elasticsearch.
|
||||||
|
|
||||||
|
Nonostante l'opensource abbia avuto un successo incomparabile nelle "core tecnologies", come librerie, tooling e linguaggi di programmazione, ha fallito nel liberare l'utente finale, obbiettivo con il quale era nato.
|
||||||
|
|
||||||
|
Questo ce lo dimostra il fatto che i servizi forniti dalle SaaS (software as a service) e i grandi servizi di cloud non trasmettono nessuna delle quattro liberta\` del software libero fino all'utente finale e hanno catturato il potenziale radicale del software libero per renderlo un mero strumento del tutto insignificante e sconosciuto al destinatario del servizio.
|
BIN
wp-content/uploads/2019/def_hacker.jpg
Normal file
BIN
wp-content/uploads/2019/def_hacker.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 190 KiB |
Loading…
Reference in a new issue