Notizie

Volumio Team di sviluppo: Diario settimanale

Ciao ragazzi!

Negli ultimi mesi sono successe molte cose, a partire dal rilascio del nuovo Volumio 3 e del nuovo piano tariffario nel dicembre 2021 (ne parleremo in un altro topic nei prossimi giorni), abbiamo avuto l'impressione di non comunicare a sufficienza tutto ciò che sta accadendo internamente a Volumio, soprattutto sul fronte dello sviluppo. Vogliamo quindi cambiare la direzione attuale e dedicare un paio di minuti alla settimana per raccontarvi cosa sta succedendo e per fornire una visione un po' più approfondita di ciò che il team di sviluppo sta facendo, dato che la maggior parte delle volte si tratta di un lavoro dietro le quinte, poco visibile ma che fa andare avanti l'intero progetto.

via GIPHY

Spero anche che questa sia una lettura piacevole anche per i tecnici là fuori, e che fornisca alcuni spunti su cosa significhi gestire un progetto della portata di Volumio. Leggete qui di seguito su cosa stanno lavorando Michelangelo e il team di sviluppo di Volumio .

Febbraio

Settimana del 21 febbraio 2022 - 25 febbraio 2022

Questa settimana ci siamo concentrati sullo scaling up di alcuni dei nostri sistemi cloud, poiché dal lancio di Volumio 3 abbiamo registrato un grande incremento nell'utilizzo di Volumio e quindi delle sue parti cloud vitali.

In particolare, abbiamo aumentato la capacità dell'infrastruttura che rende possibile l'accesso ai vostri dispositivi da myvolumio.org, aggiungendo il rinnovo automatico dell'ssl, sperimentando un nuovo brillante software (caddy server) e installando 6 nuovi server in Asia, Europa e Nord America.

Abbiamo inoltre ampliato i controlli automatici su molti nuovi endpoint, a seguito di un vergognoso incidente che ha reso indisponibili alcuni dei nostri repository a causa di certificati scaduti.

