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!

 



venerdì 30 ottobre 2020

#A10 - La strada nel fare

 

 
Photo by Markus Spiske on Unsplash

 

Questo mese mi sono dedicato all'hacktoberfest cercando di contribuire a progetti opensource che utilizzo. Sono riuscito in parte a centrare questo obbiettivo, e di questo non mi lamento di certo.

L'occasione dell'hacktoberfest ( questo é il mio terzo anno ) é stimolante sia dal punto di vista della programmazione, ma anche e soprattutto nel vedere così tante persone impegnate. Alcuni per farsi visibilità, altri per la maglietta, altri per piantare un'albero ( questo é il mio obbiettivo quest'anno). Ma non sono qui per fare il processo alle motivazioni degli altri, ma spiegare perché la partecipazione all'hacktoberfest, piccola e grande, é stata importante per me.

E' utile per fare capire alle persone, che l'opensource non vive di vita propria, ma ha bisogno di persone che si impegnino sia a contribuire, sia ad organizzare i progetti, controllare i contributi ( bene Mirko ! ). Personalmente ritengo l'opensource uno strumento così importante da non riuscire ad immaginare il mio ambito ( lo sviluppo software ) senza di esso.

Tutti i progetti ai quali ho lavorato hanno incluso librerie di terze parti, opensource ( le apache commons, per fare un esempio). Risultato del lavoro di tante persone, che mai ho conosciuto e mai conoscerò. Ma é questa "eredità" che ci viene lasciata, sotto forma di piccole e grandi librerie.

E' per questo che ho contribuito volentieri a cron-utils, una libreria java che ha risolto un problema in un progetto lavorativo di un paio di anni fa. Ho fatto qualcosa che mi serve direttamente, domani al lavoro ? No.

Ho scelto di contribuire risolvendo dei problemi segnalati da altre persone, anche questo é opensource.

Qui invito i nostri (pochi?) lettori a lasciare i loro parere: voi avete mai contribuito ad un progetto opensource? Se no, perché? Se vi serve una mano, lasciate un commento o contattate me o Mirko, saremo felici di indirizzarvi.

E' un percorso istruttivo in tanti sensi, fidatevi!

 

giovedì 29 ottobre 2020

#M10 - Ottobre 2020

Questo mese, come Alberto lo scorso, ho deciso di non seguire la consueta struttura per l'aggiornamento visto che le novità si concentrano su un unico tema.

Dedico da ormai qualche anno il mese di ottobre a partecipare ad Hacktoberfest, l'evento organizzato da DigitalOcean per contribuire ai progetti Open Source che ci piacciono o usiamo di più.


 

 

Quest'anno la mia partecipazione è stata particolare rispetto alle precedenti, perché per la prima volta mi ha visto completamente dall' "altra parte della barricata": ho investito in pratica tutto il tempo come gestore di progetti più che come contribuitore.

Per il primo anno non raggiungo l'obiettivo come partecipante di proporre quattro contributi, ma mi rendo conto di felice ugualmente. Sono felice perché il tempo che non ho dedicato direttamente ai contributi é servito per aiutare gli altri a raggiungere il proprio obiettivo.

Per il secondo anno ho proposto per l'evento alcune issue di Resting e quest'anno il risultato é stato per me notevole, avendo ricevuto 7 contributi da parte di 6 contribuitori, di cui ben 5 totalmente nuovi.

Anche sul fronte exercism/java ci sono stati parecchi contributi, alcuni dei quali hanno assorbito parecchio tempo in svariati scambi di revisioni e validazione.

Quest'anno non sono riuscito a far piantare il mio albero, ma ho aiutato a farne piantare molti altri :).

Mi rendo conto che questo é un aggiornamento decisamente povero, ma accetto la cosa con serenità perché non possono esistere dei periodi alti senza averne di bassi.


Puntate precedenti



sabato 3 ottobre 2020

#A9 Lo stato dell'arte

Acqua foto creata da wirestock

 

Chi segue dall'inizio questa serie conosce la mia cronica difficoltà nel concentrarmi su un singolo progetto e portarlo avanti, mese dopo mese.

Penso che realizzarlo e scriverlo sia importante, perché anche questo, fa parte del percorso!

Capire che, non solo a volte il progetto che volevi portare avanti, il DQAAS é ad un punto fermo ( ma non completato ), ma anche che nuovi progetti, idee o sideproject ( come li si vuole chiamare), sono ben lontani dall'essere iniziati e.. figuriamoci completati

