Al via il corso di formazione per non vedenti e ipovedenti sul linguaggio di Programmazione Java e Framework Spring

Il pensiero ricorrente di offrire ad altre persone, diversamente abili come me, la possibilità di poter pensare in grande, di poter avere un lavoro dignitoso, da smanettoni, nel mondo IT.
Io che nel diventare non vedente ho creduto di perdere la mia professionalità, pensavo di non poter più fare il lavoro che amavo tanto, il programmatore. Io che nel ricostruire la mia formazione, sono riuscito, da solo, a rimettermi in pista, in discussione, in circolo. L’ostacolo più grande è stato proprio quel “da solo”, dato che nessuno era in grado di darmi una mano, perchè nessuno conosceva così bene la tecnologia associata alla disabilità visiva. E se parlavi di un non vedente che programmava, beh, in pochi ti davano credito.
Ecco alcune delle motivazioni che mi hanno portato a promuovere un corso di formazione gratuito, sulla programmazione, per persone non vedenti e ipovedenti. Ho pensato subito che potesse essere una grande idea. Daltronde non “esisteva” nulla di tutto ciò in circolazione ed erano diverse le persone che già mi avevano manifestato interesse.
E così il 26 Settembre si parte per questo lungo viaggio che terminerà a Giugno 2020, dopo 20 lezioni online, altrettanti colloqui individuali e tante esercitazioni pratiche. Il tutto in FAD sfruttando a pieno i mezzi di comunicazione online più diffusi, alla portata di tutti i partecipanti, iscritti da tutta Italia.
L’obiettivo, ambizioso, è quello di dare la possibilità di inserirsi nel mondo del lavoro, con una professione, assolutamente alla portata di un disabile visivo, “quella dell’analista programmatore di software”.
La particolarità di questo percorso è di essere orientato all’accessibilità delle postazioni di lavoro e dei software necessari allo sviluppo software, con cui i partecipanti di questo percorso, potranno lavorare senza barriere.
Grazie alla mia esperienza nel mondo IT, ai miei esperimenti di accessibilità durati anni, allo studio individuale, penso di capirne abbastanza per poter finalmente aiutare anche altri ad inseguire il loro sogno.
Ringrazio con enorme piacere l’ENGIM (Ente Nazionale Giuseppini del Murialdo) Artigianelli che mi affianca in questa impresa e che darà a queste persone la possibilità di avere un attestato di frequenza per il corso svolto. ENGIM ha subito creduto in questo progetto, riconoscendone le potenzialità umane, inclusive e tecnologiche.
Inoltre, grazie alla consulenza hardware/software degli amici della R.O. SRl, avremo a disposizione un server dedicato TeamTalk per le lezioni online, contributo fondamentale grazie al quale il corso acquista ulteriore professionalità.

Dettagli del percorso formativo

  • titolo: Linguaggio di Programmazione Java e Framework Spring;
  • descrizione del corso: Il percorso formativo ha lo scopo di fornire ai partecipanti le nozioni dei fondamenti della programmazione orientata agli oggetti attraverso l’introduzione del linguaggio di programmazione Java nonchè l’utilizzo del framework Spring per lo sviluppo di applicazioni in Java. Durante il corso si svilupperanno esercizi pratici al fine di poter apprendere correttamente l’utilizzo del linguaggio. Al termine del percorso formativo il corsista avrà acquisito competenze fondamentali nello sviluppo di basilari applicazioni software web basate sul linguaggio di programmazione Java, che è attualmente fra i più richiesti dal mondo del lavoro IT. Il framework Spring si utilizzerà in conbinazione con Maven;
  • durata: 60 ore;
  • costo: gratuito;
  • modalità svolgimento: completamente online (FAD) mediante l’utilizzo di TeamTalk 5 Classic accessibile;
  • tipologia attestato: attestato di frequenza

Anche questa iniziativa si svolgerà sotto il patrocinio della’associazione “i sogni di nonna marisa onlus”, vicina alle tematiche sociali e inclusive che caratterizzano questa opportunità formativa.
Per info e contatti: Alessandro Albano – cell. 3492449623
Stay tuned..

Lo pseudocodice per la scrittura di algoritmi: un metodo efficace anche nella didattica per le disabilità visive

Oggi vi parlo di algoritmi e pseudocodice, in un ottica un po’ diversa dal solito. Ho conosciuto questi termini durante gli studi tecnici come perito informatico, capendone le potenzialità come utente ipovedente. Ne riconosco l’efficacia ancora oggi da non vedente e rilancio dichiarando che per una persona con disabilità visiva, la tecnica della scrittura di pseudocodice è assolutamente efficace, rappresentando comunque una metodologia usata spesso anche da sviluppatori normodotati. Quindi non è un metodo esclusivo, ma una tecnica nata per tutti che nello specifico ci è molto utile.

Una definizione di algoritmo

Wikipedia ci fornisce una definizione di algoritmo chiara e concisa: “Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi elementari, chiari e non ambigui.”. Cosa aggiungere di altro?
Nel campo informatico e in particolare nel mondo della programmazione, la definizione di algoritmo ci è utile per la risoluzione di varie tipologie di problemi. Infatti, i passi necessari alla risoluzione logica di un dato problema, possono essere convertiti in una sequenza di istruzioni elementari, ordinate e finite.
Successivamente, tali istruzioni, saranno convertite utilizzando la sintassi del linguaggio di programmazione scelto in fase di progettazione.

Un esempio preso dalla vita reale