Abbiamo aggiornato il mirror di musicbrainz (grazie all'aiuto dello stesso team di sviluppatori di musicbrainz) e aggiunto un robusto meccanismo di caching. Questo migliora i tempi di risposta del recupero dei metadati e ha anche perfezionato l'algoritmo per fornire risultati più accurati e un numero maggiore di risultati.

Se siete curiosi di sapere quanti server sono presenti nell'architettura di Volumio, visitate il sito:

https://status.volumio.com

È evidente (per noi in primo luogo) quanto sia complessa l'architettura che dobbiamo ospitare per portare avanti il progetto. Ma questo riflette solo il modo in cui la tecnologia è cambiata negli ultimi anni.
Quando abbiamo iniziato Volumio avevamo bisogno di un solo server (per i download e gli aggiornamenti OTA, e questo server è ancora in funzione), ma ora un lettore musicale deve interfacciarsi con una miriade di servizi di terze parti per fornire un livello adeguato di qualità e integrazioni. Questo anche perché, a mio avviso, una soluzione puramente FOSS non è più sufficiente al giorno d'oggi: per farla funzionare è necessario ospitare un po' di roba e pagarla.

Siamo finalmente riusciti a rintracciare un brutto bug che colpiva gli utenti con ISP che non utilizzavano IPV6 o applicavano NAT, causando frequenti interruzioni di TIDAL, QOBUZ e di tutto ciò che veniva trasmesso in streaming su HTTP2. Il problema era dovuto a un bug in curl (su buster) che faceva fallire le richieste http2 in alcune condizioni. Attualmente stiamo effettuando il QA su questa correzione e, se tutto va bene, la prossima settimana rilasceremo questo aggiornamento (per la gioia di molti utenti e del nostro responsabile QA Davide).

I lavori su FusionDSP stanno procedendo bene, grazie all'impegno di due brillanti membri del team e della comunità, stiamo creando un nuovo componente open source per far sì che Fusion DSP funzioni finalmente con l'AAMPP di Volumioe speriamo che possa essere reso pubblico molto presto.

Stiamo anche lavorando alla nuova versione dell'applicazione per Android e iOS (che sarà gratuita). Questa nuova versione consentirà agli utenti che la utilizzano per la prima volta di effettuare un onboarding estremamente semplice, permettendo loro di aggiornare automaticamente i propri dispositivi e di connettersi alla rete wireless in modo molto facile.
Questo, nelle nostre intenzioni, renderà la vita più facile ai nuovi arrivati sia su Volumio su Raspberry PI che sui prodotti Volumio (anche su questo stiamo lavorando sodo... restate sintonizzati...).

Sfortunatamente, ciò che è davvero in ritardo è il miglioramento della procedura di invio e di test del negozio di plugin. Abbiamo ancora un enorme arretrato di plugin da testare e nessuno può concentrarsi su questo aspetto perché il team di sviluppo è completamente occupato. Tuttavia, non lo stiamo trattenendo, perché stiamo cercando attivamente qualcuno che se ne occupi come prima e unica attività (se sei interessato a diventare questa persona, mandami un messaggio).

Abbiamo anche apportato alcune correzioni minori al plugin per la riproduzione dei CD, a Tidal Connect e a Metavolumio.

Per ora è tutto, ci vediamo la prossima settimana.


Marzo

Settimana del 28 febbraio 2022 - 4 marzo 2022

Prima di tutto, tutti i nostri pensieri sono rivolti all'Ucraina e a tutte le persone colpite da questa tragedia, che va oltre ogni immaginazione. Il team sta discutendo su come inviare un sostegno tangibile e speriamo di poter agire la prossima settimana.
Abbiamo deciso di non prendere una posizione politica, né di rilasciare dichiarazioni sulla situazione, ma di concentrarci piuttosto sul fare qualcosa di concreto per aiutare le persone in difficoltà.

Tornando alle cose frivole, questa settimana il nostro lavoro si è concentrato sulla continuazione del rafforzamento della nostra infrastruttura di server cloud per la connessione remota, spostando gradualmente tutti i server alla nuova e migliorata configurazione caddy.

Lunedì abbiamo rilasciato un nuovo aggiornamento che ha risolto alcuni bug, ma purtroppo l'immagine di Tinkerboard ha sofferto di un'interruzione temporanea di Github, che ha impedito l'installazione di alcuni pacchetti fondamentali come curl e il programma di aggiornamento remoto. Abbiamo quindi rilasciato un aggiornamento di emergenza mercoledì e il nostro team di supporto sta aiutando le persone colpite.
Stiamo migliorando lo script di compilazione in modo che la compilazione fallisca se questo si ripete, evitando di promuovere release con pacchetti di base mancanti.

Due nuovi moduli alsa open-source sono stati rilasciati e integrati nelle immagini principali, consentendo la finalizzazione dei lavori di FusionDSP (che sembra molto vicina) e una struttura utile per gli sviluppatori di plugin.

Sono stati inoltre risolti alcuni bug relativi alla visualizzazione dei metadati sui piani premium (dalla funzione di ricerca) e sono stati effettuati alcuni interventi sulla riproduzione dei CD.

Lo sviluppo delle nuove applicazioni è attualmente fermo, in attesa dei risultati dei test effettuati dai moderatori e dagli sviluppatori di Volumio.

Per questa settimana è tutto. Spero che il prossimo post su questo diario sia più allegro perché la pace è stata raggiunta (anche se sembra improbabile, ma è quello che speriamo).


Settimana del 7 marzo 2022 - 11 marzo 2022

Questa settimana è stato quasi tutto lavoro "dietro le quinte" per il team, cose noiose ma molto importanti...

Innanzitutto, c'è stato un incidente durante il rilascio della versione 3.233: un'interruzione temporanea di github ha impedito al sistema di compilazione di scaricare e installare alcuni componenti critici dell'immagine Volumio . In pratica, la piattaforma Tinkerboard si è ritrovata senza alcune librerie molto importanti (curl, flac) e l'updater. Altre piattaforme, come il PI, sono state invece costruite senza la classica interfaccia utente.
Ma questo lo sapevate già.

Il lavoro del team è stato diretto a fare il debriefing dell'incidente e a prendere misure proattive per evitare che si ripeta: abbiamo modificato il sistema di compilazione in modo che fallisca la compilazione se dovesse accadere di nuovo (grazie Ash!) e abbiamo aggiunto alcuni test nella nostra lista di controllo QA per le nuove release (grazie Davide per il duro lavoro!).

Riformuleremo gradualmente il sistema di compilazione per segnalare (e far fallire) ogni problema minore nel processo di compilazione. Oltre ad aumentare la fiducia nella ripetibilità dei rilasci, sarà un passo molto importante per l'implementazione di un sistema di build automatizzato (su un CI) che stiamo considerando da tempo.

Negli ultimi tempi, la complessità del progetto è aumentata in modo sostanziale, per cui ci troviamo al punto in cui dobbiamo istituire procedure solide (qualità, sviluppo, supporto) e fare debriefing molto spesso.

A livello organizzativo, questo aumenta un po' la burocrazia interna, ma riteniamo che sia un compito molto importante da svolgere per garantire standard di alta qualità ai nostri utenti. Il mantra che abbiamo è: non fare mai lo stesso errore due volte.

I lavori sulla nuova app per iOS e Android procedono, anche se con qualche intoppo: stiamo cercando di risolvere alcuni problemi di compatibilità con le vecchie versioni di Android con i nuovi flussi di configurazione wireless: sembra che le vecchie versioni di Android non siano in grado di ricevere correttamente l'elenco delle reti wireless a cui connettersi.

Continuiamo a monitorare l'infrastruttura cloud, dopo il grande aggiornamento avvenuto nelle scorse settimane. Il ridimensionamento dei server e dell'architettura sembra reggere abbastanza bene e l'aumento del carico viene gestito in modo eccellente.

Infine, ma non per questo meno importante, dal momento che i bug più importanti (e più scoraggianti) di Volumio 3 sono stati risolti, ci stiamo ora concentrando sulla correzione di bug minori e su modifiche, e abbiamo una nuova versione in fase di test QA, che speriamo venga rilasciata la prossima settimana. La nuova versione includerà correzioni per l'interfaccia utente, il montaggio dello storage collegato alla rete, il rilevamento dei metadati e altro ancora.

Come si può notare, lo sviluppo, la manutenzione e la crescita di Volumio comportano un lavoro che non è ovvio né visibile al grande pubblico, ma è altrettanto importante per farlo funzionare.


Settimana del 14 marzo 2022 - 18 marzo 2022

Questa è stata una buona settimana qui a Volumio HQ. Il motivo principale è che in qualche modo sentiamo di essere riusciti a ribaltare il "cattivo clima" che c'era ultimamente in questa comunità e a ristabilire l'atmosfera gioiosa che ci sforziamo di coltivare in questo luogo della rete.

Riteniamo che il rilascio di Volumio 3 non sia stato privo di problemi: molte persone sono state frustrate da un paio di brutti bug (che abbiamo risolto) e dalla mancanza di plugin nella V3. Questo ha fatto sì che la comunità si riempisse di commenti arrabbiati da parte degli utenti (e della famosa minoranza infelice), che esprimevano frustrazione per questi problemi. Questa atmosfera non solo ha reso questo posto molto meno interessante, ma ha avuto un enorme impatto sul morale del team e sull'"attaccamento" dei collaboratori al progetto.

Grazie ai suggerimenti del gruppo privato dei moderatori abbiamo deciso di agire e di impegnarci molto di più nella comunicazione proattiva con la comunità (quello che leggete è un risultato) e con gli utenti che riscontravano problemi.

Sembra che stia dando i suoi frutti. Sentiamo che lo spirito di questa comunità sta tornando. Ma non ci rilassiamo: questo periodo difficile è stato per noi un'occasione per imparare a fare meglio, e questo è ciò che vogliamo continuare a fare.

Un processo che è stato riorganizzato molto è quello del nostro servizio di assistenza tecnica e di assistenza ai clienti. In primo luogo, volevamo che le richieste venissero "smistate" meglio alla persona giusta all'interno dell'organizzazione. Lo abbiamo fatto ristrutturando la pagina dei contatti in modo più "direttivo", per inoltrare le richieste alla persona appropriata (richieste di acquisto, restituzione, fatturazione, assistenza tecnica, partnership, distribuzione, ecc.)

Poi volevamo fornire risposte più rapide alle persone che richiedevano assistenza tecnica.

Analizzando le richieste di supporto abbiamo scoperto che circa la metà di esse poteva essere risolta abbastanza rapidamente senza l'intervento del nostro personale di supporto, semplicemente fornendo piccoli suggerimenti scritti.
Abbiamo quindi implementato un chat-bot che abbina automaticamente le richieste degli utenti alla nostra base di conoscenze (che stiamo riempiendo costantemente) e fornisce risposte immediate a problemi o situazioni note.

Questo sistema ha dimostrato di funzionare bene per alcuni tipi di richieste, ma non per altri. Analizzando il flusso e alcuni feedback dei nostri utenti questa settimana, abbiamo scoperto che questo sistema non forniva un feedback sufficiente sulle azioni richieste per alcuni utenti (richiedevamo un'ulteriore azione da parte dell'utente prima di avviare la sessione di supporto) che si sentivano frustrati per non aver ricevuto assistenza e ci contattavano su altri canali (Facebook, forum, ecc.).

Stiamo quindi lavorando per modificare questa parte, cambiando il flusso di contatto con l'utente in questo tipo di situazioni. Prevediamo di rendere operativa questa modifica entro circa 10 giorni.

Quindi, per gli utenti che si sono sentiti trascurati nell'ultimo mese, riconosciamo il problema e stiamo lavorando per risolverlo, in modo che la prossima volta che avrete bisogno di noi troverete un'esperienza migliore.

Sul fronte dello sviluppo, questa settimana abbiamo lavorato ancora sul nostro ecosistema cloud. Se vi chiedete perché abbiamo dedicato tutto questo tempo al cloud e non al lato "Volumio", ecco perché.

Nel 2018 abbiamo preso una decisione architettonica molto importante: spostare tutta l'intelligenza di integrazione nel cloud, anziché sul dispositivo.

Ad esempio, il nostro server per il recupero delle albumart veniva eseguito sul dispositivo. In pratica identificava l'artista, l'album e il brano ed effettuava alcune interrogazioni online per recuperare e scaricare l'albumart più appropriato per un determinato brano. Tutto questo funzionava bene. O almeno funzionava finché uno di questi servizi online non chiudeva o cambiava le proprie API (succede più spesso di quanto si possa pensare).

Quindi, ci sono due modi per risolvere il problema:

  • Aggiornare tutto il software presente sul campo (nel nostro caso più di 430k installazioni). Ciò significa che molti utenti riscontreranno il problema finché non aggiorneranno il loro software. Significa anche che l'individuazione del problema avverrà solo dopo le segnalazioni di alcuni utenti.
  • Spostate la logica che aggrega i contenuti online nel cloud e fate in modo che la struttura di albumart di Volumio si appoggi a quella.

Abbiamo fatto il secondo passo. Questo comporta alcuni vantaggi aggiuntivi:

  • Siamo in grado di capire rapidamente se qualcosa non va, poiché possiamo impostare un monitoraggio automatico di tutti i servizi che utilizziamo.
  • Quando individuiamo un problema e lo risolviamo, la correzione è immediata per tutti i nostri utenti, senza la necessità di un aggiornamento.
  • Con alcune ottimizzazioni, come il caching e il bilanciamento del carico, possiamo offrire tempi di risposta più rapidi rispetto a un algoritmo in esecuzione sul dispositivo stesso, migliorando l'esperienza complessiva.

Questo comporta anche alcuni svantaggi:

  • Gestire questi servizi costa. Se utilizziamo la potenza di calcolo "distribuita" dei dispositivi, non costa nulla. Ma se dobbiamo configurare, mantenere e ospitare tali sistemi su una scala necessaria per Volumio, questo ha un costo.
    In pratica, ogni volta che si cerca un albumart, Volumio deve pagare per questo. Considerando che il servizio che forniamo per alcuni di questi endpoint è gratuito, dobbiamo essere molto intelligenti nell'ottimizzare la nostra tecnologia per non essere eccessivamente costosi (in questi casi, non usiamo AWS ma un mix di Kubernetes + VPS dedicato con un'alta densità di microservizi).
  • Se si guasta, si guasta per tutti allo stesso tempo. È quindi necessario mettere in atto strategie di ripristino e monitoraggio automatico e garantire ridondanze adeguate.

