Non dimentichiamoci del C

In questo blog ho pubblicato una serie di manualetti per acquisire le basi di alcuni linguaggi di programmazione che ritengo adatti per principianti dilettanti (Freebasic, Freepascal, Golang, Javascript, Kotlin, Newlisp, Python, Julia, Tcl/Tk).
Non ho fatto altrettanto per i linguaggi C/C++ e Java innnanzi tutto perché li classifico tra i linguaggi di più difficile apprendimento ed anche perché su questi linguaggi esiste un’ampia letteratura in libreria e in rete, dove abbondano anche tutorial ed esempi di programmazione.
Per quanto riguarda il linguaggio Java, nell’allegato in formato PDF “java_android” al mio articolo “Importante riconoscimento per Open JDK” dell’aprile 2016, lasciando alla letteratura esistente l’apprendimento del linguaggio, ho illustrato alcuni strumenti di software libero che ne facilitano l’utilizzo anche per la realizzazione di progetti importanti.
Per quanto riguarda il linguaggio C/C++ faccio altrettanto con il manualetto allegato, come sempre liberamente scaricabile, stampabile e distribuibile.

c_c++

Un nuovo linguaggio per la data science

Rispettando la realtà dei fatti, ogniqualvolta ho parlato di data science in questo blog il linguaggio di riferimento è sempre stato Python, con l’unica eccezione di quando ho parlato di Knime, uno strumento programmato in linguaggio Java, che consente di fare analisi di dati senza scrivere codice.
Da qualche anno è tuttavia insistente la presenza di un altro linguaggio open source, arricchitosi in poco tempo di funzionalità sempre più sofisticate, considerato ormai da molti come un forte concorrente di Python nel campo dell’analisi dei dati.
Si tratta del linguaggio Julia, nato alcuni anni fa al Massachusetts Institute of Technology (MIT).
Visto che la documentazione in lingua italiana su questo linguaggio è praticamente inesistente, e che quella esistente, oltre che essere in lingua inglese, molto spesso non è alla portata di dilettante, penso di fare cosa utile proponendo l’allegato manualetto per una conoscenza di base del linguaggio.
Al solito, il documento è liberamente scaricabile, stampabile e distribuibile.

julia

Software libero per fotografi

In questo mio blog ho presentato due gioielli del software libero sull’argomento fotografia.
Il primo, ffDiaporama, in un manualetto allegato all’articolo “ffDiaporama S.O.S.” del giugno 2017, riguarda un software con il quale possiamo utilizzare le nostre fotografie per costruire veri e propri filmati.
L’altro, digiKam, in un manualetto allegato all’articolo “digiKam, il massimo” del febbraio 2018, riguarda un software per la catalogazione di un archivio fotografico (ma non solo).
In entrambi i casi si tratta di software destinati ad utilizzare fotografie già prodotte e finite.
Esistono altri software destinati a produrre o a manipolare le fotografie prima che diventino cosa finita.
A questi dedico il manualetto allegato, liberamente scaricabile, stampabile e distribuibile.

foto_editing

Orange: data science con Python senza scrivere codice

Nell’aprile 2019, con il mio articolo “Software libero per data scientists” e l’allegato PDF “python_anaconda”, ho presentato l’armamentario che ci offre il linguaggio di programmazione Python per il data mining e la data science.
Armamentario fatto innanzi tutto del linguaggio Python e di una serie di librerie che lo arricchiscono per sviluppare script destinati a lavorare con masse di dati al fine di illustrarli, interpretarli e trarne conoscenza. Cose per fare le quali occorre saper programmare, avendo una profonda conoscenza del linguaggio e delle librerie che si utilizzano.
Nel giugno 2019, con il mio articolo “KNIME: l’alternativa a Python per data scientists” e l’allegato PDF “knime”, ho presentato un gioiello del software libero, costruito con il linguaggio di programmazione Java, attraverso il quale possiamo fare per lo più le stesse cose senza scrivere una riga di codice: semplicemente utilizzando visualmente strumenti preconfezionati e contraddistinti da icone, collegandoli tra loro con il mouse.
Con KNIME, ferma la necessità di avere la preparazione matematico-statistica per sapere ciò che si vuole, per farlo non occorre anche conoscere il linguaggio di programmazione per ottenere dal computer ciò che vogliamo ma semplicemente occorre conoscere gli strumenti preconfezionati che il computer ci mette a disposizione e saper scegliere quelli adatti.
Anche nel mondo Python esiste una cosa simile. Si tratta di una libreria, attualmente denominata Orange3, sviluppata al fine di facilitare l’utilizzo delle varie librerie Python per il data mining, che ci offre anche la possibilità di essere utilizzata visualmente con icone e mouse.
Come libreria utilizzabile per scrivere codice alternativo ad altro codice ritengo abbia scarsa utilità ed è forse per questo che non si trova un testo che ne parli, ma non mi sembra giusto ignorare la grande utilità ricollegabile alla possibilità di essere utilizzata visualmente.
Dal momento che nessuno ne parla e che la sola documentazione è quella disponibile sul sito internet, non sempre tecnicamente di agevole lettura e in lingua inglese, ho predisposto l’allegato manualetto illustrativo che non ha altra ambizione se non quella di far vedere di che cosa si tratta con qualche esempio.
Il documento è liberamente scaricabile, stampabile e distribuibile.

