Nel 2014 decisi di sviluppare un’app for iPhone/iPad.

Sentivo la necessità di impegnarmi su un mio progetto di informatica, e di avere una piccola presenza tutta mia su Internet, la grande Nuvola. Così, quasi come effetto collaterale, nacque giandisa.IT. Come dice il logo del sito: "la mia goccia nella nuvola".

giandisa.IT site

Mi piace la tecnologia e la scienza. La mia passione per l’informatica è nata quando vidi il Sinclar ZX80 pubblicizzato e descritto su alcune riviste di progetti di elettronica.

Sinclar ZX80

Sinclair ZX80 è stato il primo home computer economico già assemblato per tutti: grazie Sir Clive Sinclair!

Nel frattempo, anche dopo l’arrivo del Sinclair ZX81, mi dovetti “accontentare” del “Basic Expansion Kit” per la console per i giochi Atari 2600. Grazie ad una speciale cartuccia e a due controller a tastierina agganciabili era possibile programmare in Basic lo spostamento di due cursori.

Ma, finalmente, un giorno, i miei genitori mi ricompensarono con un nuovo, splendido e tanto desiderato ZX Spectrum.

Sinclar ZX Spectrum

Una caratteristica interessante era che tutti i segnali del processore Z80 erano accessibili dal connettore posteriore. Potei fare un sacco di esperimenti software ed hardware. Già, amo anche l’elettronica digitale.

Oh, scusate la digressione… Ricordi magici di un periodo storico unico per i pioneri dell’informatica “casalinga” 😉…

Tutto ciò, vi fa capire che son sempre stato appassionato di informatica e non è solo la mia attuale professione e fonte di "schei".

Come dicevo, il sito giandisa.IT era una delle mie prime gocce nella Nuvola. Il suo scopo iniziale doveva essere quello di descrivere i miei vari progetti, ma col tempo divenne esso stesso un progetto importante da far evolvere, con cui ricercare e sperimentare. Era nato il progetto “site”.

Il sito giandisa.IT è stato sottoposto negli ultimi quattro anni a ben cinque ristrutturazioni tecnologiche, dovendo io seguire il mio innato, instancabile, ingenuo desiderio di cercare il "Sacro Graal della Programmazione".

In più di trent’anni, ho seguito l’evoluzione dei linguaggi di programmazione:

Programming languages books

Assembly, Basic, Forth, Fortran, Lisp, C, C++, Modula-2, Ada, Java, Eiffel, Python, Ruby, Scala, Clojure, Dart, nel mio personalissimo ordine storico, e le varie tecniche sottostanti

  • programmazione a “goto”
  • programmazione strutturata
  • programmazione procedurale
  • programmazione funzionale
  • programmazione ad oggetti
  • programmazione tramite contratti

aspetti dei due principali paradigmi di programmazione: imperativa e dichiarativa.

La programmazione funzionale e ad oggetti mostrano un reciproco dualismo, in qualche modo simile a quello tra onda e materia in fisica 🤓.

So bene, per esperienza, che non c’è una panacea per ogni necessità di sviluppo software, ma è utile avere uno strumento di programmazione che possa coprire l’ottanta per cento di quanto necessario per costruire un certo software. In particolar modo quando si lavora da soli o con una piccola squadra di sviluppo.

Certo, riscrivere un programma può essere dura, ma se le fondamenta, i concetti su cui si è costruito, sono solidi, si può riusare molto dell’analisi e della progettazione. Ci si può quindi concentrare sui “dettagli implementativi” di usare un diverso linguaggio e/o piattaforma.

La tecnologia della presentazione o vista del sito giandisa.IT, la parte che gira nel browser, non è cambiata nelle varie versioni. La rivoluzione ha coinvolto principalmente la parte server.

Di seguito la descrizione delle iterazioni tecnologiche subite dal mio sito web e le relative motivazioni.

Site V1: Lancio dell’app Rilassicelle

Avevo bisogno di un sito web con cui promuovere e descrivere l’app Rilassicelle e la sua realizzazione.

l’app Rilassicelle

Il sito, come l’app, doveva gestire almeno due lingue: l’italiano, la mia lingua natale, e l’inglese. Forse un giorno il cinese.

Inizialmente pensai a Wordpress o Joomla. Entrambi avevano un ricco ecosistema di plugin e un mucchio di fantastici temi, ma i sistemi di gestione di più lingue erano più complessi di quel che cercassi.

Così, decisi di fare da me partendo da zero o quasi. Scelsi la libreria Bootstrap che poteva facilitare il compito di strutturare le pagine fornendo una buona compatibilità tra browser diversi.

Progettai e disegnai il logo, scelsi i colori e pensai all’aspetto generale del sito.

Lato server, c’era bisogno di un motore web dinamico. Sono un entusiasta esperto di tecnologie Java così optai per le pagine JSP e il framework Spring. Spring è utile per assemblare le varie componenti grazie al pattern IoC e per il ricco portafoglio di librerie per le più comuni necessità nella programmazione server, per esempio mandare mail. Il framework Stripes fu adottato per la sua semplice ed efficace implementazione dello schema MVC.

Apache CouchDB, un database NoSQL, divenne la “memoria” persistente del sito. Scelsi CouchDB per via della sua capacità nativa di offrire la replica master to master pur con lo scotto di avere una consistenza “eventuale” dei dati. Si veda il teorema CAP. Anche l’intrinseca natura senza schema, ovvero senza definizione di una esplicita struttura dati, era interessante.

Teorema CAP

Configurai due server Linux gemelli nella Rete per l’Europa e gli Stati Uniti. Ogni server aveva installato un Server HTTP Apache posto di fronte ad un Tomcat Apache per fornire accesso sicuro e controllato sulla porta 80 e permettere futuri sviluppi.

La replicazione fornita da CouchDB, inizialmente servì per facilitare la distribuzione dell’applicazione “site” ai due server dal Mac dove stavo sviluppando. In futuro, mi sarebbe piaciuto usare CouchDB per immagazzinare i dati di qualche nuova app.

“site” V1 assolse il compito di annunciare il lancio di Rilassicelle e di rendere accessibili alcuni articoli su questa piccola app rilassante e scacciapensieri sia in italiano che in inglese.

Per un po’ fui soddisfatto di questo primo risultato, ma avevo già in mente di aggiungere qualche nuova caratteristica e di considerare qualche altra tecnologia. Nella seconda parte, descriverò le successive quattro iterazioni tecnologiche del progetto “site”.

A presto...

Gianni Di Sanzo

Vai alla: Parte 2Parte 3
Condividi Twitta