Alcuni esempi di servizi che utilizzano questa architettura sono:

  • Accesso Oauth per Spotify, QOBUZ, TIDAL (e possibilmente altri come LastFm)
  • Recupero di albumart
  • Navigazione di QOBUZ e TIDAL
  • Negozio di plugin
  • Selezione webradio
  • Metadati e recupero dei crediti

E sì, questa settimana c'era bisogno di un po' di amore per il fornitore di albumart. Un cambiamento in un'API upstream ha peggiorato le prestazioni del recupero delle arti degli artisti. Siamo riusciti a risolvere il problema e a distribuire la correzione senza richiedere l'aggiornamento a nessuno. E la cosa migliore è che la maggior parte di voi non se n'è accorta.

Stiamo continuando a seguire questo modello architettonico, soprattutto quando arricchiamo le funzionalità, il che potrebbe spiegare perché sul backend di Volumio si vedono meno commit relativi a questi aspetti.
Alcune delle cose su cui abbiamo già lavorato (stiamo aspettando che le parti del frontend le supportino) sono le notifiche dei concerti dal vivo e i testi.

È tutto per questa settimana! Spero che abbiate avuto un'idea di come anche la comunità possa avere un impatto su Volumio, sia in positivo che in negativo. Ricordatevelo e continuate a contribuire a rendere questo luogo una buona parte della rete.