Potrei proporvi un esempio che appartiene strettamente al mondo della matematica, ma preferisco parlarvi di qualcosa di manuale che fa parte, quasi certamente, della nostra quotidianità. Infatti, ogni giorno, quando compiamo azioni o attività, inconsciamente, utilizziamo degli algoritmi per portarle a termine, tramite una metodologia a noi nota, quella secondo noi più adatta per raggiungere il risultato finale.
Avete mai pensato ai passi necessari e ordinati per preparare una tazza di caffè con una moka?
Seppur con delle piccole variazioni, potremmo ipotizzare i seguenti passi:

  1. prendo la moka;
  2. la svito ;
  3. lavo la moka sotto l’acqua corrente;
  4. riempio il serbatoio dell’acqua in base a quanto voglio intenso il caffè;
  5. inserisco il filtro che conterrà il caffè;
  6. prendo il barattolo del caffè macinato;
  7. con un cucchiaino, riempio il filtro tanto quanto basta per avere un caffè più o meno forte;
  8. avvito la moka;
  9. ripongo la moka chiusa sul fornello ancora spento;
  10. accendo il fuoco e regolo la fiamma;
  11. attendo che il caffè sia pronto;
  12. spengo il fuoco;
  13. prendo una tazza;
  14. verso il caffè nella tazza;
  15. ripongo la moka.

Se ci siamo chiesti il motivo per cui sappiamo preparare un caffè, una risposta possibile è che l’esperienza nel prepararlo, magari ogni mattina per colazione, ci ha fatto migliorare nei passi necessari, moderando la quantità di caffè, lo prepariamo per soddisfare meglio i nostri gusti, mettendo più o meno acqua, ne gestiamo l’intensità. Naturalmente, il nostro risultato finale è il caffè stesso, del quale sappiamo indicare un indice di gradimento ed in base ad esso, la prossima volta, cercheremo di migliorarlo.
Ci capiterà spesso di avere definito una soluzione che crediamo ottimale, per poi accorgerci che ciò che avevamo dedotto era assolutamente migliorabile. Il bello è che potremo migliorare il nostro algoritmo, rendendolo più funzionale, questa prende il nome di fase di ottimizzazione.

Lo pseudocodice

Lo pseudocodice (o pseudocodifica) è una modalità testuale per la rappresentazione di un algoritmo. Tale linguaggio intermedio, non rispetta degli standard definiti da enti preposti e rappresenta il passo precedente alla scrittura vera e propria delle istruzioni in un linguaggio macchina. Anche lo pseudocodice, come i linguaggi veri e propri, deve rispettare una sintassi e delle regole che proveremo a definire.
Quando si raggiunge una certa esperienza nel campo della programmazione, lo pseudocodice torna utile per prendere appunti sulla logica che dovrà avere una certa porzione di codice, è un modo di scrivere universale, chiaro e utile anche ad altri sviluppatori con cui si condivide il lavoro.

Un primo semplice esempio

Senza darvi altre indicazioni teoriche, proviamo a scrivere l’algoritmo che determina se un numero è pari o dispari, tramite il seguente pseudocodice:

  1. INIZIO
  2. Scrivi: “Inserisci un numero naturale n”
  3. Leggi n dall’utente
  4. Se n%2 è = 0 (se il resto della divisione per 2 è 0) ALLORA:
    1. Scrivi: “Il numero è pari”
  5. Altrimenti:
    1. Scrivi: “Il numero è dispari”
  6. FINE SE
  7. FINE

Prestate attenzione al comando “LEGGI n”, infatti esso introduce un concetto fondamentale, quello di variabile. L’elemento n è un contenitore di un certo dato, tale contenitore rimane immutato fino a che non diamo un comando che ne alteri il contenuto. L’abbiamo chiamato n, ma lo potevamo anche chiamare diversamente, ad esempio numero o x, siamo noi a decidere questi nomi.
Come potete vedere, questo linguaggio è più rigoroso rispetto a quello utilizzato per l’algoritmo per la preparazione del caffè. Vengono di certo rispettate delle regole e viene utilizzata una specifica sintassi.
Questa metodologia testuale,è assolutamente accessibile ed utilizzabile da non vedenti e ipovedenti. Si integra in modo ottimale con il lettore di schermo,perchè la sintassi la si può scrivere in un qualsiasi editor di testo e non presenta alcun riferimento grafico.
L’unico passaggio necessario richiesto, è quello di pensare a step, quando si affronta la risoluzione di un problema. Molti di noi già lo fa, senza rendersene conto.
Posso suggerire di iniziare con l’aprire il Blocco Note o un qualsiasi editor di testo e iniziare a elencare i passi necessari alla risoluzione del dato problema. Scriveteli in un linguaggio non formale, ma descrittivo.
Successivamente, accertatevi che gli step siano ordinati in senso logico e non preoccupatevi di eventuali step ripetuti, infatti vedremo come “riciclare” degli step già definiti, in modo da normalizzare il flusso del nostro algoritmo.
Se sono invece presenti passaggi che contengono più operazioni, bisogna cercare di separarli, creando così più step, in modo che sia più semplice convertirli in linguaggio macchina.
Fatto ciò, si può passare alla fase di conversione nel linguaggio di pseudocodifica e solo successivamente convertiremo il tutto nel linguaggio di programmazione scelto.

Definiamo un nostro standard

