Master Mind

Il gioco Master Mind consiste nel decifrare un codice segreto composto da quattro palline colorate, ovviamente nell’ordine in cui si trovano (esempio una pallina rossa, una pallina verde, una pallina blu, una pallina rossa).
Il codice segreto viene generato dal computer utilizzando quanti colori (4, 5, 6 o 7) scelga di mettere in gioco il giocatore: le quattro palline avranno ciascuna uno dei colori del set scelto, con possibilità di avere più palline dello stesso colore. In tal modo, anche se i colori messi in gioco sono solo quattro, non è detto che vengano utilizzati tutti; certamente, visto che il codice è composto da quattro palline, non saranno utilizzati tutti i colori messi in gioco se questi sono 5, 6 o 7. Con l’aumento dei colori messi in gioco aumenta così la difficoltà della decifrazione del codice segreto.
Il giocatore compie tentativi di decifrazione indicando combinazioni ipotetiche. Ad ogni tentativo il computer risponde:
. mostrando un quadratino nero per ogni pallina del colore giusto al posto giusto,
. mostrando un quadratino bianco per ogni pallina del colore giusto al posto sbagliato.
Ragionando su queste risposte alle combinazioni ipotizzate nei vari tentativi si dovrebbe riuscire a decifrare il codice in meno di dieci tentativi: in caso contrario la partita è persa.

Mi sono divertito a scrivere un programmino per questo gioco, che si può scaricare qui.
Ho utilizzato il linguaggio Python nella versione 3 con il modulo grafico tkinter e il programma funziona su qualsiasi computer, qualunque sia il sistema operativo, purché sul computer stesso sia installato l’interprete Python 3.
Chi usa il sistema operativo Linux dovrà ricordarsi di rendere eseguibile il file scaricato con chmod 555 e verificare che la prima riga contenga l’indicazione esatta del percorso dell’interprete Python sul proprio computer (quasi sempre sarà quello indicato nel programma, a meno di installazioni personalizzate).
Il programma è facilmente adattabile per essere utilizzato con un interprete Python 2: basta modificare con un semplice editor di testo (non word processor) la riga 165, scrivendo Tkinter (con la T maiuscola) al posto di tkinter (con la t minuscola). Chi usa il sistema operativo Linux dovrà anche sostituire python2 a python3 nella prima riga, sempre verificando che il percorso sia giusto.

Buon divertimento.

Da Python 2 a Python 3

Se qualcuno ha scaricato l’applicazione Python for Android che ho proposto nel mio precedente articolo “Python su Android” si sarà accorto che si tratta della versione 3 di Python. Questa versione è stata rilasciata fin dal 2008 e costituisce ormai il presente e il futuro del linguaggio Python. Ma il mondo è ancora pieno di versioni 2, in particolare dell’ultima rilasciata 2.7.9, che resiste alla messa in quiescenza in quanto i programmi scritti con la sintassi della versione 2 non sono compatibili con la versione 3 e questi programmi:
. o si continuano ad utilizzare con l’interprete di una delle versioni 2,
. o si buttano insieme al vecchio interprete di una delle versioni 2,
. o si adattano alla versione 3 e si butta il vecchio interprete di una delle versioni 2.
La cosa più saggia da fare è sicuramente l’ultima, in quanto le differenze tra le versioni 2 e 3 non sono poi così tante.
Per i volonterosi che vogliano provvedere ad aggiornare i propri programmi Python 2 a Python 3 le elenco nel file PDF allegato, scaricabile e stampabile.
Chi già conosce Python 2 e non conosce ancora Python 3 ha così anche la chiave per programmare, da qui in poi, in Python 3.

da_python2_a_python3

Python su Android

Su un tablet o su uno smartphone equipaggiati con Android è possibile lavorare con il linguaggio di programmazione Python; lavorare nel senso di avere a disposizione la shell di Python e di poter eseguire script Python archiviati sul dispositivo.
Mi si chiederà: per farci che cosa?
Nel mio caso, oltre che per eseguire programmi di calcolo di varia natura da me prodotti (calcoli finanziari, calcoli statistici, calendario perpetuo, ecc.), anche per poter accedere con facilità a database Sqlite (ricordo che Sqlite è integrato nel sistema Android) dove ho catalogato tutte le mie raccolte musicali e di biblioteca, con il vantaggio, tra i tanti, che, potendo controllare istantaneamente sullo smartphone le opere di un certo autore che già posseggo non corro il rischio di acquistare doppioni quando sono in giro per negozi.
Al di là di tutto ciò sta comunque la soddisfazione di poter creare qualche cosa che funzioni persino su un telefonino, divertendosi con quello splendido linguaggio di programmazione che è Python.