Settimana del 21 marzo 2022 - 25 marzo 2022

Prima di tutto, siamo riusciti a mettere insieme l'aggiornamento che rilasceremo la prossima settimana. Include varie correzioni per il multiroom, i caratteri utf-8 e il tanto atteso aggiornamento AAMMP (che ci permetterà di rilasciare l'incredibile plugin Fusion DSP).

Ciò che ci ha impedito di rilasciare il prodotto è stato un misterioso bug che riguardava il multiroom, che abbiamo impiegato un po' di tempo a identificare (si è rivelato un errore molto stupido, ma molto nascosto e difficile da individuare).

Poi, finalmente, siamo riusciti a portare la nuova app per Android e iOS a un livello che ci soddisfa: il nuovo flusso di onboarding, migliorato e semplificato, funziona bene in tutte le circostanze.

Ci sono voluti un sacco di debug, test, imprecazioni... Non potete immaginare quanto possa essere noioso progettare e implementare un processo molto semplice...
La prossima volta che provate un pezzo di tecnologia che funziona, considerate che uno sviluppatore potrebbe aver perso tutti i capelli per farlo funzionare correttamente. :wink:
Il nostro piano prevede di rilasciare un beta test della nuova app la prossima settimana.

Questa settimana ci siamo concentrati anche su un'attenta analisi del nostro stato attuale (come progetto e come azienda) e sulla pianificazione strategica. Come si dice, "la tattica senza strategia è il rumore prima della sconfitta".