Nel definire un nostro standard, dobbiamo sempre tenere conto delle istruzioni che un linguaggio di programmazione ci mette a disposizione. Non dobbiamo inoltre dimenticare che un algoritmo, rappresentato tramite lo pseudocodice, dovrebbe poter essere tradotto in qualsiasi linguaggio di programmazione e non solo in quello che vogliamo utilizzare.
Definiamo il seguente standard e utilizziamolo per i nostri algoritmi:

  • INIZIO : punto di inizio del nostro algoritmo;
  • FINE : termine del nostro algoritmo;
  • SCRIVI “stringa” o variabile : output, leggibile dall’utente;
  • LEGGI variabile : input inserito dall’utente;
  • VARIABILE = valore, espressione o procedura : assegna un valore ad una data variabile. Tale valore può essere fisso, come un numero o una stringa, oppure può derivare da un’espressione o dall’esecuzione di una procedura;
  • + : operatore aritmetico di somma;
  • – : operatore aritmetico di sottrazione;
  • * : operatore aritmetico di prodotto;
  • / : operatore aritmetico di divisione;
  • % : operatore per avere il modulo tra due numeri, cioè il resto della divisione tra i due numeri;
  • = : operatore aritmetico usato per assegnare un risultato o un valore;
  • ! : simbolo usato per negare un valore o condizione. Da scrivere prima del valore, condizione o espressione da negare;
  • != : operatore utilizzato per indicare che un valore o condizione è diversa da qualcos’altro;
  • == : operatore usato nelle condizioni per indicare una uguaglianza in un confronto;
  • < o > : simbolo di minore e maggiore, usati per confrontare i valori nelle condizioni dei vari costrutti condizionali;
  • e : usata come una congiunzione, si utilizza per unire più condizioni, indicando così che devono essere entrambe soddisfatte per validare la condizione;
  • o : utilizzata come oppure, indica che tra due condizioni, basta che ne sia valida una per validare il confronto;
  • Se (condizione) ALLORA istruzione1 ALTRIMENTI istruzione2 FINE SE : questa sintassi rappresenta un controllo condizionale, di certo uno dei più utilizzati per definire la logica di un algoritmo. Questo tipo di istruzioni possono essere annidate per aumentare la complessità dei controlli sulle condizioni. Ad esempio, si può inserire un ulteriore SE all’interno del ramo ALTRIMENTI, creando così una serie annidata di controlli condizionali;
  • FINCHÉ (condizione) RIPETI istruzioni FINE FINCHÉ : fino a che una data condizione è verificata, ripeti le istruzioni. Questa sintassi definisce ciò che è chiamato ciclo condizionale;
  • RIPETI istruzioni FINCHÉ (condizione) FINE RIPETI : ripeti le istruzioni fino a che una data condizione è verificata. Anche questa sintassi esprime il concetto di ciclo condizionale, con la differenza che le istruzioni vengono eseguite almeno una volta per poi ripetersi se la condizione è ancora soddisfatta;
  • RICHIAMA nomeprocedura : invoca una data procedura, richiamandola per nome, utile anche per il riuso di porzioni di codice ripetute.

Queste sono le istruzioni principali. Non dimentichiamo che nello scrivere la nostra pseudocodifica, è consigliabile anteporre ad ogni istruzione un numero che ne indichi l’ordinamento, proprio come descritto nell’esempio per l’individuazione dei numeri pari e dispari. Numerare le istruzioni ci serve per capire la struttura dell’algoritmo, soprattutto quando ci troviamo ad utilizzare la sintassi per i costrutti condizionali o i cicli. In alternativa alla numerazione, possiamo incolonnare la pseudocodifica, utilizzando i rientri di riga, tecnica che prende il nome di indentazione del codice, solitamente si utilizzano le tabulazioni, tasto “tab”. Così sarà semplice ed intuitivo incolonnare i blocchi di istruzione sotto al costrutto di appartenenza.
Potremmo definire una pseudocodifica più dettagliata e rigorosa, ma secondo me, con questi costrutti di base, possiamo scrivere con chiarezza tutti gli algoritmi di cui avremo bisogno.
Se capiamo questo approccio, avremo ben chiara la logica dell’algoritmo e tradurre il tutto in un linguaggio macchina sarà semplice.
Questa metodologia è anche molto comoda per testare in modo rapido la logica del nostro flusso di istruzioni. Infatti possiamo prevedere diversi casi in cui cambiando i valori dati in ingresso avremo diversi risultati finali che dovranno rispettare le condizioni del nostro algoritmo. Se questi test dovessero fallire, sarebbe inutile concentrarsi nello scrivere il codice macchina, varrebbe la pena prima dedicarsi alla stesura di uno pseudocodice funzionante.

In conclusione

Abbiamo visto cosa si intende per algoritmo e come lo si converte in uno pseudocodice ben definito. Il passo successivo che rimane da compiere è la traduzione dello stesso in un linguaggio di programmazione. Non ho inventato io questi metodi, ho semplicemente preso spunto dal mio vissuto e penso che questa metodologia, applicata alla disabilità visiva, possa aiutare per ottenere ottimi risultati nella risoluzione di qualsiasi tipo di problema. Molto di ciò che le persone normodotate fanno con la vista, noi lo dobbiamo fare con la mente, dobbiamo avere dei pensieri ben ordinati, ridotti ai minimi termini, la logica del flusso di un listato di codice deve essere disegnata nella nostra mente ed io utilizzo questo metodo semplice e potente.

Materiale e esercizi proposti

  • provare a riscrivere l’algoritmo della moka con la pseudocodifica. Immaginatelo come un flusso in cui vengono date delle istruzioni all’utente tramite il comando “SCRIVI” e vengono inseriti dall’utente ingredienti tramite “LEGGI”;
  • scrivere una seconda versione dell’algoritmo della moka, implementando delle situazioni particolari. Ad esempio l’assenza di caffè, senza il quale non potremmo preparare la bevanda. In questo modo potrete utilizzare il costrutto condizionale “SE …”. Potete inventare voi delle nuove situazioni da gestire e controllare;
  • progettare una calcolatrice per effettuare le 4 operazioni fondamentali (addizione, sottrazione, moltiplicazione e divisione). È un progetto apparentemente semplice, ma presenta delle piccole insidie dovute alle proprietà fondamentali di queste potenti operazioni. Supponiamo che i numeri inseriti in input siano interi positivi >= 0 (l’insieme dei numeri naturali). Progettate voi liberamente la logica, le fasi di input e output e tutti i controlli da effettuare sui numeri inseriti e sulla fattibilità delle operazioni;
  • Implementazione di algoritmi materiale online libero su Wiki Books: una volta impratichiti nell’analisi di un problema e capiti i concetti per la stesura di uno pseudocodice, potrete sbizzarrirvi nell’analizzare gli algoritmi proposti, progettandoli e scrivendoli a modo vostro e confrontando le soluzioni proposte. Consiglio di iniziare con l’algoritmo per l’elevazione a potenza e con l’algoritmo di Euclide. Man mano che si andrà avanti con gli studi, si riusciranno a risolvere anche quelli più complessi.

