Retrospettiva maggio 2023

Pubblicato il 31/05/2023

Rileggendo quanto scritto in questa retrospettiva devo dire che maggio è stato un mese di lavoro su moltissimi fronti.

Vita lavorativa

Ho lavorato molto sulla dockerizzazione di sistemi e applicazioni web in Go.

Un progetto basato su MongoDB e Spring Boot su cui ho lavorato negli ultimi mesi è andato finalmente in produzione 💥.

Ho rilasciato una versione di manutenzione di un software gestionale sviluppato per un mio cliente.

Progetti

Piccoli passi in avanti sul fronte jackal. Lo scorso mese ho preso la decisione di portare avanti il progetto in autonomia seguendo le mie necessità personali.

La strategia che ho seguito inizialmente si è rivelata fallimentare: ho provato a capire l’architettura del codice esistente partendo direttamente a sviluppare l’estensione del protocollo per la gestione di file (XEP-0363). Dopo poco ho capito che stavo sbattendo frontalmente contro un muro: zero passi avanti e tanta confusione, così ho cambiato totalmente strategia. Ho selezionato un’estensione del protocollo molto circoscritta (XEP-0012) già presente in jackal e seguendone la documentazione ho studiato la sua implementazione. Questa modalità mi ha permesso di capire come un modulo è strutturato ad alto livello e i vari componenti che entrano in gioco.

A valle di questo ho iniziato ad implementare il nuovo modulo e ho fatto qualche passo avanti. Ora la struttura base del modulo è integrata nel progetto, riesco ad abilitarlo/disabilitarlo, e quando è attivo i client capiscono che la funzionalità è a disposizione tramite il servizio di discovery. Non è molto, ma sapevo che sarebbe stato un processo lento. Con lo scheletro del modulo in piedi posso iniziare a implementare la logica dell’estensione.

Ho dovuto dedicare energie e tempo ad un progetto imprevisto e critico: il mio NAS Qnap TS-251 mi ha lasciato all’improvviso e ho dovuto capire come poter collegare uno dei dischi in RAID 1 a Linux per recuperare alcuni dati che mi interessavano. Un imprevisto che mi ha costretto a fare la conoscenza di alcuni strumenti che non conoscevo.

Rilasciata una nuova versione di Resting, la v.1.7.0. Questo rilascio nasce grazie all’attività di un nuovo contribuitore. La versione contiene parecchie piccole migliorie e correzioni con il fine di migliorare e semplificare l’esperienza utente. L’idea è seguire il motto:

less (click) is more (productivity)

Ho investito del tempo per investigare uno scenario: creare un ambiente di lavoro Linux minimale portabile e che permetta il salvataggio di file e modifiche, per poter intervenire in emergenza quando sono in mobilità. Per ora sto provando Linux Antix che sembra soddisfare queste necessità ed è una distribuzione estremamente leggera in termini di risorse permettendomi di usarla su portatili di vecchia data, riportandoli alla vita. Ho ancora alcuni punti aperti da risolvere per capire se posso considerarla una soluzione definitiva.

Studio

Ho ripreso in mano il progetto enigma per esercitarmi in Go, in particolare il refactor ha riguardato:

  • Introduzione di un modulo.
  • Una miglior struttura del progetto (in particolare l’utilizzo della cartella internal).
  • Introduzione di Makefile per semplificare la gestione del progetto.
  • Aggiunta una Github Action per eseguire i test di progetto ad ogni push.
  • Introduzione di golangci-lint per applicare buone pratiche al codice.

Enigma è uno dei primi progetti personali che ho sviluppo in Go per prendere dimestichezza col linguaggio, si tratta di un emulatore della macchina usata dai nazisti durante la Seconda Guerra Mondiale per criptare le comunicazioni militari.

Owlcode.eu

Articoli pubblicati questo mese:

Per questo mese è tutto 🕺.

  • I contenuti di questo articolo sono rilasciati con licenza CC-BY 4.0
  • Eventuali spezzoni di codice presentati seguono, dove non dichiarato, licenza MIT