Lars Knudsen è un esperto sviluppatore Google. Abbiamo parlato con lui di come un dispositivo da 10 $può rendere i computer più accessibili per le persone con disabilità.

Monika: cosa ti ha spinto a diventare uno sviluppatore? Qual è il tuo attuale ambito professionale?
Lars: ho conseguito un master in ingegneria, ma in realtà il mio interesse per la tecnologia è iniziato molto prima. Quando ero bambino, negli anni '80, mio padre possedeva un'azienda di informatica che si occupava di grafica. A volte, soprattutto durante le vacanze estive, mi portava con sé al lavoro. A volte, alcuni dei suoi dipendenti mi tenevano d'occhio. Una volta un ragazzo molto intelligente mi disse: "Lars, devo fare un po' di lavoro, ma ecco un manuale di C e un computer lì. Ecco come avviare un compilatore C. Se hai domande, non esitare a chiedere." Ho iniziato a scrivere brevi testi che venivano tradotti in qualcosa che il computer potesse capire. Mi sembrava magico. Avevo 11 anni quando ho iniziato e, intorno alla seconda media, ero in grado di creare piccole applicazioni per i miei compagni di classe o da utilizzare a scuola. È così che è iniziato tutto.
Nel corso degli anni ho lavorato per molte aziende, tra cui Nokia, Maersk e Openwave. All'inizio, come in molte altre professioni, perché sai poco, pensi di poter fare tutto, ma con il tempo impari che ogni azienda ha un determinato modo di fare le cose.
Dopo alcuni anni di lavoro per un'azienda sanitaria, nel 1999 ho aperto la mia attività. Ho lavorato come freelance e, grazie a questo, ho avuto la possibilità di conoscere rapidamente più organizzazioni. Dopo aver completato i primi cinque contratti, ho scoperto che ogni azienda pensa di aver trovato la configurazione perfetta, ma tutte sono completamente diverse. In quel periodo ero anche esposta a molte tecnologie, sistemi operativi e così via. All'inizio dei miei vent'anni, il mio modo di pensare è cambiato. All'inizio, mi concentravo esclusivamente su una tecnologia e volevo saperne di più. Con il tempo, ho iniziato a pensare a come combinare le tecnologie per migliorare le nostre vite. Ho un interesse particolare a ridurre il divario tra ciò che chiamiamo il team A e il team B nel mondo. Cerco di trasferire quante più conoscenze possibili alle regioni in cui le persone non hanno il lusso di possedere un computer o di studiare all'università senza costi.
Continuo a lavorare come libero professionista per partner esterni, ma, se possibile, cerco di scegliere progetti che abbiano un qualche tipo di impatto positivo sull'ambiente o sulla società. Al momento sto lavorando a software embedded per un'azienda di apparecchi acustici chiamata Oticon. Dal punto di vista del software, ho lavorato su tutto, dai microcontrollori più piccoli al cloud. Gran parte del mio lavoro ruota attorno al web. Cerco di combinare le tecnologie quando ha senso.
Monika: eri coinvolta nelle community di sviluppatori prima di partecipare al programma Google Developers Experts?
Lars: Sì, ho partecipato a meetup e conferenze. Ho iniziato a interagire con la community mentre lavoravo per Nokia. Intorno al 2010 ho incontrato Kenneth Rohde Christiansen, che è diventato GDE prima di me. Mi ha ispirato a capire come le tecnologie web possono essere utili per gli aspiranti professionisti della tecnologia nei paesi in via di sviluppo. Lo sviluppo e il deployment di soluzioni che utilizzano C++, C# o Java richiedono alcuni anni di esperienza, ma chiunque abbia accesso a un computer, un browser e un blocco note può iniziare a sviluppare applicazioni web e imparare molto velocemente. È possibile creare un'applicazione completamente funzionale con risorse limitate e iniziare da zero. Ecco perché chiamo il web uno stack tecnologico molto democratico.
Ma torniamo alla community: dopo un po' di tempo mi sono interessato alla standardizzazione del web e ai problemi che le tecnologie web all'avanguardia potevano risolvere. Ho sperimentato nuove funzionalità in un browser prima del rilascio. All'epoca lavoravo per Nokia e sviluppavo per un dispositivo di punta basato su Linux, l'N9. Il browser che abbiamo creato era basato su WebKit e ho acquisito una grande esperienza nello sviluppo di funzionalità per un grande progetto open source. Negli anni successivi al mio abbandono di Nokia, ho partecipato a conferenze web e meetup, quindi è stato naturale per me entrare a far parte della community GDE nel 2017.
Mi piace molto il lavoro con la community e tutto ciò che stiamo facendo insieme, in particolare i Chrome Developer Summit pre-pandemia, dove ho avuto la possibilità di aiutare con il servizio in stand insieme a un sacco di fantastici ingegneri Google e altri GDE.
Monika: quale consiglio daresti a un giovane sviluppatore che sta appena iniziando la sua carriera professionale e non sa quale percorso intraprendere?
Lars: dalla mia esperienza, se puoi permettertelo, ti consiglio di lavorare come freelance per un paio di aziende diverse. In questo modo, avrai modo di conoscere il codice in molte forme e fasi di sviluppo diverse. Conoscerai una moltitudine di sistemi operativi e lingue e imparerai a risolvere i problemi in molti modi. Questo mi ha aiutato molto. Ho acquisito esperienza come sviluppatore senior nei miei vent'anni. Questo approccio ti aiuterà a raggiungere più velocemente i tuoi obiettivi professionali.
Oltre a questo, divertiti, esplora, gioca con l'hardware e il software. Valuta la possibilità di creare qualcosa che risolva un problema reale, magari per i tuoi amici, la tua famiglia o un'attività locale. Non aver paura di provare qualcosa che non hai mai fatto prima.
Monika: che cosa riserva il futuro per le tecnologie web?
Lars: penso che da un paio d'anni il web sia pienamente in grado di fornire una piattaforma per applicazioni di grandi dimensioni, sia per i consumatori che per le aziende. Sul lato server, le tecnologie web offrono un'esperienza senza interruzioni, in particolare per gli sviluppatori frontend che vogliono creare un componente di backend. Ora è più facile iniziare. Conosco persone che utilizzavano sia Firebase che Heroku per svolgere il lavoro. E questa tendenza continuerà a crescere: le tecnologie web saranno sufficienti per creare soluzioni complesse di qualsiasi tipo. Ritengo che le funzionalità web - Project Fugu 🐡 sblocchino davvero questo potenziale.
Da un punto di vista leggermente diverso, penso anche che se forniremmo documentazione completa e articoli approfonditi non solo in inglese, ma anche in altre lingue (ad esempio spagnolo e portoghese), potremmo sfruttare un grande potenziale in America Latina e, naturalmente, in altre regioni. Spesso gli sviluppatori non conoscono l'inglese abbastanza bene da comprendere appieno tutti gli articoli pertinenti. Dobbiamo anche dare loro l'opportunità di imparare il prima possibile, anche prima di iniziare l'università, quando sono ancora nelle loro città natale. Potrebbero usare queste competenze per aiutare le comunità e le attività locali prima di partire e magari non tornare mai più.
Thomas: Hai fatto molta strada, passando dallo sviluppo in C su un computer qualsiasi all'hacking hardware. Come hai fatto?
Lars: ho iniziato a smontare molto dell'hardware che avevo a casa. Mio padre non era sempre felice quando non riuscivo a rimetterlo insieme. Con il tempo, ho imparato a costruire alcuni piccoli dispositivi, ma è stato solo molto più tardi, quando ho iniziato a lavorare in Nokia, che ho acquisito la mia esperienza in questo campo. Ho avuto la possibilità di creare piccoli screensaver e componenti per gli smartphone della serie 30. Mi appassionava molto e potevo davvero pensare fuori dagli schemi. Mi hanno assegnato il compito di creare un gioco di Snake per questi dispositivi. È stata un'esperienza molto interessante. La differenza principale tra la creazione di sistemi embedded e la maggior parte delle altre cose (incluso il web) è che lasci un'impronta ridotta: non hai molto spazio o memoria da utilizzare. Durante la creazione di Snake, la RAM a mia disposizione era inferiore a un terzo del frame buffer (circa 120 x 120 pixel). Ho dovuto trovare il modo di riunire algoritmicamente i componenti sullo schermo in modo che sembrassero statici, come se fossero riquadri. Ho imparato molto: è stato il passaggio da sistemi più grandi a soluzioni piccole e integrate.
Thomas: le competenze di un tipico sviluppatore frontend sono molto diverse da quelle di chi realizza hardware embedded. Come incorare uno sviluppatore frontend a esaminare l'hardware e iniziare a pensare in binario?
Lars: penso che il primo passo sia esaminare alcune delle API Fugu che funzionano in Chrome ed Edge e sono integrate in tutti i principali sistemi oggi. Per iniziare, è tutto ciò che ti serve.
Un altro aspetto è che le toolchain per la creazione di soluzioni integrate hanno una curva di apprendimento ripida. Se vuoi creare il tuo hardware personalizzato, inizia con Arduino o ESP32, qualcosa di facile da acquistare e abbastanza economico. Con l'ambiente di sviluppo giusto, puoi avviare il tuo progetto in pochissimo tempo.
Puoi anche acquistare un monitor della frequenza cardiaca o un'unità multisensore che utilizzano già i servizi GATT Bluetooth, quindi non devi creare il tuo hardware o firmware, ma puoi utilizzare ciò che è già disponibile e iniziare a fare esperimenti con l'API Web Bluetooth per iniziare a comunicare con il dispositivo.
Esistono anche dispositivi che utilizzano un protocollo seriale. Per questi, puoi utilizzare l'API Web Serial (anche Fugu). Di recente ho esaminato l'utilizzo dell'API WebHID, che ti consente di comunicare con tutti i dispositivi di interfaccia uomo a cui tutti hanno accesso. Ne ho trovati alcuni vecchi in cantina che non erano supportati da nessun sistema operativo da anni, ma grazie al reverse engineering ci ho impiegato alcune ore per riattivarli.
Esistono diversi approcci a seconda di ciò che vuoi creare, ma a uno sviluppatore web consiglierei di acquistare un'unità di sensori solida, ad esempio Thingy 52 di Nordic Semiconductor. Ha molti sensori e puoi collegarlo alla tua applicazione web con pochissimo sforzo.
Thomas: la connessione al dispositivo è il primo passo, ma poi parlarci in modo efficace è un'altra cosa. Come mai non hai mollato dopo aver affrontato gli ostacoli? Cosa ti ha motivato a continuare a lavorare?
Lars: per me personalmente l'aspetto sociale della risoluzione di un problema era il più importante. Quando ho iniziato a lavorare ai miei progetti embedded, avevo una visione e il desiderio di creare un laboratorio scientifico in una scatola per le regioni in via di sviluppo. Mia moglie è del Messico e ho visto alcune scuole lì; alcune situate fuori dalle grandi città sono piuttosto fatiscenti, senza accesso ai materiali e alle attrezzature che abbiamo nella nostra parte del mondo.
La passione per la creazione di qualcosa che può essere potenzialmente utilizzato per aiutare gli altri è ciò che mi ha spinto ad andare avanti. Ho apprezzato molto anche l'assistenza della community. Ho contattato alcune persone di Google, che sono state tutte estremamente disponibili e hanno risposto con pazienza a tutte le mie domande.
Thomas: molte persone hanno a casa una sorta di hardware, ma non sanno cosa farne. Come trovi l'ispirazione per tutti i tuoi fantastici progetti, in particolare quello con il nome provvisorio SimpleMouse?
Lars: Di recente ho effettivamente riportato in vita un sacco di vecchio hardware, ma per questo progetto specifico, il cui nome non è stato ancora deciso, ma chiamiamolo SimpleMouse, ho utilizzato la mia esperienza. In precedenza ho lavorato con alcune soluzioni di accessibilità e ho notato che alcune non funzionano più; per eseguirle devi avere un vecchio Windows XP con un determinato software installato. Non puoi aggiornarli, puoi utilizzarli solo a casa perché non puoi spostare la configurazione.
Per questo motivo, mi sono chiesto come combinare le mie competenze nel mondo dell'embedded con il progetto Fugu e cosa è ora possibile fare sul web per creare hardware economico e accessibile combinato con software facile da comprendere su entrambi i lati, in modo che le persone possano sviluppare questo progetto.
Per quel progetto specifico, ho utilizzato un piccolo dongle USB con un chip riflettente, l'nRF52840. Comunica con il Bluetooth da un lato e con l'USB dall'altro. In pratica, puoi programmarlo per qualsiasi cosa su entrambi i lati. Poi ho pensato ai dispositivi che controllano un computer: un mouse e una tastiera. Alcune persone con disabilità potrebbero avere difficoltà a utilizzare questi dispositivi e volevo aiutarle.
La prima cosa che ho fatto è stata assicurarmi che qualsiasi sistema operativo vedesse il dongle USB come un mouse. Puoi controllarlo da un'applicazione nativa o da un'applicazione web, direttamente tramite Bluetooth. Dopodiché ho creato un'applicazione web, un semplice modello che gli utenti possono estendere come preferiscono utilizzando i componenti web. Grazie a questo, chiunque può controllare il proprio computer con un'app web che ho creato in un paio d'ore su uno smartphone Android.
Una volta completata la configurazione, chiunque in qualsiasi parte del mondo abbia una certa esperienza web potrà creare, in pochi giorni, una soluzione molto personalizzata per chiunque abbia una disabilità e voglia controllare il proprio computer. La cosa bella è che puoi portarlo con te ovunque e utilizzarlo anche con altri dispositivi. Sarà la stessa esperienza. Per me, la portabilità e l'accessibilità del dispositivo sono molto importanti perché le persone non sono più costrette a utilizzare i propri dispositivi e non sono più limitate a una posizione.
Thomas: hai avuto la possibilità di testare il dispositivo nella realtà?
Lars: in realtà durante il mio ultimo viaggio in Messico ne ho parlato con un professionista del web che vive lì; ora sta valutando le possibilità di utilizzare il dispositivo localmente. Lì l'attrezzatura è molto costosa, ma un dongle USB di solito costa circa dieci dollari. Al momento sta verificando se possiamo creare configurazioni locali per provarlo. Tuttavia, non ho ancora effettuato prove ufficiali qui in Danimarca.
Thomas: molti dispositivi progettati per aiutare le persone con disabilità sono molto costosi. Hai intenzione di collaborare con una determinata azienda e di metterla in produzione a una frazione del prezzo di quell'attrezzatura costosa?
Lars: Sì, assolutamente. Ne ho già parlato con un produttore di hardware locale. Ovviamente, il dispositivo non sostituirà tutte queste soluzioni altamente specializzate, ma può essere il primo passo per creare qualcosa di più grande, ad esempio l'utilizzo del riconoscimento vocale, già disponibile per le tecnologie web. Sarà un modo semplice per controllare i dispositivi utilizzando il tuo smartphone Android; può funzionare con qualsiasi tipo di dispositivo.
Il solo fatto di poter creare ciò che vuoi sul web e utilizzarlo per controllare qualsiasi computer host apre un sacco di possibilità.
Thomas: Il progetto Zephyr verrà rilasciato come open source? Che tipo di licenza utilizzi? Sono previsti piani di monetizzazione del progetto?
Lars: Sì, la soluzione è open source. Non ho assegnato una licenza specifica, ma penso che Apache 2.0 sia la scelta migliore. Molte grandi aziende utilizzano questa licenza, inclusa Google. Quando ho lavorato a SimpleMouse, non pensavo alla monetizzazione del progetto, non era il mio obiettivo. Tuttavia, ritengo che avrebbe senso provare a metterlo in produzione in qualche modo, con i relativi costi. L'obiettivo finale è renderlo disponibile. Mi piacerebbe vederlo implementato a basso costo e su larga scala.