venerdì 31 luglio 2020

#A7 Passi avanti, di lato, indietro

L'aggiornamento può sembrare scarno, ma dietro all'apparenza, c'è altro.



Dopo aver navigato a vista per un pò di tempo, sto continuando il progetto DQAAS (Data Quality As A Service), dandoci però, il giusto peso.

Ho scelto questa immagine non a caso. Alcuni anni di basket amatoriale mi hanno insegnato cosa vuol dire non centrare il canestro. In allenamento come in partita, si deve riprovare e riprovare e riprovare, finché non si riesce.
Quindi anche se non sembra, sto provando, riprovando, ancora ed ancora a tirare nel canestro la palla, in questo caso un side project.

Un passo avanti, uno di lato, uno indietro quindi: si prendono le misure e poi si tira.


Cos'è DQAAS ?

DQAAS (Data Quality As A Service): un nome migliore ancora non l'ho trovato, essendo veramente ai primi passi, ma il problema che cerca di risolvere è molto diffuso (almeno dal mio punto di vista):

Come posso controllare i dati, in vari formati e condividere con altri i controlli che ho effettuato ?

Sarà quindi una piattaforma web sulla quale caricare dati, effettuare controlli sugli stessi e condividere i risultati con altre persone.

A che punto siamo

Sto lavorando al frontend, lentamente, provando e riprovando, dedicandoci il giusto tempo e peso. Ho imparato (continuando la metafora sportiva), che a volte la palla non va nel canestro. E' meglio aspettare, riprovare, fare altro.

Piani futuri

Sto lavorando alla parte visuale, lavorando ad un flusso che sia comprensibile anche ad un non tecnico e nel frattempo migliorare il servizio.
Il risultato non sarà eclatante, ne sorprendente, ma sarà il punto di arrivo di questo percorso, nel bene e nel male.

#M7 - Costanza

La costanza è probabilmente l'ingrediente fondamentale per riuscire a portare avanti dei propri progetti all'infuori del lavoro quotidiano.
Senza di essa, il solo l'entusiasmo, che è il fuoco motore di ogni progetto personale, non riesce a portare a risultati concreti.


Photo by mauro paillex on Unsplash


La costanza permette di applicare quello che in termini finanziari viene chiamato interesse composto: tanti piccoli passi continui e costanti per lungo tempo.
Osservando i singoli passi li riterremo così piccoli da considerarli un inutile spreco di tempo ed energie, ma la chiave di tutto è lasciare lavorare il tempo e permettere al risultato di queste singole azioni di sommarsi fra loro nel lungo termine.
In fondo ci vuole un po' di fede e avere fiducia nell'aspettare un arco di tempo lungo per guardare il risultato ottenuto.

La costanza è perennemente minacciata dai momenti bui, quando nella testa una voce ci dice: "ma perché ti sforzi così?", "ma chi te lo fa fare?", "lascia stare stai solo perdendo tempo per niente".
In questi momenti mi é molto d'aiuto cambiare punto di vista sull'attività che sto portando avanti.
Quando il pessimismo mi fa perdere il senso di quello che faccio, gliene cerco uno nuovo.

Se riguardo a questi sei mesi mi è successo spesso.
Se penso ad exercism, ho deciso di intraprendere quell'avventura con l'obiettivo di imparare da dei manutentori più esperti, ma è risultato subito chiaro che non sarebbe stato possibile visto che si sono ritirati tutti al mio ingresso nel gruppo. Anche la parte del confronto veniva a mancare quando dopo poco tempo ho capito che i nuovi manutentori che si erano proposti con me erano scomparsi.
In quel momento ho pensato più volte di mollare perché non era più possibile raggiungere l'obiettivo che mi ero preposto.
Così ho cambiato obiettivo: ho deciso di fare un'esercizio di programmazione scrivendo uno strumento, il java-representer, che aveva requisiti chiari.
Grazie a quel passo non ho mollato e siamo arrivati ad oggi, dove finalmente arrivano i primi contributi dall'esterno.
Se penso a Resting, in due anni non sono riuscito a costruire nessuna interazione robusta con gli utenti e guardando i dati dell'ultimo periodo sembra che gli utenti stiano diminuendo costantemente.
Questo sarebbe il momento di dire "mollo tutto!", ma ho deciso di cambiare obiettivo, di estrapolare delle librerie e plugin per il framework (knockout.js) su cui si fonda e di usare Resting come client per provarle e svilupparle.
 
Questo mese so di averci messo tanta costanza, avendo dedicato praticamente ogni giorno una finestra più o meno grande ai vari fronti aperti.
Sono conscio che i risultati non rispecchiano lo sforzo impiegato, ma stringerò i denti in questo momento di magra in attesa di un miglior futuro.