Ho quindi deciso di variare per questo aggiornamento la struttura, elencando un pò di attività sparse che mi hanno portato qualche soddisfazione, in ordine sparso:

  • ho creato una issue su un plugin per Eclipse che uso ogni giorno, EasyShell
  • ho contribuito a Resting aprendo issue ed usandolo di più durante gli sviluppi di api REST, sia al lavoro che per progetti personali
  • ho creato un repository su github con una piccola utility per usare Mongodb con Java, mongodb-utils
  • ho deciso di partecipare anch'io quest'anno all'hacktoberfest 2020, sia da manutentore di alcuni repository, sia come partecipante
  • nei miei progetti, mongodb-utils,  SprintBootSystemd , github-action-sql-syntax-check ho creato delle piccole issue che chiunque può risolvere, come parte dell'hacktoberfest 2020

Piani futuri

Anche se non so può sembrare da questo aggiornamento, parecchie cose sono in movimento, devo solo trovare la costanza nel lavorarci, perché la passione di fare c'è. Devo trovare tempo, modo, costanza, focus, come lo vogliamo chiamare, per continuare su questa strada.





martedì 29 settembre 2020

#M9 - Settembre 2020

Settembre è il mese del ritorno a scuola e quindi dopo aver preso un mese di pausa è tempo di tornare agli aggiornamenti.


Photo by Deleece Cook on Unsplash

Questo aggiornamento racconterà le attività del mese di agosto e quelle di questo mese.

Durante le vacanze ho avuto anche l'occasione di fare alcuni pensieri sui vari fronti aperti.

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 

Nel primo aggiornamento scritto in questo blog raccontavo come fossi interessato a fare un'esperienza di manutentore in un progetto Open Source attivo per capirne le dinamiche sia tecniche che umane.
Exercism/java tra gli alti e bassi delle mie aspettative si sta decisamente dimostrando un'ottima palestra su questo fronte.

Come deciso a luglio, ad agosto ho investito tutto il mio tempo a disposizione su questo fronte. Il lavoro è stato esclusivamente "organizzativo":

  • ho aperto issue sulle attività mancanti,
  • ho fatto review delle PR arrivate dai contribuitori ( in netto aumento, cosa che mi rende molto felice),
  • ho cercato di rispondere a tutti gli issue aperti dagli utenti,
  • ho tenuto vivo il canale slack dei manutentori del linguaggio Java.

In questo mese ho continuato a portare avanti questo tipo di attività.

Piani futuri

Continuerò a dedicare uno spazio del mio tempo settimanale (due o tre ore) a portare avanti le attività descritte.

La mia sfida personale sarà riuscire a rispettare il tempo che ho deciso di dedicare, cosa per me molto difficile. In questo devo decisamente migliorare: se vedo notifiche di nuove PR o issue aperti faccio seriamente fatica a non investirci subito tempo, subisco un senso di urgenza.

Nel mese di ottobre ci sarà anche l'annuale evento Hacktoberfest.

Per chi non la conoscesse, l'obiettivo è proporre 4 pull request ai progetti Open Source ospitati su Github nel mese di ottobre. Per chi raggiunge l'obiettivo in premio c'è una maglietta dell'evento o, quest'anno, la possibilità di far piantare un albero.

Exercism parteciperà all'evento e così anche la traccia Java. Per chi fosse interessato o soltanto curioso, a questo link potete vedere le attività a disposizione (che verranno aggiornate continuamente durante l'evento).

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

Ho sfruttato le vacanze per ragionare a mente serena su cosa voglio da Resting.

