Linux per Linguisti

Cosa è Linux e perchè ogni linguista dovrebbe conoscerlo? Linux è una premessa per una metodologia di ricerca riproducibile e affidabile.

Cosa è Linux

Specialmente se siete in una magistrale, o ancor più in un Ph.D., avrete sicuramente sentito nominare o visto Linux, o per meglio dire GNU/Linux (nel resto del post sarà chiamato Linux, sorry Richard).

Linux è un sistema operativo open source nato negli anni 90 che da un decennio diventa sempre più presente nel desktop environment. E' praticamente un'alternativa a Windows. Un'alternativa gratis. Dove tutto ciò che accade nel sistema può essere visto, controllato, cambiato, ecc…

Ci sono tantissime varietà di Linux (chiamate distributions o in breve distro) per desktop, così come di Linux per server, ed essendo open source chiunque può controllare il codice sorgente di ogni varietà per assicurarsi che sia legittima, quali problemi possa contenere ed aggiustare quei problemi e proporre i propri aggiustamenti a chi mantiene una distro di Linux o il kernel stesso, così che tutti possano poi usufruire dei miglioramenti al sistema.

Linux è quindi "community driven". Quando si installa una distro ci si sta affidando a decine, centinaia o migliaia di persone che impiegano parte del loro tempo e conoscenze a rendere un sistema operativo utilizzabile da tutti in maniera affidabile, sicura ed efficiente.

Se siete interessati un pò più alla storia di Linux, così come a cosa si intende per open source e free software (free nel senso di libero, non gratis), questa presentazione TEDx di Richard Stallman è ottima anche per chi non è familiare con il topic:

Le slide sono anche disponibili in italiano qui: https://static.fsf.org/nosvn/rms_tedx_it.odp

Perchè Linux sarebbe adatto ai linguisti?

In realtà Linux è adatto a tutti. Anche la nonna o zia poco familiare con i computer può usare una distro di linux per navigare sul web.

Ciò che intendo dicendo che un linguista dovrebbe saper usare linux è che chi fa ricerca, in generale, dovrebbe usare linux.

Se siete su questo post probabilmente avrete avuto una minima esperienza con l'analizzare dati in maniera quantitativa invece che qualitativa. Se lo avete fatto avrete forse dovuto iniziare a capire come scrivere qualche riga di codice in Python, R o simili. Oppure avete usato Excel ed SPSS.