Guida introduttiva all’IDE Eclipse, per programmare con Java in modo accessibile.

Inizio oggi una serie di articoli che introducono alla possibilità di svolgere la professione del programmatore da parte di sviluppatori affetti da disabilità visiva (non vedenti ed ipovedenti). L’obiettivo è quello di rendere consapevoli le aziende del fatto che questa è una professione possibile per i disabili visivi, ma allo stesso tempo sono gli stessi ipovedenti o non vedenti che devono sapere che possono diventare sviluppatori professionisti, perché oggi gli strumenti ci sono. Nello specifico farò riferimento al sistema operativo Windows 10 a 64 bit, ampiamente diffuso, ma con dei piccoli accorgimenti, questa guida, è adatta anche a sistemi più vecchi o a 32 bit, oltre che per i sistemi Mac e Linux. Inoltre, a fine articolo, ho inserito due sezioni molto importanti:

  • download proposti: sezione contenente l’elenco dei link per scaricare tutti i software di cui si parla in questa guida;
  • materiale proposto: una selezione di materiale utile per l’apprendimento delle basi della programmazione e del linguaggio java.

Nota bene: nel testo uso le doppie virgolette per evidenziare termini importanti, comandi o nomi file, esse non vanno mai riportate nello svolgimento degli esercizi.

I tool per scrivere codice

Oggi parlerò dell’IDE Eclipse, che per chi non lo sapesse è un software libero per la scrittura di codice in diversi linguaggi di programmazione, in particolare vi parlerò del linguaggio Java, ma molto di quello che scriverò sarà applicabile anche ad altri linguaggi come Python o C.
Premetto che non è indispensabile un IDE per scrivere codice, potremmo farlo anche con un semplice editor di testo come il Blocco Note (notepad di Windows) o ancora meglio se con il più professionale e accessibile Notepad++, ma un IDE, che in parole semplici è un ambiente di sviluppo completo, ci facilita la vita offrendoci funzionalità avanzate che ci aiutano nella scrittura e nel debug del codice.
In questo articolo vedremo entrambe le modalità di programmazione, ma prima di cominciare ad utilizzare questi tool dobbiamo introdurre alcuni concetti essenziali.

Il lettore di schermo

Da non vedenti, per usare un pc con Windows, abbiamo bisogno di un software chiamato lettore di schermo, oggi per fortuna ne esiste uno gratuito, si chiama NVDA ed è perfetto per ciò che dobbiamo fare, data la sua ottima compatibilità con un gran numero di strumenti per lo sviluppo di software. Se utilizzerete questo lettore di schermo, vi consiglio di tenerlo sempre aggiornato, infatti grazie ai frequenti update da parte degli sviluppatori, questo strumento assume nuove potenzialità ed aumenta la compatibilità con i software presenti in Windows.

Sintesi vocale e Braille

Le disabilità visive sono molte e differenti tra di loro, di conseguenza ogni persona affetta ha una sua metodologia di apprendimento. Ci sono persone che basano la loro esperienza di uso del pc esclusivamente su ciò che ascoltano mediante sintesi vocale, io sono uno di questi, mentre invece ci sono altre persone che aggiungono il feedback tattile del Braille. Addirittura c’è chi utilizza solo il Braille senza sintesi. Gli strumenti descritti in questo articolo sono compatibili con tutte queste modalità di esperienza utente. Mi sento solo di consigliare, soprattutto nel caso si utilizzi solo la sintesi, di impostare la prolissità della punteggiatura su “tutta”, in modo che il lettore di schermo pronunci sempre tutta la punteggiatura. Essa è infatti fondamentale quando si scrive del codice in qualsiasi linguaggio di programmazione. Con NVDA si può ciclare tra i diversi livelli di prolissità della punteggiatura mediante la combinazione “tasto nvda + p”. Mi sento quindi di dire che chi usa il Braille, mediante una barra Braille collegata al pc, ha sicuramente una marcia in più ed è caldamente invitato a sfruttare questa opportunità. Altro particolare da non sottovalutare è la scelta della sintesi vocale da ascoltare. Bisogna ricercare quella con la quale “si pensa di capire meglio”, meglio una sintesi metallica e chiara, rispetto ad una sintesi in alta definizione, che magari ci legge il codice java come se ci stesse leggendo un libro di narrativa. Ma questa è davvero una scelta personale.

Un po’ di ordine

Prima di addentrarci per davvero nel mondo della programmazione, è importante capire che è necessario essere ordinati quando si utilizza un pc, si creano le cartelle o si spostano file. Bisogna sempre sapere in quale cartella sono i programmi e i file creati. Per cominciare definiamo una cartella da utilizzare per i nostri sviluppi, stabiliamo infatti che la cartella “c:\sviluppo”, conterrà i file e programmi che andremo a vedere tra poco. Siete liberi di creare la cartella sviluppo anche in un percorso diverso, come ad esempio nella vostra directory personale, magari dentro la cartella documenti. L’importante è essere consapevoli di ciò che si fa e fare poi sempre riferimento alla cartella creata. Questa guida farà riferimento alla cartella “c:\sviluppo”.

Il prompt dei comandi o console