Per fare queste cose dobbiamo innanzi tutto procurarci l’applicazione sl4a (scripting layer for android) che è la piattaforma sulla quale possiamo far girare i nostri script. Si dice in giro che questa applicazione sia diventata incompatibile con Android a partire dalla versione 5.0 (Lollipop): non mi pare, visto che su un mio emulatore con Android 5.0.1 (API 21) funziona benissimo. L’ultima versione dell’applicazione, la sl4a_r6 si trova qui.
Dobbiamo poi procurarci l’applicazione Python for Android, che ci consente di installare l’interprete Python. L’ultima versione, Python3ForAndroid_r6 si trova qui.
Entriamo così in possesso dei file sl4a_r6.apk e Python3ForAndroid_r6.apk che dobbiamo installare, nell’ordine, sul nostro dispositivo. Per l’installazione di sl4a è necessario che il dispositivo sia corredato di una SDCard sulla quale verrà automaticamente creata una directory per ospitare gli script.
Con collegamento internet attivo lanciamo l’applicazione Python for Android e, dal menu che compare, scegliamo Installa: dopo qualche minuto di scaricamento, scompattamento e installazione avremo il nostro Python sul dispositivo e lanciando l’applicazione sl4a troveremo elencati gli script Python che si sono installati per dimostrazione ed ai quali potremo aggiungere tutti quelli che produrremo noi.
L’allegato file PDF, scaricabile e stampabile, costituisce un utile prontuario sul funzionamento dell’applicazione sl4a.

sl4a

La resurrezione del Pascal

Il 22 aprile 2015 è stata rilasciata la versione 1.4 di Lazarus.
Il progetto Lazarus è nato nel 1999 dalle ceneri di un precedente progetto di clonazione del compilatore Delphi che la Borland aveva messo sul mercato per l’utilizzo del linguaggio Pascal. E’ stato chiamato Lazarus appunto perché proviene dalla resurrezione di un progetto che era defunto.
Conosco precedenti versioni di Lazarus, che già considero perfette: chissà quest’ultima!
Ma il pregio maggiore del progetto sta nel mantenere di attualità e alla portata di tutti (siamo nel software libero) un ottimo linguaggio di programmazione come il Pascal, che Niklaus Wirth e Kathleen Jénsen crearono nel 1970 (due anni prima che Dennis Ritchie creasse il linguaggio C) a scopo didattico.
Wirth era infatti un insegnante di informatica e creò il Pascal per insegnare le basi della programmazione strutturata, forse senza accorgersi che così aveva creato anche qualche cosa che andava ben oltre gli scopi didattici: gran parte dei primi sistemi operativi per il Macintosh e per Microsoft Windows sono stati scritti in Pascal.
Per sapere tutto sul Pascal e su Lazarus basta andare su http://www.lazaruspascal.it/, dove si trova anche una serie di tutorial in italiano per imparare il Pascal.

Lazarus è attrezzato per produrre programmi a riga di comando e programmi dotati di ricca interfaccia grafica.
Essendo basato su Free Pascal, che deriva dal Turbo Pascal della Borland, Lazarus può anche utilizzare la unit Crt, che consente di creare programmi a riga di comando con qualche ingentilimento da formattazione e colori. Per certi programmi di utilità può andare benissimo, anzi, per quanto mi riguarda, può andare meglio di programmi con interfaccia grafica dispersiva e laboriosa da creare.
Per usare la unit Crt occorre aggiungerla in questo modo nella sezione uses della traccia di programma che Lazarus ci propone nel suo editor per un Progetto di Programma

uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, Crt
{ you can add units after this };

Funzioni e sintassi per utilizzare la unit Crt si trovano in http://www.freepascal.org/docs-html/rtl/crt/index-5.html.

Un esempio di programma di questo tipo è quello che si trova nei link qui sotto. Si tratta di un mio divertimento di calendario perpetuo in gran parte basato sulle Formule astronomiche per calcolatori di Jean Meeus.
Programma calendario:
source_pascal
eseguibile_linux (da rendere eseguibile dopo scaricamento con chmod 555)
eseguibile_windows