Nel sondaggio lanciato nel mese di marzo fra gli utenti di Resting (qui l'articolo dove ne parlavo) ne usciva un utente medio saltuario, che utilizza lo strumento circa una volta in settimana per testare le proprie API in sviluppo.

Mi sono reso conto che questo non è la tipologia di utente a cui miro. Sono interessato ad avere un utente più assuduo, che faccia uso dello strumento quotidianamente come faccio io.

Credo che solo così potrò avvicinarmi all'obiettivo che mi sono dato per Resting: quello di creare una piccola comunità attiva intorno allo strumento.

Un utente saltuario, per come la vedo io, è mediamente più propenso a passare ad un altro tool al primo problema o mancanza invece di segnalarla attivitamente.

E' sostanzialmente un utente che non ha la necessità dello strumento e senza tale spinta difficilmente si può creare partecipazione.

Le funzionalità attualmente fornite da Resting non sono sufficienti ad attrarre gli utenti che cerco.

Dal punto di vista dello sviluppo le attività sono ferme, questo mese ho deciso di concentrarmi su exercism/java per smaltire le attività che si sono accumulate nel periodo delle vacanze.

Piani futuri

Riprendere e terminare lo sviluppo della funzionalità di drag&drop dei bookmark, in modo da poter pubblicare una nuova versione.

Fare alcune prove per portare Resting anche su Chrome.

 

Cos'è ts-converter

ts-converter è una piccola estensione per browser che permette di trasformare un timestamp in una data leggibile.
E' un progetto free software con licenza GPLv3.


 

A che punto siamo

Ho chiaro che ts-converter è il mio progetto laboratorio.

E' sufficientemente piccolo da permettermi di usarlo come "pioniere" per approfondire nuovi scenari. Infatti è il primo progetto che ho portato su Chrome: mi è servito per capire le problematica di pubblicare di un'estensione nata su Firefox.


Piani futuri

In un prossimo futuro vorrei provare a portare l'estensione su Microsoft Edge per capire meglio problematiche e processo.

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.

giovedì 25 giugno 2020

#M6 - Mese di riflessioni



Il mese di giugno non è stato particolarmente attivo.
Non avendo molte novità da riportare ho deciso di sfruttare questo aggiornamento per fare una riflessione sui vari "fronti" aperti.

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

Sto continuando a portare avanti il thread settimanale di "standup" nel canale Slack dei manutentori del linguaggio Java. Ad oggi continua ad essere uno sforzo senza alcuna partecipazione attiva da parte degli altri manutentori: la mia idea iniziale di sospendere questa attività dal mese di luglio è definitiva.
Non è stato comunque del tutto inutile: aprire questi thread mi ha permesso di tenere il canale informato dei miei avanzamenti e di poter interagire con i manutentori generali del progetto exercism che seguono tutti i canali dei singoli linguaggi.
Inoltre é indubbio che dichiarare pubblicamente i propri propositi della settimana responsabilizzi e spinga all'azione.

Sto procedendo anche con gli sviluppi della nuova versione.
Fino al mese scorso devo dire che non ero contento delle sensazioni che mi circondavano quando ci lavoravo: uno stato di ansia e di pressione.
Capendo che era una cosa insana, mi son preso del tempo per trovarne i motivi:
  • la mancanza di confronto con altri: essendo in pratica l'unico manutentore attivo per il linguaggio ho dovuto prendere molte decisioni sui problemi e dubbi che riscontravo nelle varie attività. Aver preso in solitaria queste decisioni ha caricato su di me un maggiore senso di responsabilità su quanto succede al progetto.
  • Il fatto che entro fine giugno ( non mi è chiaro se ad oggi sia ancora così) la nuova versione del progetto dovesse andare "in produzione" mi ha caricato di ansia: moltissime le attività da portare avanti e lenti gli avanzamenti.
    L'ansia arrivava dalla sensazione di "fallire" l'obiettivo e di sentirmene pienamente responsabile in quanto manutentore.
  • Il fatto di vedere tutto il proprio tempo assorbito su questo fronte o comunque sentirmi obbligato a dover mettere a disposizione tutto il tempo su questo per via della "scadenza" in avvicinamento.
    Il vedere tutto il tempo assorbito su questo oppure il portare avanti gli altri progetti con la sensazione di "sto togliendo tempo ad exercism/java e la scadenza di avvicina" mi causava ansia.
 Ragionandoci sopra sono arrivato a queste conclusioni:
  • se contribuire in modo volontario a un progetto deve portare queste brutte sensazioni, tanto vale chiudere l'esperienza.
  • Se la scadenza non verrà rispettata non ha senso sentirmi l'unico responsabile di questo "fallimento": non si tratta  di un mio progetto, io sono solo una persona che in questo momento aiuta a portarlo avanti.
  • Se ho paura che tutto il mio tempo a disposizione sia assorbito dal progetto, devo essere chiaro sul tempo che voglio dedicare settimanalmente e attenermi forzatamente a quello.
  • Esistono linguaggi all'interno del progetto portati avanti da un unico contribuitore ed esistono canali Slack generali dove confrontarsi con tutti i manutentori. Se ho dei dubbi oppure ho bisogno di un opinione quello è il posto giusto dove chiedere.

La situazione é migliorata. Ora: faccio quello che riesco rispettando il tempo che ho deciso di dedicare al progetto, ho rotto il ghiaccio nella chat generale e se ho dubbi o problemi domando a cuor leggero, lì ci persone disponibili che rispondono in tempi molto rapidi, e quando porto avanti i miei altri progetti sono molto più tranquillo.

Cosa mi porto a casa da questo ?

inutile fare il guerriero indomito che avanza a spada tratta, se una situazione non si vive bene meglio fermarsi ed essere chiari e sinceri con se stessi per ripartire con uno spirito migliore.

Piani futuri

Procedere col programma di sviluppi della versione v3.

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

Attualmente sto sviluppando una funzionalità di cui sentivo la mancanza da parecchio tempo e che mi è stata richiesta anche nei suggerimenti del sondaggio: la possibilità di riordinare le richieste salvate.
Lo sto sviluppando permettendo il riordinamento via drag and drop.
Per questa operazione sto sicuramente utilizzando più tempo del necessario, ma ho deciso di affrontare uno sviluppo incrementale facendo varie prove a parte:
prima ho capito come utilizzare le webapi messe a disposizione del browser per gestire il drag and drop e ora sto provando a integrarle  nel framework javascript che utilizzo per lo sviluppo di Resting (knockout.js) in un piccolo esempio.

Da questo mese ho deciso di non riportare più i numeri mensili dell'estensione ( download e utenti attivi): mi sono accorto che questi numeri non aggiungono alcun valore all'aggiornamento sul progetto.
La mia idea in questo blog è raccontare un'esperienza e Resting è solo un frammento di quello che voglio raccontare, per cui i suoi numeri non sono così importanti all'interno mio racconto.
Se qualcuno ha un altro parere in merito, lo scriva qui nei commenti dell'articolo o me lo faccia sapere attraverso un altro dei miei canali.

Piani futuri

Concludere la funzionalità di ordinamento e rilasciare una nuova versione di Resting.
Riuscire a implementare la funzione di drag and drop in Knockout.js come una libreria così da poterla pubblicare e mettere a disposizione di chiunque.

Cos'è ts-converter

ts-converter è una piccola estensione per browser che permette di trasformare un timestamp in una data leggibile.
E' un progetto free software con licenza GPLv3.


 

A che punto siamo 

Il mese scorso ho pubblicato il mio primo articolo su dev.to cercando di condividere quello che ho imparato sulla gestione degli eventi  in Elm (link all'articolo).
Ho usato l'articolo per lo più come strumento per me stesso: mi ha permesso di interiorizzare meglio quanto imparato.
Qualche giorno dopo ho comunque deciso di pubblicizzare l'articolo sul mio account Twitter ( non potevo lasciare all'oscuro i miei ben 40 followers :D)




A sorpresa mi sono ritrovato all'interno del numero 21 della newsletter settimanale di Elm




Sicuramente si è trattato della classica fortuna da principianti :D, ma voglio portare a casa comunque un insegnamento:

se si hanno pochi followers usare un hashtag attinente può aumentare la visibilità

Piani futuri

Ho riscontrato un bug da approfondire e sopratttutto correggere :D.


 Puntate precedenti

Risorse


martedì 2 giugno 2020

#M5: Si riparte

Piccolo aggiornamento per questo mese:
  • ripartono gli sviluppi di Resting,
  • una nuova versione per ts-converter e un articolo su quello che mi ha fatto imparare.


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

Secondo le risposte del sondaggio l'utente medio usa Resting circa una volta alla settimana per eseguire dei test funzionali sui propri servizi e vorrebbe che Resting permettesse di costruire richieste HTTP più ricche e complete (maggiori dettagli qui).
Concentrandomi su questo ho analizzato la lista di issue del progetto e i consigli espressi nel sondaggio e ho identificato quattro attività che dovranno far parte della versione 2.0.
Queste attività forniranno la traccia per definire quando l'estensione sarà completa per un nuovo rilascio maggiore.

Numeri del mese


Utenti attivi (-6,1%)


Aprile:1.405
Maggio: 1.322

Download (-26,3%)


Aprile:  384
Maggio: 283 

Piani futuri

Riprendere in mano il codice e iniziare le attività di sviluppo

Cos'è ts-converter

ts-converter è una piccola estensione per browser che permette di trasformare un timestamp in una data leggibile.
E' un progetto free software con licenza GPLv3.


 

A che punto siamo 

E' arrivata una richiesta di miglioramento che ha portato alla pubblicazione della versione 0.3.0.
Con questo rilascio si è attivato un piccolo circolo virtuoso che spero di poter continuare.
Grazie alla richiesta arrivata ho:
  • imparato come gestire gli eventi in Elm,
  • migliorato ts-converter,
  • deciso di condividere quanto imparato su Elm pubblicando un articolo su dev.to.
Open Source è condivisione non solo di codice, ma anche di esperienza e contenuti e l'articolo è un altro passo in questa direzione.

Piani futuri

La mia idea per questo progetto é intervenire nel caso ci siano errori e valutare ogni richiesta di funzionalità aggiuntiva che arriverà.


 Puntate precedenti

Risorse