Il prompt dei comandi è un programma speciale presente da sempre in Windows, privo di una interfaccia grafica ad oggetti, ci permette unicamente di eseguire programmi in modalità esclusivamente testuale. Il suo utilizzo è banale, noi scriviamo un comando tra quelli riconosciuti e otteniamo una risposta. Se non sapete come aprire il prompt dei comandi, vi indico un trucco. Premete la combinazione “windows + r”, apparirà una finestra nella quale vi verrà richiesto di digitare un comando riconosciuto da Windows. Voi digitate “cmd” seguito da invio. Apparirà così il prompt dei comandi. Il lettore di schermo NVDA interagisce bene con il prompt, in fase di scrittura dei comandi basta utilizzarlo in modalità standard, mentre per leggere il contenuto della console dovete spostarvi con la navigazione ad oggetti. Vi rimando al manuale ufficiale di NVDA per capire come utilizzare questa tipologia di navigazione. Se non volete usare tale modalità, in alternativa potete semplicemente premere la combinazione “ctrl + a” seguita dalla combinazione “ctrl + c” per copiare il contenuto testuale del prompt dei comandi negli appunti, vi basterà quindi incollarlo in un editor come Notepad++ e lo potrete consultare come un qualsiasi testo.
Una tipica operazione che possiamo fare con il prompt è ad esempio quella di spostarci nella cartella di lavoro dove creeremo i nostri file e cartelle per java, nel nostro caso, digitando “cd c:\sviluppo” e premendo invio, ci sposteremo all’interno di questa cartella.
Per chi fosse interessato vi indico la pagina di Wikipedia dove sono elencati tutti i comandi supportati dal prompt, per il nostro corso non è necessario conoscerli tutti, ma è utile sapere quali usare per muoversi tra le directory del nostro pc.

Come funziona Java

Se vogliamo sviluppare in Java, dobbiamo sapere che parliamo di un linguaggio ad oggetti interpretato, infatti una volta scritto il codice con questo linguaggio di alto livello, esso viene compilato in linguaggio intermedio (il byte code) che successivamente viene interpretato ed eseguito da una Virtual Machine che è incaricata di dialogare con il sistema in cui è in esecuzione. Essendoci una virtual machine per ogni sistema operativo, capite che Java risulta un linguaggio universale, infatti una volta scritto il codice sorgente di alto livello, esso sarà sempre lo stesso da compilare, indipendentemente dal sistema operativo su cui dovrà girare il software sviluppato. Ritornando al concetto di SDK, per scrivere in Java, serve che sul vostro pc sia installato un insieme di librerie e programmi chiamato nello specifico JDK, esso contiene sia la parte per compilare, JDK appunto, sia la parte per eseguire il codice, la Java Virtual Machine (jre), tutto all’interno della cartella “bin”.
Ecco il link dal quale scaricare la versione 11 della open JDK , tramite la quale potrete compilare ed eseguire il vostro codice scritto in Java. Una volta scaricato lo zip di open JDK, non dovete fare altro che scompattarlo nella cartella sviluppo creata precedentemente. Avremo così la struttura “c:\sviluppo\jdk-11”.

Configurare la variabile di ambiente per Java

Per permettere all’IDE e al sistema operativo di trovare la versione di Java installata nel vostro sistema, dovete settare, tramite le preferenze di Windows, una nuova voce nella variabile di ambiente Path, che punti alla cartella bin della vostra installazione di Java. Path è la variabile di sistema utilizzata da Windows per individuare gli eseguibili richiesti dallo stesso o su richiesta nel prompt dei comandi. Dal prompt dei comandi, digitando “echo %PATH%” potete vedere quali variabili di ambiente sono già presenti nel vostro pc. Se in passato avevate installato java per altri motivi, lo potreste già trovare, attenti solo alla versione installata. Se non è presente alcun riferimento a java, dovete procedere come segue:

  • premiamo il tasto “start” in windows e digitiamo “ambiente”, ci verrà proposta la voce “modifica le variabili di ambiente relative al sistema”, premiamola;
  • appare una nuova finestra, muoversi con il “tab” fino al tasto “variabili di ambiente …”, premiamolo;
  • appare una nuova finestra, spostarsi con il “tab” fino al gruppo “variabili di sistema”, qui è presente un elenco navigabile con le frecce con tutta una serie di variabili di sistema già presenti;
  • facciamo tab fino ad incontrare il tasto “nuova…”, premiamolo e nella finestra di dialogo che appare digitiamo il nome della nuova variabile di ambiente, dobbiamo chiamarla JAVA_HOME, spostiamoci con il “tab” sul campo “valore” dove dovremo indicare il percorso della variabile, nel nostro caso il percorso dovrebbe essere “c:\sviluppo\jdk-11”, scriviamolo e spostiamoci con il “tab” sul tasto “ok”. È importante che questo percorso indichi la cartella padre che contiene la cartella “bin”. Se avete installato java in un altra directory, accertatevi di inserire il percorso esatto;
  • a questo punto dobbiamo aggiungere questa variabile “JAVA_HOME” al path. Spostiamoci nuovamente con “shift + tab” sul gruppo “variabili di sistema” e con la freccia giù o su cerchiamo una variabile chiamata “path”. Una volta selezionata (basta esserci posizionati sopra), spostiamoci con il “tab” fino al tasto “modifica..”, premiamolo;
  • appare una nuova finestra di dialogo con l’elenco di tutti gli elementi della variabile path, non badiamo al contenuto, ma spostiamoci con il “tab” fino al tasto “nuovo”, premiamolo. Entreremo così in un campo in editazione, non dovremo fare altro che inserire la stringa %JAVA_HOME%\bin e dare invio. Spostiamoci con il “tab” fino al tasto “ok”, premiamolo;
  • tornati alla schermata precedente, la finestra generale delle variabili di ambiente, cerchiamo il tasto “ok” e premiamolo.

dopo questa procedura, il comando java diverrà disponibile in tutto il sistema. Digitando nel prompt dei comandi il comando “java -version” verrà descritta la versione di Java installata di default nel sistema, quella che verrà utilizzata ad esempio da Eclipse. Nel caso della open jdk comparirà una risposta simile a questa:
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

Installare Java più facilmente