Il mese prossimo è il classico mese delle ferie estive, probabilmente prenderò un mese sabbatico dai progetti per ricaricarmi.
Non staccherò comunque totalmente la spina, ma cercherò di dedicare del tempo ad un unico fronte.

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

Sto implementando l'ordinamento dei bookmarks e folder via drag and drop.
Mi sono concentrato soprattutto su un mattoncino fondamentale su cui poi si poserà il riordinamento: mantenere l'ordine dei bookmark creati.

Pochi giorni fa lo ho portato a termine e ho sfruttato l'occasione per pubblicare una piccola fix release di Resting (1.0.3) così anche da muovere le acque: l'ultima versione pubblicata è del mese di marzo.

Piani futuri

Nel mese di agosto Resting andrà in pausa.


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

Come anticipato il mese scorso ho comunicato nel canale slack che non porterò più avanti il thread "standup" settimanale per mancata partecipazione.

Ho cercato di misurare la priorità delle varie attività aperte in base all'impatto sul progetto e mi sono concentrato solo su quelle: preparare e pubblicare gli issue per gli esercizi da implementare.
Sono arrivati i primi contributi dall'esterno.
Il resto del tempo lo ho trascorso facendo review ai contributi arrivati e presiedendo il canale slack per aiutare i contribuitori a prendere dimestichezza col progetto.

Se qualche Javista sta cercando un progetto Open Source dove partecipare ed ha un po' di tempo libero è sicuramente il benvenuto, qui la lista delle attività aperte.


Piani futuri

Sarà il fronte che terrò aperto nel mese di agosto, mi concentrerò su attività organizzative come:
  • essere supportivo con i nuovi ( e spero tanti) contribuitori, 
  • far review ai contributi arrivati 
  • presiedere il canale slack di progetto
  • aprire issue per le attività mancanti

 Puntate precedenti

Risorse


mercoledì 1 luglio 2020

#A6 Data Quality As A Service

Dopo essere tornati alla posizione di partenza lo scorso mese, ho avuto una intuizione ed ho costruito un primo prototipo di Data Quality As A Service.




Un nome migliore ancora non l'ho trovato, essendo veramente ai primi passi, ma il problema che cerca di risolvere è molto diffuso (almeno dal mio punto di vista):

Come posso controllare i dati, in vari formati e condividere con altri i controlli che ho effettuato ?

E' importante definire cos'è un controllo, per dare un esempio.

Prendiamo come esempio un insieme di dati con dei dati personali:

  • email: è importante che l'email abbia un formato specifico, per essere utilizzata successivamente, evidenziare gli errori di sintassi può essere lungo e tedioso, se effettuato tramite uno strumento come excel
  • controlli di formato: un dato dovrebbe essere numerico, ma lo è sempre? Ad esempio il prezzo di un articolo
  • controlli di valore: un certo dato non deve superare un valore di soglia. Ad esempio il peso di una macchinario potrebbe superare un valore impostato e dovrebbe essere segnalato correttamente
Verificare manualmente pochi dati è facile, centinaia è possibile, ma oltre ti serve uno strumento dedicato.

A che punto siamo

Il concetto alla base di DQAAS ( Data Quality As a Service) é quello che un utente può caricare dei dati ( diciamo in formato csv/excel per iniziare), averli a disposizione ed interrogarli in due modalità:

  1. tramite un'interfaccia per non tecnici che permetta di definire controlli sui dati, senza conoscere i tecnicismi dietro a quei controlli
  2. tramite query sql per utenti più tecnici

Secondo le mie ricerche questo genere di servizi esistono, sono forniti da grandi aziende (assieme a molti altri, chiaramente ) e richiedono grandi risorse hardware e software per funzionare.
La mia soluzione propone di aggirare questo problema, ed adottando un modello SaaS ( Software As A Service ), abbattere i costi.

Le persone che hanno bisogno di un simile livello di controllo sui loro dati si possono registrare sulla piattaforma DQAAS, caricare i loro dati, impostare i controlli ed ottenere i riscontri. Un passo importante é quello di condividere i controlli con altri membri della propria azienda, rendendo quindi lo stesso processo documentato e ripetibile.

Piani futuri

Voglio arrivare a creare un vero e proprio servizio di test, libero per chiunque, per poter valutare con dei potenziali utenti interessati la piattaforma e l'idea.

Devo quindi creare un minimo di interfaccia per rendere fruibile e comprensibile l'idea, vedremo se riesco entro il prossimo aggiornamento.