lunedì 30 novembre 2020

#M11 - Novembre 2020

Questo mese, oltre il consueto aggiornamento sui vari fronti aperti, descrivo un processo che ho utilizzato per creare un'abitudine nella mia giornata.

Photo by JESHOOTS.COM on Unsplash

 

Cos'è exercism/java

Exercism è una piattaforma educativa per imparare/migliorare a programmare.
Propone problemi da risolvere in molti linguaggi di programmazione con la possibilità di esercitarsi da soli oppure confrontarsi con un tutor.
Fra i linguaggi supportati c'è Java (che da ora chiamerò exercism/java). 

 

A che punto siamo 

Il mio contributo alla gestione del linguaggio Java nella piattaforma exercism prosegue, seppur molto lentamente. Ad oggi continuo ad essere l'unico gestore attivo.

Il tempo necessario per portare avanti le attività in maniera proficua è decisamente aumentato negli ultimi tempi. E' incrementato soprattutto il tempo da dover dedicare alla lettura delle chat dove vengono discusse e prese le decisioni sulla strutturazione della piattaforma e conseguentemente delle singole tracce. 

Per rimanere allineati si dovrebbe dedicare del tempo tutti i giorni a leggere queste discussioni per capire come procedere e se c'è la necessità rivedere quanto fatto in precedenza.

Ovviamente questo si scontra con il tempo che ho deciso di dedicare a questa attività ( un paio di ore alla settimana). E' praticamente impossibile usare questo tempo per "scavare" nelle chat alla ricerca di quanto è stato deciso, per pianificare il lavoro e portarlo avanti ( direttamente o dedicando il tempo per supportare i contribuitori che hanno voglia di partecipare alla realizzazione).

E' per questo che molto pragmaticamente ho deciso di rallentare ulteriormente nelle attività di progetto e di investire il tempo a disposizione in quelle attività al momento più stabili, in attesa che vengano consolidate tutte le decisioni strutturali sul progetto generale. Solo allora sarà possibile stilare una lista consistente delle attività necessarie per portare la traccia Java alla nuova versione della piattaforma e pianificare un lavoro incrementale secondo i tempi a disposizione.


Piani futuri

In attesa che vengano stabilizzate le decisioni strutturali sulla nuova versione della piattaforma, proverò a portare avanti in modo rilassato le attività che mi sembrano più stabili e consolidate.


Cos'e' Resting

Resting è un'estensione per il browser Firefox che permette di analizzare e testare velocemente API sia HTTP che REST.


A che punto siamo

Su consiglio di Alberto ho pubblicato una nuova versione di Resting, la v1.1.0, grazie ai contributi ricevuti durante Hacktoberfest 2020.
 
Ho colto l'occasione per provare se Resting funzioni su Chrome.
Con un paio di piccole modifiche il risultato ottenuto è stato positivo: Resting sembra funzionare senza evidenti problemi. 

Piani futuri

La prossima attività in programma è investire del tempo per analizzare un contributo ricevuto durante l'ultima edizione di Hacktoberfest che non ho ancora potuto integrare per la presenza di alcune anomalie.
Il prossimo rilascio sarà l'occasione per portare ufficialmente Resting su Chrome.

 

Creare un'abitudine

Tendo a dimenticare molte delle cose che scopro durante il lavoro quotidiano. Non so se questo dipenda da come sono fatto o dal contesto ( molte attività da seguire ogni giorno su tematiche diverse e spesso nuove).

A fine giornata mi sembra di non aver concluso un bel niente e questa sensazione di stagnazione nel tempo è frustrante. Se però prendo del tempo e rifletto sulle attività portate a termine durante il giorno diventa chiaro che c'è un'evoluzione.

A fine marzo in uno di questi momenti di frustrazione ho deciso di provare a rendere abitudiario questo casuale processo di riflessione serale.

Per creare un'abitudine ho provato a darmi alcune regole:

  • ho creato un promemoria quotidiano che mi ricorda ogni sera alle 20 di prendermi del tempo per questa riflessione,

  • scrivo con carta e penna: ho scoperto che scrivendo al computer subisco molto di più la "sindrome da foglio bianco",

  • non importa quanto scrivo: che sia una riga o mezza pagina, il mio interesse è fissare almeno un aspetto interessante di quello che ho imparato durante il giorno.

Ad oggi sto portando avanti questa attività ogni sera e posso considerare di aver creato un'abitudine.

L'aspetto che più mi ha aiutato a raggiungere questo obiettivo  è sicuramente aver creato un promemoria che ogni giorno mi ricorda di dare del tempo a questa attività.

In queste ultime settimane sto provando a creare una nuova abitudine giornaliera sfruttando quanto imparato in questo processo.

Ne scriverò sicuramente quando la riterrò sufficientemente consolidata.

 

mercoledì 25 novembre 2020

#A11 Data Quality as Service - prototipo

 

 
Photo by Sigmund on Unsplash

 

Data Quality As A service é un'idea che ho avuto qualche mese fa ( vedi #A6 ed #A7 ): é possibile creare un servizio che controlli qualsiasi sorgente di dati, come voglio, in modo facile ed intuitivo, dal mio browser ?

La risposta é si!

Di seguito una breve immagine del prototipo, visto che l'immagine vale più di mille parole:

 

Click per ingrandire

Riporto alcune note sull'immagine, per permettere una più facile comprensione:

  1. l'utente accede al sito e decide di caricare un file da controllare ( es. un file .csv preso dal portale degli open data del trentino)
  2. il file viene caricato sul server, la struttura analizzata e riportata all'utente, che può quindi decidere come controllarla
  3. il caso in oggetto controlla se il campo "Categoria" contiene "a"
  4. il file csv ritornato contiene i dati che soddisfano quella condizione

 

Perché é un prototipo ?

 DQAAS é un prototipo attualmente perché manca di tutte quelle funzionalità "accessorie", ma fondamentali, quali ad esempio l'autenticazione.Vi sono alcune funzionalità che dipendono dalla diversa gestione che si può fare di un servizio come questo, che spiego più avanti.


A che punto siamo

Il sevizio, sviluppato con una componente di frontend ( sviluppata in Angular 9 ) e backend ( in java 11 ) é funzionante e testato con tutti gli operatori che ho indicato:

  • uguale / non uguale
  • contiene
  • maggiore
  • minore
  • maggiore uguale
  • minore uguale 
  • inizia con / non inizia con
  • finisce con / non finisce con 
  • ha lunghezza / non ha lunghezza

Il supporto a questi operatori, unito alla indipendenza dalla struttura in input, permette di controllare i dati in modo abbastanza completo, evidenziando quelli di interesse ( sia in termini di negativi, ovvero di errore, o positivi).


Piani futuri

DQAAS é completato come prototipo ed ha assolto il suo compito. Ho imparato molto su come organizzare un progetto come questo, trovare una soluzione generic per un qualsiasi formato in input, analizzarlo e ritornare un risultato. Ho lavorato anche sull'aspetto di presentazione, che mi ha bloccato per un pò di tempo ( sia in termini di codice, sia di organizzazione dei contenuti e presentazione, che come potete immaginare può spaziare verso numerose soluzioni ).

Ho deciso alla fine di scegliere per una soluzione il più possibile semplice ed intuitiva, senza farmi prendere dal "demone" del perfezionismo e dell'aggiungere funzionalià senza scopo, se non quello di farmi perdere tempo. Per questo sono molto soddisfatto di questa esperienza!

Ho deciso però di chiudere qui questo prototipo, almeno per ora e dedicarmi ad altro, ma ne parlerò il mese prossimo!