È importante sapersi muovere in Windows e sapere gestire le variabili di ambiente. È una cosa comunque da imparare. Se però, inizialmente, avete delle difficoltà a seguire la procedura per installare Java manualmente, potete scaricare da qui una versione di Java autoinstallante. Questa procedura creerà per voi le variabili di sistema necessarie al funzionamento di Java. Unica differenza è che non sarà la Open JDK, ma sarà la versione distribuita da Oracle, che se usata in ambiente di produzione a lavoro, è a pagamento, ma ai fini di questa guida è assolutamente utilizzabile.

Problemi con le versioni di java precedentemente installate

Potrebbe accadere che alcuni lettori di questa guida abbiano già installato versioni di java precedenti alla 11. Ciò potrebbe essere accaduto in modo involontario, magari java era necessario per eseguire un programma che lo richiedeva. IN questi casi bisogna procedere con cautela. Accertarsi del motivo per cui si ha java. Si può quindi decidere se disinstallarlo o se mantenere la versione vecchia e la 11 in contemporanea. Non c’è una scelta universale, bisogna considerare caso per caso, soprattutto perchè in alcuni casi la disinstallazione delle versioni vecchie di java non va sempre a buon fine. Altro problema che spesso si verifica è che le versioni di java precedenti alla 11 fanno uso di diverse chiavi di registro che se non rimosse creano dei problemi alle versioni successive.
Io consiglio di provare a seguire la procedura descritta in questa guida senza disinstallare le versioni precedenti e vedere se tutto vi torna, altrimenti è necessario agire in modo puntuale in base alla situazione che si è venuta a creare.

Attenzione alle versioni: 32 bit o 64 bit?

Fate molta attenzione a installare versioni compatibili dei software sul vostro sistema. Se avete Windows a 64 bit, la versione di java ed Eclipse possono essere anche a 32 bit, a patto che condividano la stessa versione, non possiamo installare java a 32 bit e poi lanciare Eclipse a 64, ci darebbe errore. Se invece il vostro sistema operativo è a 32 bit, anche java ed Eclipse devono essere a 32 bit. In questi casi anomali, tentando di eseguire Eclipse, può verificarsi l’errore “java started but returned exit code 13”. Questa guida è pensata per Windows 10 a 64 bit, fate attenzione nel caso abbiate versioni diverse. Per sapere che versione di sistema operativo avete installato, potete andare nel prompt dei comandi e digitare “systeminfo”, appariranno una serie di informazioni tra cui “Tipo sistema:” dove è specificato se la versione è a 32 o 64 bit.

Visualizzare le estensioni dei file

Il sistema Windows nasconde di default le estensioni dei file conosciuti, ma uno sviluppatore ha sempre bisogno di visualizzarle e gestirle in autonomia. Ci sono diversi modi per cambiare questa impostazione, io vi consiglio un metodo molto rapido. Consiste nel premere il tasto “start” di Windows e digitare “estensioni”, vi verrà proposto di accedere al pannello “mostra/nascondi estensioni file”. Selezionate questa voce, atterrerete nel pannello dove è possibile gestire le opzioni sui file. Muovetevi con il tasto “tab” fino a trovare una visualizzazione ad albero che contiene le diverse opzioni, scendete con “freccia giù” fino a trovare la voce “nascondi le estensioni per i tipi di file conosciuti”, deselezionatela e premete il tasto “ok”, il gioco è fatto.

La tastiera del PC portatile e i tasti funzione

Facendo uso intensivo delle combinazioni di tasti messe a disposizione da Windows e dai software che utilizzeremo, dovremo prestare attenzione al fatto che su alcuni computer portatili, di default, la funzione dei tasti che vanno da f1 a f12 è alterata. Infatti essi sono configurati per gestire alcune opzioni del computer portatile, tipo alzare e abbassare il volume, aumentare o diminuire la luminosità, attivare o meno il WiFi eccetera. Dovete quindi ripristinare il funzionamento tradizionale di questi tasti. Solitamente si fa in due modi: dal BIOS del vostro PC o tramite apposita impostazione in Windows (se disponibile per il vostro modello). In caso non riusciate a cambiare questo settaggio, sarete costretti ad aggiungere alle combinazioni che vedono coinvolte i tasti da f1 a f12 la pressione del tasto “fn”, molto scomodo dato che alcune combinazioni a due tasti diventano a 3 tasti.

Alcuni cenni sul mondo Mac

Naturalmente Java è disponibile anche per piattaforma Mac OSX. Anche Eclipse lo è, però non è perfettamente accessibile con il lettore VoiceOver o perlomeno non soddisfa pienamente i requisiti di accessibilità con questo screen reader. Se parliamo di programmazione associata al mondo del lavoro, abbiamo necessità di avere un ambiente completo come Eclipse, quindi non consiglio questo software agli utilizzatori di Mac che utilizzano esclusivamente il lettore di schermo, altro discorso per gli utenti ipovedenti che sfruttano il proprio residuo visivo.
Posso però darvi alcune indicazioni. Come editor di testo alternativo consiglio l’accessibile CotEditor, scaricabile dal Mac App Store, oppure vi propongo anche TextMate, gratuito e open source.
Mentre come alternativa parziale ad Eclipse propongo CodeRunner, scaricabile qui, molto ben fatto ma a pagamento.
Per installare Java consiglio di scaricare questa versione di Java 11 e di seguire la procedura di installazione.
Fatto ciò, tutte le istruzioni java da linea di comando descritte in questa guida saranno utilizzabili anche sui sistemi Apple.

Il mio primo programma in Java

Senza darvi alcun cenno di programmazione, ma al solo scopo esempiflicativo, vediamo il codice di un primo ipotetico programma in Java.

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Guida introduttiva all'IDE Eclipse, per programmare in modo accessibile");
}
}