Buon divertimento con Pascal e Lazarus.

Lisp sempreverde

Il linguaggio Lisp è stato creato nel lontano 1959 da John McCarthy presso il Massachusetts Institute of Technology per i computer della serie IBM 700/7000 e per applicazioni di intelligenza artificiale.
E’ nato come linguaggio funzionale ed è il più antico linguaggio di questo tipo. Ma dal 1959 ad oggi è passato attraverso varie evoluzioni e sono stati creati numerosi suoi dialetti, al punto che le varie versioni che sono oggi disponibili non si possono catalogare come linguaggi funzionali puri.
Tra queste varie versioni, che vanno dal Common Lisp all’AutoLISP (utilizzato in AutoCAD), dallo Scheme all’Emacs Lisp, ne segnalo una che ritengo notevole per la semplicità di uso e per la ricchezza di funzioni preconfezionate che offre: newlisp.
Sul sito www.newlisp.org troviamo tutto ciò che lo riguarda: documentazione e possibilità di download. Il tutto all’insegna del software libero.
Creato nel 1991 per Windows fu convertito per Linux nel 1999 e, di rilascio in rilascio, si è sempre più arricchito: il 20 gennaio 2015 è stata rilasciata la versione 10.6.2, disponibile per Linux, Windows e OS X.
Lo ritengo un formidabile linguaggio di scripting per studenti e matematici.
Una volta che ci si è abituati all’uso delle numerose parentesi e alla notazione prefissa tipiche del Lisp diventa anche rapido e divertente.

Utili funzioni preconfezionate sono le seguenti.
Calcolo matriciale:
invert ritorna l’inversione di una matrice
det calcola il determinante di una matrice
multiply moltiplica due matrici
mat applica un operatore aritmetico a due matrici o a una matrice e a un numero
transpose ritorna la trasposta di una matrice
Calcoli statistici:
beta calcola la funzione beta
betai calcola la funzione beta incompleta
binomial calcola la funzione binomiale
corr calcola il coefficiente di correlazione di Pearson
crit-chi2 calcola il valore del Chi quadrato di Pearson per una data probabilità
crit-f calcola il valore critico minimo del test F di Snedecor per una data probabilità
crit-t calcola il valore critico minimo del test t di Student per un dato livello di confidenza
crit-z calcola il valore critico normale di un test Z di Fisher per una data probabilità cumulata
erf calcola la funzione di errore per un numero
gammai calcola la funzione gamma incompleta
gammaln calcola la logaritmica della funzione gamma
kmeans-query calcola la distanza euclidea tra un vettore e un centroide
kmeans-train applica la cluster analysis a una matrice
normal genera una lista di numeri casuali normalmente distribuiti data una media e uno scarto quadratico medio
prob-chi2 calcola la probabilità cumulata del test Chi quadrato di Pearson
prob-f calcola la probabilità di un valore riscontrato del test F di Snedecor
prob-t calcola la probabilità di un valore riscontrato del test T di Student
prob-z calcola la probabilità cumulata di un valore riscontrato del test Z di Fisher
stats calcola valori statistici (media, varianza, scarto quadratico medio, ecc.) di una serie di numeri
t-test utilizza il test t di Student per valutare la differenza tra medie
Calcoli finanziari:
fv calcola il valore futuro di un investimento
irr calcola il tasso di rendimento interno
nper calcola il numero di periodi per un investimento
npv calcola il valore attuale di un investimento
pmt calcola la rata costante per estinguere un prestito
pv calcola il valore attuale di una rendita
Ovviamente quelle che ho richiamato sono comprese nella lunghissima serie di funzioni che ci offre newlisp e le ho richiamate in quanto sono difficilmente presenti in altre versioni del linguaggio Lisp.
La lista completa e la sintassi richiesta per tutte le funzioni la troviamo in http://www.newlisp.org/downloads/manual_frame.html.