Ecco, la differenza fra i primi due, Python e R, e Excel ed SPSS è che i primi due sono open source mentre gli ultimi due no. Questo vuol dire che, se ci fosse qualche piccolo problema nella struttura di SPSS o Excel (cosa che sicuramente c'è perchè nessun programma o sistema è perfetto per ogni situazione) e i risultati che si ottengono sono leggermente o grandemente sfalsati, non c'è modo di saperlo!

Gli unici a poter individuare simili problemi prima che causino danni sono coloro che sviluppano questo software chiusi e ciò può richiedere tempo o anche non essere subito rivelato agli utenti.

Se invece di Excel o SPSS si usasse Libre Calc e PSPP (versioni open source dei due), se ci fosse un problema interno al software che crea risultati sfalsati, una community intera potrebbe accorgersene, riportare il problema ed aggiustarlo.

In questa presentazione, vengono elencati alcuni esempi di casi in cui errori interni ad Excel hanno avuto come conseguenza risultati sbagliati in campi come la genetica ed economia.

Quindi, fare ricerca che sia affidabile e riproducibile dipende molto dagli strumenti che si utilizzano. In effetti ha senso, un'analogia che uso spesso è quella della macchina: se si usa il cambio manuale per andare da A a B non si conosce chiaramente quante marce e quali sono state cambiate durante il tragitto, con il cambio manuale invece lo si sa chiaramente, mentre con una macchina autoguidata non si sa assolutamente nulla su come si arriva da A a B. Usare Linux per semplici calcoli su Libre Calc può essere come guidare una macchina con il cambio manuale, ma la macchina è trasparente e possiamo vedere ogni marcia che viene cambiata dal sistema automatico proprio come lo vedremmo se stessimo cambiando le marce manualmente.

Questi problemi di reproducible research sono ovviamente correlati anche ad altri come open data, paywalls in accademia, ecc… che però sono un pò fuori dall'argomento principale del post.

E' davvero così utile per la ricerca usare Linux?

Ok, non siete ancora del tutto certi di ciò che scrivo. Non sono ancora riuscito a vendere l'idea. Mettiamola così:

  • I top 500 supercomputer nel mondo girano su Linux
  • La maggior parte dei webserver (praticamente i siti web che visitate) girano su Linux
  • La ISS (la stazione spaziale internazionale) è passata per le sue principali funzionalità da Windows a Linux

La ragione per il successo in ambito scientifico di Linux non è casuale, non è perchè gli scienziati vogliono sembrare geek e nerd ed essere fuori dal coro.

Il motivo è che, se si prende in considerazione il processo di sviluppo del kernel e di ogni software open source, è evidente come sia simile al processo di ricerca utilizzato in tutto il mondo:

1. Creazione di un programma 1. Nuova ipotesi proposta
2. Community testa e controlla il codice 2. Ipotesi studiata e testata
3. Modifiche, miglioramenti 3. Rettificazioni e ulteriori prove
4. Nuovo programma che include il precedente 4. Nuove ipotesi rinforzano la teoria

Ovviamente, se il programma non funziona per niente, non è affidabile o simili, la community lo scarterà, così come un'ipotesi alternativa accettata per errore viene poi scartata quando si identifica l'errore

Il metodo scientifico non è perfetto ma funziona, ed è ciò che guida lo sviluppo della civilizzazione. E' quindi possibile proporre l'idea che la scelta migliore per la computazione dei propri dati di ricerca risieda in un sistema che si basa su principi simili.

Altri vantaggi pratici?

Ok, in effetti ho utilizzato motivazioni e esempi un pò troppo ideologici e teorici ma ecco alcuni dei vantaggi immediati che ho trovato.

Installare software:

Il motivo per cui provai Ubuntu fu il seguente: Dovevo installare Python per un corso universitario, ci misi un sacco per farlo, scoprii che installare libraries infastidiva ancor più, e lessi che su Linux era molto più facile. In efffetti, appena si installa Linux si ha Python2.7 e Python3 inclusi.

Bisogno di installare Spyder o Jupyter notebook per poter scrivere codice in Python? Ecco ciò che serve:

sudo apt-get install spyder

Niente siti dove dover andare, niente pulsanti DOWNLOAD da cliccare per poi scoprire che era un ad ed il vero pulsante era sotto, solo quattro parole da scrivere nel terminale.

Bisogno delle librerie di Python? Magar NLTK e matplotlib per un pò di analisi dei corpora con qualche grafico?

sudo apt-get install python3-matplotlib python3-nltk

Fatto. Si può anche scegliere di usare pip ovviamente, ma è un'altra storia.

Ciò è possibile perchè le distro di Linux hanno repositories (tipo un grande magazzino, o registro) di tutti i programmi disponibili per la distro e quando si da il comando d'installare un programma, il computer contatta il magazzino più vicino da cui scarica il programma.

Ovviamente, questi registri contengono programmi che sono stati esaminati e accettati dalla community e possono quindi essere considerati sicuri e affidabili.

Performance

Ci sono tante distro di Linux, alcune sono pesanti quanto Windows sulla RAM, altre invece sono leggere, progettate magari per vecchi laptop, e quindi permettono di occupare poco spazio nella RAM. Con Lubuntu (una variante di Ubuntu) si può riuscire ad avere meno di un giga di RAM occupata dal sistema.

Ciò permette non solo di sfruttare meglio un buon computer, ma anche di usare computer vecchi che non reggerebbero mai Windows 10. Personalmente, ho un secondo laptop che ha più di 7 anni ma che funziona benissimo con Linux. Installare Windows lo renderebbe troppo lento ed inutilizzabile.

Customizzare

Anche se le distro hanno un look prestabilito, le si possono modificare in qualsiasi modo. Ricordate, il codice è tutto aperto e disponibile, quindi si possono applicare tutte le modifiche che si vogliono!

Visitate su Reddit Unixporn per vedere alcune personalizzazioni che sono praticamente opere d'arte!

Ok, quasi venduto, ma riguardo ai miei giochi? Ho letto che il wifi spesso non funziona e neanche le stampanti. Come farò?

Questi sono problemi del passato, seriamente. L'unica cosa di cui preoccuparsi è il tipo di scheda grafica che si possiede. Non tutte le schede Nvidia hanno una buona compatibilità con sistemi Linux perchè i driver sono proprietari.

I giochi erano in parte un problema fino a un paio di anni fa. Su Steam tantissimi giochi hanno supporto immediato su Linux e possono essere giocati tranquillamente, dall'anno scorso inoltre molti giochi disponibili solo su Windows sono ora giocabili grazie a Steam anche su Linux tramite una specie di emulatore (proton). Personalmente, gioco a mortal kombat e Miscreated che sono solo per windows, ma con proton vanno benissimo.

Le schede wifi ormai vanno tutte. Ho installato Linux su circa 7-8 macchine diverse e mai trovato una che avesse una scheda wifi con driver non presenti nel Linux kernel. Stesso discorso per le stampanti.

Certo, gli intoppi possono esserci, ma se si tiene in considerazione tutto ciò che è stato detto in questo post e nel primo video si guadagnano due cose importanti:

  1. Si diventa effettivi proprietari della propria macchina, il computer ed il sistema operativo sono vostri, potete letteralmente farci ciò che volete.
  2. Si diventa più responsabili. Poter fare ciò che si vuole da anche la libertà di fare danni. E' normale creare casini e rompere magari il proprio OS sperimentando, si può sempre però cercare di risolvere e, se proprio va male, reinstallare senza troppo sforzo.

Dove posso saperne e imparare di più?

Ottimi posti dove avere informazioni sono:

Ricordate, qualsiasi problema o curiosità possiate avere, è probabile al 99% che qualcuno abbia già fatto la domanda ed avuto una risposta su una di queste piattaforme.

Per installare Linux metto il link della video-guida che usai io tre anni fa per installarlo su una chiavetta USB invece che sul computer.

RICORDATE DI FARE UN BACKUP DEI VOSTRI DATI PRIMA DI CIMENTARVI:

Ciò che io posso dire sulla community, per esperienza personale, è che potete trovare davvero un sacco di persone felici di aiutare a risolvere un problema, dare suggerimenti e far scoprire cose nuove.

Ulteriori cose Open Source e Free Software

Per alcuni software free e open source, potete vedere la mia pagina About dove c'è una lista di free software che uso che sono disponibili anche su Windows e MacOS spesso.

Se volete fare un ulteriore passo anche con i social media verso dei sistemi open source che non si basano sul tracciare i vostri dati per venderli, rifilare pubblicità e farvi finire in una bubble di informazione basata su algoritmi che scelgono ciò che più vi fa arrabbiare o piacere, potete provare queste piattaforme:

  • Mastodon è un'alternativa a Twitter. Niente pubblicità e timeline cronologica, niente algoritmi che scelgono cosa vedere prima.
  • Pixelfed è un'alternativa ad Instagram. Niente pubblicità ogni 4-5 post (controllate pure), timeline cronologica così gli amici e utenti con meno follower non vengono oscurati da celebrità. (Purtroppo niente app ancora.)
  • Pleroma e GnuSocial sembrano un pò FB, un pò Twitter, un pò tumblr, non so, sono comunque fighi! Stessi pro di Mastodon

La cosa più interessante di questi social network oltre ad essere open source? Ognuno di loro può avere centinaia di istanze diverse, ma sono tutti collegati fra loro!

Se si ha un profilo su un'istanza di Mastodon, ad esempio, si possono seguire e vedere post di utenti su Pixelfed e Pleroma!

E' come se su FB fosse possibile seguire persone su Twitter e vedere i loro post e viceversa.

Date: 2019-01-24 do 00:00

Author: Andrew

Other posts