Abbiamo tenuto diverse riunioni di squadra per orientare la nostra strategia in due aree principali.

Il primo è la strategia e l'approccio a lungo termine degli OEM. Come forse sapete, Volumio OEM è un servizio che forniamo a molte aziende Hi-Fi in tutto il mondo. In pratica, diamo loro la possibilità di rilasciare prodotti Hi-Fi utilizzando la tecnologia e l'esperienza di Volumio . Siamo orgogliosi che più di 30 aziende Hi-Fi in tutto il mondo abbiano scelto Volumio per alimentare i loro prodotti audiofili.

Questo ha funzionato bene sia per noi che per loro negli ultimi anni e Volumio è quello che è oggi anche grazie al contributo finanziario e progettuale dei nostri partner.

Tuttavia, riteniamo di poter fare meglio e di essere più ambiziosi con il programma per i partner OEM.
Abbiamo assistito a un enorme aumento delle richieste di diventare partner OEM di Volumio dopo il rilascio di Volumio 3 e a un leggero cambiamento nelle richieste dei nuovi partner alla nostra tecnologia.

Rispetto a 3 o 4 anni fa, le aziende del settore Hi-Fi tendono a disporre di reparti IT interni e ci chiedono un coinvolgimento meno diretto e una maggiore libertà nell'implementazione della nostra tecnologia e un approccio più simile a un SDK.

Stiamo quindi riprogettando il nostro programma OEM in modo molto simile a quello di Android. Quindi sì, il nostro piano è che Volumio diventi l'Android del mondo della tecnologia musicale.
Naturalmente, seguendo il nostro approccio di "co-design", stiamo coinvolgendo alcuni dei nostri migliori partner nei processi decisionali e di progettazione.

L'altra pianificazione riguarda l'hardware. Abbiamo piani ambiziosi e alcune cose davvero molto belle su cui stiamo lavorando...
Al momento non possiamo rivelare nulla, ma, se fossi in voi, prenderei in considerazione l'idea di visitare la fiera HIGH END di Monaco di quest'anno...
HIGH END di Monaco
...

Per questa settimana è tutto!

Messaggi correlati