Altra cosa utile e sfiziosa che ci regala newlisp è la possibilità di creare ed eseguire programmi con interfaccia grafica (GUI), grazie all’aggiunta a newlisp, attorno al 2008, di un server per interfaccia grafica costituito dai file guiserver.jar (per far funzionare il quale occorre aver installato la macchina virtuale java sul computer) e dalla sua interfaccia guiserver.lsp.
La sintassi per programmare con GUI la troviamo all’indirizzo http://www.newlisp.org/guiserver-jp/.
Un piccolo esempio di programma con interfaccia grafica è scaricabile qui.
Un esempio un tantino meno banale lo troviamo invece qui: questo programma è utile per determinare i codici da inserire nella programmazione con GUI per creare i colori desiderati.
Ricordo a chi usa Linux che i file eventualmente scaricati vanno resi eseguibili per provarli.

Buon divertimento con newlisp.

Software libero

Per approfondire la filosofia del software libero, basta consultare le voci “software libero”, “gnu gpl” e “linux” su Wikipedia.
Visto, però, che ho intenzione di presentare programmi di software libero che servono a fare tante cose, voglio dire qualche cosa anch’io sul software libero in generale.
La dizione “software libero”, al di là delle sofisticate distinzioni che si possono fare tra software libero e software open source, allude a quei programmi per computer che si possono scaricare liberamente da Internet o avere da un amico senza andare incontro ad alcuna complicazione su diritti d’autore o limitazioni d’uso. Di più: del software libero sono disponibili anche i file sorgente, cioè i file che servono per produrre (codificare) i programmi che vengono utilizzati, in modo che chiunque conosca il linguaggio di programmazione con cui sono stati costruiti li possa modificare per renderli più funzionali, per arricchirli, ecc. Il tutto sotto la protezione della licenza GNU/GPL (Gnu Not Unix/General Public License) secondo la quale il software modificato può essere distribuito solo alle stesse condizioni, cioè che ne rimanga disponibile il sorgente a sua volta modificabile.
Si tratta generalmente di software distribuito gratuitamente, anche se Richard Stallman, il padre della filosofia del free software che noi traduciamo in software libero, avverte sempre che l’aggettivo free usato in questo contesto significa libero e non gratuito: avvertimento necessario per la lingua inglese, dove free significa entrambe le cose. A volte il distributore, che spesso è anche l’autore del software, invita l’utente che ritenga utile il programma a fare un’offerta: e sempre se la meriterebbe.
Ma, ci si chiede, chi è che lavora su questo software libero rinunciando a guadagnare per ciò che fa o affidandosi al buon cuore di chi lo utilizza?
Uno è sicuramente Linus Torvalds, che si è “divertito” – come dice lui – a creare il primo kernel del sistema operativo Linux (dal nome Linus del suo creatore e Unix, che è il sistema da cui è stato derivato) e, invece di brevettarlo, lo ha dato in pasto al mondo del software libero perché tutti ci lavorassero per farlo diventare migliore: ed è diventato, a parere non solo mio, il miglior sistema operativo che esista. Ben riepilogava Nelson Mandela lo spirito di Ubuntu, una delle più complete distribuzioni Linux sponsorizzata dal sudafricano Mark Shuttleworth, dicendo «Ubuntu non significa non pensare a se stessi; significa piuttosto porsi la domanda: voglio aiutare la comunità che mi sta intorno a migliorare?»
Peraltro una componente di divertimento la ritroviamo anche nel nome Debian della distribuzione Linux da cui deriva Ubuntu: Debian proviene da ian, nome del suo creatore Ian Murdock, preceduto dalle prime tre lettere del nome della sua fidanzata Debra.
C’è chi brevetta e c’è chi si diverte a diffondere conoscenza e utilità e che a roboanti marchi di fabbrica preferisce divertenti nomignoli.
Purtroppo il fatto che si tratti di qualche cosa che si può avere con poca spesa o addirittura gratis fa sì che non lo si trovi nei negozi e suscita diffidenza.
Per ovviare al primo inconveniente, che non lo si trovi nei negozi, mi sono proposto di fare molti articoli per descrivere e indicare come procurarsi software libero per fare moltissime cose.
Quanto alla diffidenza, essa è assolutamente ingiustificata: il software libero, infatti, a causa dei moti collaborativi che scatena, gode nel tempo di tali e tanti perfezionamenti da raggiungere in breve un’affidabilità totale, a volte insuperata.
La stragrande maggioranza dei programmi di software libero, almeno di quelli che mi propongo di presentare, è reperibile in versioni che girano su tutti i tre sistemi operativi che fanno funzionare i personal computer: Linux, Windows e Mac OS X.
Per chi volesse entrare completamente nel mondo del software libero sarebbe d’obbligo la scelta del sistema operativo Linux. Tra le tante distribuzioni esistenti, quelle che ritengo più semplici da installare e che hanno il non secondario vantaggio di essere fruibili completamente in lingua italiana sono Linux Ubuntu e Linux Mint, che ne è una derivata. Senza nulla togliere all’ottima SUSE Linux e, ovviamente, alla madre Debian, dalla quale è derivato Ubuntu.
A differenza di quanto avviene con i sistemi operativi Windows e OS X, che prima di cominciare l’installazione cancellano dal disco fisso del computer qualsiasi cosa, quando installiamo Linux ci viene innanzi tutto chiesto se vogliamo installarlo come unico sistema operativo oppure se preferiamo affiancarlo ad altri sistemi operativi che già abbiamo sul computer: la libertà del software libero comincia rispettando la libertà degli altri. All’accensione del computer ci verrà chiesto con quale sistema intendiamo lavorare. Ciò significa che potremmo tranquillamente installare Linux mantenendo il nostro Windows e, se usiamo Ubuntu, il nostro OS X.
Il vantaggio di entrare nel mondo Linux è quello di trovare installato sul computer un programma di gestione delle applicazioni che ci propone migliaia di programmi di software libero che, essendo collegati a Internet, possiamo scaricare ed installare con un click.
Chi non voglia fare il passo verso Linux non avrà comunque alcuna difficoltà a procurarsi i programmi e ad installarli: ovviamente con l’avvertenza di scegliere le versioni dei programmi adatte al proprio sistema operativo.
Viene da chiedersi come mai quando acquistiamo un computer non ci sia preinstallato il sistema Linux. La risposta è semplice: con il software libero non si fanno i soldi, con il software così detto commerciale che si aggrega attorno a mamma Microsoft si fanno i soldi. A parte il caso della Apple che fa i soldi non tanto con il software ma con una serie di prodotti di eccellenza che contengono anche il software (tra l’altro cugino stretto di Linux).