Non vi resta che creare un file di testo nella vostra cartella sviluppo e rinominarlo come “HelloWorld.java“. Apritelo con un editor di testo, come l’accessibile notepad++ e incollate al suo interno il codice proposto. Salvate il file appena prodotto.
Aprite il prompt dei comandi, come visto in precedenza e digitate “cd c:\sviluppo”, per spostarvi nella vostra cartella di lavoro tramite la console. A questo punto sarete in grado di eseguire il programma precedentemente scritto con i seguenti comandi:

  • compilazione del file java: “javac HelloWorld.java”. Questo comando creerà nella cartella il file HelloWorld.class, che è il nostro file compilato e pronto per l’esecuzione;
  • esecuzione del file class compilato: “java HelloWorld”

Vedrete che nel prompt dei comandi l’output sarà “Guida introduttiva all’IDE Eclipse, per programmare in modo accessibile”.

Eclipse, un ide accessibile

Eclipse è un IDE che nasce accessibile, compatibile con le tecnologie vocali, a questa pagina potete leggere alcune informazioni e modalità di interazione con l’interfaccia del software. Gli utilizzatori di screen reader possono muoversi tra le varie sezioni di Eclipse mediante il solo utilizzo della tastiera, senza mouse. Infatti è questa la particolarità di chi utilizza il software da non vedente, il mouse non si usa e grazie alle numerose scorciatoie da tastiera (hotkey) si è in grado di padroneggiare il software in oggetto. Per comodità vi condivido un file di testo che contiene un buon numero di scorciatoie, quelle che utilizzo quotidianamente per il mio lavoro. Questi sono quasi tutti i requisiti di sistema che dovete possedere per iniziare gli sviluppi con Eclipse, dovete avere una buona padronanza del pc tramite lettore di schermo e conoscere le basi della programmazione.

Installare Eclipse

Una volta scaricato il file zip contenente il software Eclipse, non dovete fare altro che scompattarlo nella cartella “sviluppo” precedentemente creata, dato che lo zip contiene già una cartella eclipse. Avremo così la struttura di directory “c:\sviluppo\eclipse”. All’interno della cartella principale troverete il file eseguibile eclipse.exe da lanciare per avviare l’IDE. Ma prima di eseguirlo dovete compiere ancora alcune operazioni.

La struttura dell’interfaccia di Eclipse

Una volta avviato Eclipse, vi troverete difronte ad un software ben strutturato, complesso se non lo si conosce, semplice da usare se invece si sa dove mettere le mani. Questa guida non vuole essere esaustiva, ma darvi giusto i rudimenti per iniziare. Grazie alle scorciatoie da tastiera di cui vi ho condiviso un file da scaricare, potremo spostarci tra le viste principali. Immaginate la schermata principale di Eclipse come una grossa scatola, un contenitore, che prende il nome di perspective. Questo contenitore ha al suo interno degli scompartimenti chiamati view. In ognuna di queste view sono contenuti una serie di strumenti per lavorare con il codice. Le principali view per iniziare sono quella chiamata Editor, dove è presente la zona in cui scrivere il codice, la view del package explorer dove potremo navigare il nostro progetto in una struttura ad albero, molto simile al file system, la view problems dove sono segnalati eventuali errors o warnings e la view denominata console dove potremmo vedere le prime esecuzioni del nostro codice java. Tutte le viste e i rispettivi menu e tool sono raggiungibili mediante scorciatoie da tastiera. Come tutte le applicazioni standard di Windows, premendo il tasto “alt” si accede al menu principale dell’applicazione, dove troveremo tutte le opzioni e strumenti presenti nell’IDE. Dovete avere un solo accorgimento importante, infatti in tutte le schermate che presentano un tasto “browse”, solitamente usato per impostare un percorso su file sistem, nel quale salvare o leggere un file o una cartella, questo bottone aprirebbe una finestra di ricerca del percorso non accessibile. Dato che tale bottone è preceduto da un campo di testo a scrittura libera, consiglio di scrivere sempre a mano il percorso a cui si fa riferimento, va bene anche se lo incollate dagli appunti. È una delle poche cose non accessibili di Eclipse alla data odierna.

Disabilitare lo smart caret per java

Per avere un’esperienza migliore nell’editor di testo, tramite lo screen reader, bisogna sistemare qualche impostazione.

  • premiamo “alt + w” per spostarci nel menù “Windows” e premiamo “p” per aprire l’elementto “Preferences”;
  • in questa schermata è presente un campo di testo, il focus in esso dovrebbe essere automatico. Scriviamo “smart caret”. Diamo un “tab” per spostarci nel sottostante albero di navigazione e muoviamoci con “freccia giù” fino a trovare l’elemento “java -> editor”;
  • spostiamoci con il “tab” fino a trovare la voce “smart caret positioning in java names”, disabilitiamo questa voce premendo “spazio”;
  • spostiamoci con il “tab” fino a trovare il tasto “apply and close”.

Abbiamo così migliorato l’esperienza utente tramite lettore di schermo, soprattutto nelle situazioni in cui ci si sposta con “ctrl + freccia destra o sinistra” tra il codice.

Disabilitare il code folding

Il code folding in Eclipse è una modalità visuale dell’editor, in cui vengono raggruppate visivamente porzioni di codice. Tale raggruppamento fa scomparire visivamente del codice, potete quindi immaginare i problemi con lo screen reader.

  • premiamo “alt + w” per spostarci nel menù “Windows” e premiamo “p” per aprire l’elementto “Preferences”;
  • in questa schermata è presente un campo di testo, il focus in esso dovrebbe essere automatico. Scriviamo “folding”. Diamo un “tab” per spostarci nel sottostante albero di navigazione;
  • spostiamoci nell’albero con “freccia giù” fino alla voce “general -> editors -> structured editor”. Spostiamoci con il tab fino a trovare la voce “enable folding”, disabilitiamola premendo “spazio”;
  • spostiamoci con “tab” fino a tornare sull’albero di navigazione. Muoviamoci al percorso “java -> editor-> folding”. Spostiamoci con “tab fino a trovare la voce “enable folding”, disattiviamola premendo “spazio”;
  • spostiamoci con tab fino al bottone “apply and close”