orange

Pascal per principianti

In uno dei primi articoli all’apertura di questo blog dedicato al software libero, nel maggio 2015, ho festeggiato il rilascio della versione 1.4 di Lazarus, un software libero per scrivere e compilare programmi scritti in linguaggio Free Pascal, anche dotati di interfaccia grafica, interpretando l’evento come una resurrezione del vecchio linguaggio Pascal nel mondo del software libero.
Da allora, sia il Free Pascal sia Lazarus hanno avuto numerosi rilasci migliorativi, gli ultimi in giugno e in luglio di quest’anno 2020, a dimostrazione del fatto che si tratta di una coppia di strumenti che hanno tuttora amatori, nonostante il linguaggio Pascal sia poco utilizzato per la produzione di software commerciale a livello professionale.
Dal momento che si tratta di un linguaggio inventato per insegnare a programmare, pertanto particolarmente adatto a neofiti, ho pensato che ai frequentatori di questo blog farà piacere disporre di un manualetto del tipo di quelli che ho proposto per altri linguaggi.
Il documento allegato è, come sempre, liberamente scaricabile, stampabile e distribuibile.

freepascal

Python per principianti

In questo blog ho parlato spesso del linguaggio Python.
Presentando vari argomenti (grafica con Python, moduli Python per data scientists, calcolo simbolico con Python, Python su Android, ecc.) ho sempre dato per scontato che il lettore conoscesse le basi del linguaggio.
Peraltro sul linguaggio Python esiste una nutrita serie di manuali e manualetti in lingua italiana, anche alla portata di dilettante, ed ho sempre ritenuto pleonastico proporre a mia volta uno di quei manualetti che ho variamente proposto su altri linguaggi di programmazione aventi documentazione meno abbondante e meno accessibile.
Oggi, tuttavia, avverto questa come una lacuna ingiustificabile nei confronti dei dilettanti che seguono il mio blog e intendo rimediare proponendo l’allegato manualetto sul linguaggio Python per principianti.
In questo modo, se altri si aggiungeranno a coloro che, numerosissimi, hanno manifestato interesse agli argomenti Python avanzati che si trovano sul blog potranno ora trovare servizio completo.
Come sempre, il documento è liberamente scaricabile, stampabile e distribuibile.

python

Nel mondo di JavaScript

Negli oltre cinque anni di vita di questo mio blog dedicato al software libero non ho mai parlato di JavaScript, nonostante si tratti di uno dei più fulgidi esempi di software libero.
Il motivo è che si tratta di un argomento non semplice da trattare con i dilettanti ai quali, da dilettante, mi rivolgo.
A fronte di una relativa facilità di apprendimento del linguaggio JavaScript in quanto tale, infatti, proprio alla portata di dilettante, sono i contesti nei quali si utilizza il linguaggio che non sono da dilettante, quanto meno da dilettante alle prime armi.
Tanto è vero che se cerchiamo di capire cos’è JavaScript navigando in rete ci imbattiamo facilmente in documentazione che, mischiando linguaggio e contesti, spesso dando per scontati concetti di contesto che il dilettante ignora, prospetta situazioni che appaiono più difficili di quanto in realtà non siano.
Per rimediare alla pecca di non aver mai parlato di JavaScript e con l’ambizione di contribuire a fare chiarezza su dove stiano le vere difficoltà, ho ritenuto di proporre l’allegato manualetto in formato PDF sull’argomento.
Come sempre, il documento è liberamente scaricabile, stampabile e distribuibile.

javascript

Un sequencer MIDI per principianti