Software libero per scrivere

Una delle tante cose che il computer ci consente di fare in maniera ormai prossima alla perfezione è quella di produrre documenti, documenti di tutti i tipi: da semplici relazioni a complicati articoli scientifici pieni di formule matematiche, da pieghevoli illustrativi a fascicoli rilegabili, da spartiti musicali a libri pronti per essere stampati.
Si potrebbe pensare che tutto ciò richieda chissà quali macchine e chissà quali investimenti in software.
Non è così: basta un normalissimo computer di media potenza e basta installare alcuni software che possiamo scaricare gratuitamente da Internet.
E’ la magia del software libero: non sto parlando di scaricare gratuitamente software taroccato ma software originale rilasciato sotto licenza libera GNU GPL e prodotto da una comunità di programmatori liberi, che fanno questo lavoro per divertirsi e per aiutare gli altri.
Se qualcuno vuole approfondire la conoscenza della filosofia del software libero può consultare le voci “software libero”, “gnu gpl” e “linux” su Wikipedia.
Qui vorrei solo mettere a disposizione una mia rassegna di software liberi realizzati per produrre documenti, dai più semplici ai più impegnativi.
Si tratta di un file in formato PDF, scaricabile e stampabile, dove si trovano tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati, anche se spesso il loro ambiente nativo è Unix/Linux, sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

scrittura

 

Software libero per calcolare

