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