Il mese scorso, parlando di soundfonts, ho dovuto accennare a cosa sia il MIDI, visto che i soundfonts servono per tradurre in suoni le istruzioni contenute in un file MIDI.
Può darsi che qualcuno si sia incuriosito e desideri approfondire la materia, per arrivare lui stesso a produrre un file MIDI.
Su questo blog ho presentato vari strumenti atti allo scopo, strumenti quasi sempre aventi finalità più complesse, come la scrittura di partiture musicali o l’arrangiamento musicale. In proposito rimando all’allegato al mio articolo “Software libero per fare musica” del maggio 2015, archiviato in “Software libero”.
Una sola volta ho parlato di un software che, per chi usa il sistema operativo Windows, ha funzione limitata a quella di sequencer MIDI, peraltro con un funzionamento non del tutto soddisfacente: è avvenuto nel dicembre 2015 con l’allegato all’articolo “Rosegarden come sequencer MIDI”, archiviato in “Computer music”.
In ogni caso si tratta di strumenti concepiti non con la finalità unica e diretta di produrre un file MIDI ma per fare anche altro e si presentano, pertanto, con una varietà di funzioni che possono spaventare il principiante.
Proprio ai principianti – e penso anche a ragazzi alle prime armi con lo studio della musica – suggerisco allora un piccolo software, libero e disponibile per tutti i sistemi operativi, che serve solo per produrre file MIDI e ci consente di farlo in modo estremamente semplice, grazie ad un’interfaccia grafica che guida letteralmente la mano.
Si chiama Aria Maestosa e lo presento nell’allegato manualetto in formato PDF.
Il documento è liberamente scaricabile, stampabile e distribuibile.

aria_maestosa

 

Far suonare meglio Windows con i soundfonts

Il sistema operativo Windows ha tanti difetti ma, per chi voglia sentire la riproduzione di un file MIDI o di un file karaoke, che è poi spesso anche lui un file MIDI arricchito del testo della canzone, ha il pregio di avere già tutto predisposto perché l’utente possa raggiungere lo scopo o utilizzando Windows Media Player o, se si tratta di file karaoke, semplicemente procurandosi un software come vanBasco.
Dal momento che il file MIDI non contiene suono ma è un file di testo contenente semplicemente istruzioni per produrre suoni, la scheda audio del computer riesce ad eseguire queste istruzioni grazie al sintetizzatore MIDI predefinito Microsoft GS Wavetable Synth, incluso nel sistema operativo.
La Wavetable è un elenco di forme d’onda combinando variamente le quali si riescono a produrre suoni ad imitazione di quelli dei vari strumenti musicali che il file MIDI richiede siano usati.
Il risultato, soprattutto secondo i puristi del suono, è disastroso: alcuni dicono che quando suona un oboe non si riesce a capire se si tratti di una trombetta del lattaio o di un kazoo.
A parte le esagerazioni, occorre riconoscere che, appena si esce dall’ambito della musica frastuono dove qualsiasi rumore va bene e si entra nell’ambito del suono vero e proprio, anche un orecchio non troppo esigente avverte che c’è qualche cosa che non va.
Sicché anche il pregio diventa un difetto.
Un rimedio è quello di collegare al computer strumenti hardware in grado di produrre suoni migliori, più fedeli al suono degli strumenti veri e propri: esistono moduli sonori, detti anche expander, di varia marca (Roland, Yamaha, Ketron, per citare le più famose) e per varie borse (da poche a tante centinaia di euro).
Per i dilettanti meno esigenti e anche per i professionisti che hanno meno da spendere per queste cose segnalo un’altra strada che prescinde dall’hardware e che attinge in massima parte al mondo del software libero: quella dei soundfont.
Dedico all’argomento l’allegato manualetto in formato PDF, liberamente scaricabile, stampabile e distribuibile.

soundfonts_in_Windows

Software libero per l’insegnamento della matematica

Qualche frequentatore di questo mio blog mi ha invitato a fare una rassegna di software disponibili per supportare l’insegnamento della matematica, con particolare riferimento alle categorie richieste nel programma ministeriale per la classe di concorso A-28 di Matematica e Scienze.
Si tratta di software di geometria dinamica per la visualizzazione e la sperimentazione geometrica, software di calcolo simbolico, algoritmi e software per la soluzione di sistemi lineari e software per la rappresentazione grafica delle funzioni.
Accolgo con favore l’invito e propongo l’allegato documento in formato PDF nel quale metto di disposizione quanto ho nel tempo sperimentato in una materia che mi ha sempre appassionato ma alla quale non mi sono mai dedicato professionalmente, se non di striscio.
Chiedo pertanto venia per qualche lacuna o improprietà sul piano scientifico.
Il documento è liberamente scaricabile, stampabile e distribuibile.

software_scienze_matematiche