Per una cosa che si chiama computer o, come potremmo tradurre nella nostra lingua, calcolatore il compito più naturale è quello di fare calcoli.
E bisogna riconoscere che, se istruito bene, il computer fa dei calcoli strabilianti: soprattutto li fa praticamente in tempo reale. Senza la velocità di calcolo del computer non sarebbe possibile fare alcune bellissime cose, come quella di navigare nello spazio.
E anche computer con potenza relativamente bassa possono fare grandi calcoli. Esiste addirittura una leggenda metropolitana che afferma come la potenza di calcolo utilizzata per condurre l’uomo sulla luna fosse quella di un Commodore 64, poco più che un computer giocattolo di qualche decennio fa: non è esattamente così, ma è pur vero che i personal computer che abbiamo oggi, addirittura i tablet o i telefonini detti smartphone, come i loro predecessori computer palmari, sono enormemente sovradimensionati con riguardo a quanto serve per fare calcoli.
La cosa più importante e delicata è il software, cioè l’insieme di istruzioni che diamo al computer perché faccia i calcoli che ci servono; insieme di istruzioni che vanno da come il computer deve leggere i dati di ingresso che gli vengono forniti, a quali elaborazioni ed algoritmi esso deve sottoporre quei dati e finalmente a come ci deve fornire i risultati di queste elaborazioni.
La delicatezza del software di calcolo sta nel fatto che, mentre altri tipi di software per scrivere, per disegnare, per creare suoni, ecc., se fatti male, o non girano del tutto o forniscono risultati visibilmente sbagliati o non accettabili, il software di calcolo può fornire risultati sbagliati che noi prendiamo per buoni, molto spesso non avendo modo di capire che sono sbagliati.
Se un computer ci dice che il risultato di 2 + 2 è 5 comprendiamo che il computer ha sbagliato perché sappiamo altrimenti il risultato, tanto che avremmo fatto a meno di disturbare il computer per ottenerlo. Ma se un computer ci dice che per estinguere un prestito di 1.000 euro con 12 rate mensili costanti posticipate al tasso del 2% annuo occorrono 12 rate mensili di 84,23 euro, o ci fidiamo o rifacciamo il conto con un altro computer e con un altro programma. Se poi otteniamo un risultato diverso vai a stabilire chi ha ragione.
Alcune disavventure generate utilizzando il linguaggio di programmazione C hanno per esempio indotto il Dipartimento della Difesa americano ad avviare lo sviluppo del linguaggio di programmazione Ada, che deriva dal C ma ne evita alcune trappole infernali e viene ancora oggi usato in molti contesti in cui il corretto funzionamento del software è critico, come sistemi di controllo di velivoli, del traffico aereo e software aerospaziale.
Il software libero offre ai matematici ed agli scienziati compilatori o interpreti per tutti i linguaggi di programmazione in modo da fornire la possibilità di ottenere dal computer qualsiasi genere di calcolo attraverso istruzioni dirette finalizzate alla soluzione dei più svariati tipi di problema.
Tutto senza trascurare l’offerta di software già predisposti per determinati tipi di calcolo, più agevoli da utilizzare in quanto non richiedono la conoscenza di linguaggi di programmazione.
Qui vorrei mettere a disposizione una mia rassegna di software liberi di quest’ultimo tipo, tutti stracollaudati e fornitori di risultati perfetti.
Si tratta di un file in formato PDF, scaricabile e stampabile, dove si trovano tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati, anche se spesso il loro ambiente nativo è Unix/Linux, sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

calcolo

Software libero per gestire dati

I francesi lo chiamano ordinateur: evidentemente riconoscono di più la sua capacità di immagazzinare e ordinare dati rispetto a quella di calcolare, come fanno gli anglosassoni, che lo chiamano computer o noi, che, almeno le poche volte che lo denominiamo usando la nostra lingua, lo chiamiamo calcolatore elettronico.
In effetti, se pensiamo all’uso che se ne fa in campo scientifico e pensiamo all’uso che se ne fa in campo amministrativo-contabile-commerciale, dobbiamo dire che nel primo caso abbiamo probabilmente l’applicazione più nobile del calcolo, che ci aiuta a capire e a risolvere problemi, ma nel secondo abbiamo sicuramente l’applicazione più massiccia della gestione di dati, che ci aiuta a tenere ordine nelle nostre cose.
Dobbiamo anche dire, riferendoci al mondo degli utilizzatori di personal computer, che questo strumento non ha praticamente limiti nell’eseguire calcoli ma deve lasciare il posto a qualche cosa d’altro quando si tratta di gestire grandi moli di dati. Dietro allo sportello Bancomat, a controllare in un paio di secondi il nostro codice segreto e a controllare che abbiamo disponibile ciò che vogliamo prelevare scorrendo un database di milioni di posizioni, non ci può certo essere soltanto un personal computer.
Anche nel campo della gestione dei dati, comunque, il personal computer può fare parecchio. Ovviamente con il software adatto.
Qui vorrei appunto mettere a disposizione una mia rassegna di software liberi adatti per creare e gestire basi di dati.
Si tratta di un file in formato PDF, scaricabile e stampabile, dove si trovano tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati sono disponibili per i sistemi operativi Linux, Windows e OSX.
Per scaricare il file clicca sul suo nome qui sotto.