Disabilitare il content assist automatico per java

Per avere un controllo maggiore dell’editor, dobbiamo disabilitare un opzione utile e potente che se automatica ci può provocare dei problemi.

  • premiamo “alt + w” per spostarci nel menù “Windows” e premiamo “p” per aprire l’elementto “Preferences”;
  • in questa schermata è presente un campo di testo, il focus in esso dovrebbe essere automatico. Scriviamo “content assist”. Diamo un “tab” per spostarci nel sottostante albero di navigazione e muoviamoci con “freccia giù” fino a trovare l’elemento “java -> editor -> content assist”;
  • spostiamoci con il “tab” fino a trovare la voce “enable auto activation”, disabilitiamo questa voce premendo “spazio”;
  • spostiamoci con il “tab” fino a trovare il tasto “apply and close”.

Aumentare l’accessibilità di Eclipse con un Addon

Per aumentare la compatibilità di NVDA con l’IDE Eclipse, io ed Alberto Zanella, abbiamo collaborato allo sviluppo di un Addon per il lettore di schermo, assolutamente da installare, vi rimando alla pagina ufficiale su GIT Hub “eclipse-nvda”, scaricate l’ultima release presente e per usarlo al meglio, seguite tutte le istruzioni descritte nel paragrafo “Eclipse Configuration”. Inoltre imparate a conoscere e navigare il sito di Git Hub, dato che rappresenta uno dei più diffusi repository di progetti open source in diversi linguaggi, ne sentirete ancora parlare.

Passiamo all’azione e scriviamo il codice di HelloWorld in Eclipse

Per scrivere lo stesso codice visto in precedenza tramite Eclipse, seguiamo i seguenti passi:

  • apriamo il software, dopo il caricamento ci verrà richiesto di scegliere il nostro workspace, l’area di lavoro dove verranno memorizzati i nostri file. Apparirà una finestra di dialogo e il focus di NVDA sarà attivo in un campo di testo presente in questa finestra, cancellatene il contenuto ed inserite il percorso “c:\sviluppo\workspace” e premete invio;
  • apparirà così la schermata principale, con la rispettiva schermata di benvenuto, molto noiosa da gestire, chiudiamola premendo “alt + -“, apparirà un menu dal quale scegliere la voce close;
  • ora premiamo il comando “ctrl + n”, apparirà una finestra modale dalla quale dovremo scegliere “Create Java Project” spostandoci con freccia giù, è una voce presente in un elenco di proposte, diamo invio;
  • ci verrà chiesto di dare un nome al progetto, possiamo chiamarlo come preferiamo, ad esempio “corso programmazione java”;
  • muoviamoci con il tab fino al gruppo “jre”, composto da radio button, spostiamoci con freccia destra per selezionare la voce “use a default jre”. (In alcune versioni di Eclipse vi viene richiesto se volete creare un “module info”, a noi non serve, non creiamolo) premiamo invio;
  • torneremo così alla pagina principale dell’IDE Eclipse. In base alla versione di Eclipse e alle diverse impostazioni, potrebbe comparire una finestra di dialogo modale che vi chiede se volete aprire la prospective predefinita per Java, cioè quella contenente tutte le view necessarie per lo sviluppo in questo linguaggio, voi dite di aprirla;
  • a questo punto NVDA dovrebbe atterrare sulla view del package explorer, ma se ciò non dovesse accadere, premiamo la combinazione “ctrl + f7 (tenendo premuto ctrl e rilasciando f7) apparirà così una finestra di dialogo contenente un elenco di view, sempre con ctrl premuto, usando le frecce su o giù o premendo lo stesso f7, si ciclerà sulle viste disponibili;
  • attenzione che in base alla prospective utilizzata, potrete esplorare l’albero del progetto nella view package explorer o nella view projects explorer, non ha al momento importanza quale delle due utilizzerete, quindi non fatevi bloccare da questo dettaglio;
  • atterrati sul package explorer, ci troveremo difronte ad un albero navigabile con le sole freccie, individuiamo la cartella src e premiamo “ctrl + n”;
  • apparirà la stessa finestra modale di quando abbiamo creato il progetto, ma questa volta dovremo scegliere “create a Java class”, diamo invio;
  • apparirà una finestra in cui vi verrà chiesto di inserire un nome, scrivete “HelloWorld” (senza estensione .java), il nome non deve mai contenere spazi, poi spostatevi con tab fino alla voce “public static void main (String args[])” e date spazio per selezionarla. Premete infine “alt + f”;
  • avete creato la prima classe Java nella quale potrete scrivere il codice da eseguire. Il focus di NVDA passerà così automaticamente all’editor di testo (non dovesse accadere ciclate tra le view e selezionate voi l’editor) e vi basterà sostituire alla riga contrassegnata dal commento:
    // TODO Auto-generated method stub
    la nuova riga
    System.out.println("Guida introduttiva all’IDE Eclipse, per programmare in modo accessibile");
    Salvate premendo “ctrl + s”;
  • eseguite il programma con “ctrl + f11”;
  • potrete vedere l’output nella console di Eclipse, ciclando tra le view con “ctrl + f7” ed atterrando su quella chiamata console.

Conclusioni

Ora, se già non le avete, non vi resta che acquisire le basi della programmazione ad oggetti e potrete iniziare a sviluppare con questo potente linguaggio. Concludo qui questo primo articolo, vuole essere solo un’introduzione alle possibilità di programmazione, non vuole essere una guida esaustiva, ma solo un punto di partenza. In questo focus sono presenti tutti i link per scaricare il necessario e partire nei primi sviluppi. Per maggiori informazioni o percorsi formativi non esitate a contattarmi.
Ringrazio tutti gli utenti che hanno voluto lasciarmi un feedback sull’articolo e che grazie alla loro esperienza utente hanno collaborato a correggere eventuali errori o imprecisioni, siete stati preziosi.

Download proposti

Windows

Mac

Materiale proposto