gestione_dati

Software libero per comunicare

La storia della comunicazione cataloga tre rivoluzioni avvenute nel modo di comunicare tra di noi: la rivoluzione chirografica (quella avvenuta quando abbiamo cominciato a scrivere sui più svariati materiali, quattromila anni prima di Cristo), la rivoluzione gutenberghiana (quella avvenuta quando abbiamo cominciato a stampare su carta, verso la metà del quindicesimo secolo) e la rivoluzione elettrica/elettronica (quella legata a telegrafo, telefono, radio e televisione, avviatasi a metà del diciannovesimo secolo con l’invenzione del telegrafo ed esplosa a metà ventesimo secolo con la televisione).
Dalla metà dell’ultimo decennio del ventesimo secolo siamo in piena rivoluzione digitale e la storia non ne parla ancora.
Ormai qualsiasi cosa vogliamo trasferire da una conoscenza all’altra, si tratti di un testo, di un suono, di una immagine, di un filmato, può essere trasformata in un segnale digitale (codificata in una serie di digit 0 o 1) che viene trasmesso e, alla ricezione, viene decodificato e reso quello che era prima della codifica. La trasmisssione, praticamente in tempo reale anche a distanze antipodali, avviene grazie ad una fittissima rete interconnessa a ragnatela che avvolge il globo su cui viviamo: Internet.
Codifica e decodifica avvengono utilizzando un computer che, collegato alla rete, funge da apparato trasmittente e da apparato ricevente.
Fino alla diffusione a prezzi ragionevoli di personal computer queste comunicazioni in rete erano riservate ad uffici governativi, centri di ricerca e università.
Con la diffusione dei personal computer è diventato un fenomeno abbastanza di massa.
Con la diffusione di quei piccoli computer che chiamiamo tablet e di quei minuscoli computer che chiamiamo smartphone è diventato un delirio.
C’è chi vede solo gli aspetti negativi di questo delirio. Io penso che l’imbecillità, se c’è, si diffonde con le tavolette, con gli incunaboli, con i libri, con la radio e con la televisione: certo è che, più aumentano i potenziali diffusori e più sono accessibili i mezzi di diffusione, più se ne diffonde.
Sicuramente sono tanti anche gli aspetti positivi. E credo siano in misura superiore di quelli negativi e che, a differenza di questi ultimi, soprattutto legati a mode passeggere, siano più di sostanza e destinati a durare nel tempo.

Internet è nata ed ha avuto il primo utilizzo in campo pubblico: la sua struttura proviene da ARPANET, che era una rete di computer studiata e realizzata nel 1969 dal Dipartimento della Difesa degli Stati Uniti, il linguaggio a marcatori per ipertesti html usato per la formattazione e l’impaginazione di documenti ipertestuali per il web è stato sviluppato verso la fine degli anni ottanta del ventesimo secolo presso il CERN di Ginevra assieme al protocollo http dedicato al trasferimento di documenti in tale formato, il primo grande utilizzo della rete venne sviluppato per i collegamenti tra centri di ricerca e università.
Tutto ciò ha fatto sì che, al momento della diffusione di massa di questo nuovo modo di comunicare, esistessero già gli strumenti software di base sviluppati al di fuori da logiche commerciali e la conseguenza è che i software che hanno a che fare con Internet ce li possiamo procurare gratuitamente.
Mai come in questo caso, però, vi può essere confusione tra software libero e software gratuito. Come ricorda sempre Richard Stallman, il guru del software libero, free, riferito al software, significa libero e non gratuito e, pertanto vale anche dire che gratuito non significa libero.
Ad evitare che Richard Stallmann, se mai leggerà questo documento, mi tiri le orecchie – come è abituato a fare – mi limiterò a segnalare solo applicazioni veramente di software libero, cioè rilasciate secondo la licenza GNU/GPL.
Le applicazioni sono segnalate nell’allegato file in formato PDF, scaricabile e stampabile, che contiene tutte le indicazioni per capire a cosa serve ciascun programma presentato, come possiamo procurarcelo e com’è il suo funzionamento di base.
I software presentati, anche se spesso il loro ambiente nativo è Unix/Linux, sono disponibili anche per i sistemi operativi Windows e OS X.
Per scaricare il file clicca sul suo nome qui sotto.

comunicazione