In evidenza per la community GDE: Lars Knudsen

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

Monica Janota
Monika Janota

Lars che presenta sul palco con altri due relatori.

Monika: Cosa ti ha spinto a diventare uno sviluppatore? Qual è il tuo obiettivo professionale attuale?

Lars: Ho conseguito la laurea magistrale in ingegneria, ma in realtà il mio interesse per la tecnologia è iniziato molto prima. Quando ero un bambino, negli anni '80, mio padre possedeva un'azienda informatica che lavorava con il graphic design. A volte, soprattutto durante le vacanze estive, mi portava a lavorare con lui. A volte, alcuni dei suoi dipendenti mi tennero d'occhio. C'è stato un ragazzo davvero intelligente che una volta mi ha detto: "Lars, ho bisogno di lavorare un po', ma ecco un manuale C e c'è un computer laggiù. Ecco come avviare un compilatore C. Se hai qualche domanda, vieni a chiedermelo". Ho iniziato a scrivere brevi testi che sono stati tradotti in qualcosa che il computer poteva comprendere. Mi sembrava magico. Avevo 11 anni quando ho iniziato e, intorno alla seconda media, potevo creare piccole applicazioni per i miei compagni o da usare 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é ne conosci un po' hai la sensazione di saper fare tutto, ma col tempo impari che ogni azienda ha un certo modo di fare le cose.

Dopo alcuni anni di lavoro per una società medica, ho avviato la mia attività nel 1999. Ho lavorato come freelance e, grazie a ciò, ho avuto la possibilità di conoscere rapidamente più organizzazioni. Dopo aver completato i primi cinque contratti, ho scoperto che tutte le aziende pensano di aver trovato la configurazione perfetta, ma ognuna è completamente diversa. A quel tempo, ero anche esposta a molte tecnologie, sistemi operativi e così via. Quando avevo vent'anni, il mio modo di pensare è cambiato. All'inizio, mi concentravo rigorosamente su una tecnologia e volevo saperne di più su questa tecnologia. Con il tempo, ho iniziato a pensare a combinare le tecnologie come un modo per migliorare le nostre vite. Mi interessa in particolare colmare il divario tra il team A e B nel mondo. Cerco di trasferire il maggior numero possibile di conoscenze nelle regioni in cui le persone non hanno il lusso di possedere un computer o studiare all'università senza costi.

Continuo a lavorare come appaltatore per partner esterni ma, quando possibile, cerco di scegliere progetti che abbiano un impatto positivo sull'ambiente o sulla società. Attualmente sto lavorando su un software incorporato per un'azienda produttrice di apparecchi acustici chiamata Oticon. Per quanto riguarda il software, ho lavorato su qualsiasi cosa, dai più piccoli microcontroller al cloud; gran parte di quello che faccio ruota intorno al web. Sto cercando di combinare le tecnologie quando ha senso.

Monika: hai partecipato alle community di sviluppatori prima di entrare nel programma Esperti Google per gli sviluppatori?

Lars: Sì, ho partecipato a incontri e conferenze. Mi sono messa in contatto con la comunità per la prima volta mentre lavoravo per Nokia. Intorno al 2010 ho conosciuto Kenneth Rohde Christiansen, che è diventato una GDE prima di me. Mi ha ispirato a vedere come le tecnologie web possono essere utili per gli aspiranti professionisti del settore nei paesi in via di sviluppo. Lo sviluppo e il deployment di soluzioni utilizzando C++, C# o Java richiede alcuni anni di esperienza, ma chiunque abbia accesso a un computer, un browser e un blocco note può iniziare a sviluppare applicazioni basate sul web e imparare molto rapidamente. È possibile creare un'applicazione completamente funzionale con risorse limitate e crescere da zero. Ecco perché chiamo il web uno stack tecnologico molto democratizzante.

Ma tornando alla community, dopo un po' mi sono interessata alla standardizzazione del web e ai problemi che le tecnologie web all'avanguardia potrebbero risolvere. Ho sperimentato nuove funzionalità in un browser prima del rilascio. All'epoca lavoravo per Nokia, sviluppando per un dispositivo di punta basato su Linux, l'N9. Il browser che abbiamo creato era basato su WebKit e ho avuto un'ottima esperienza nello sviluppo delle funzionalità per un grande progetto open source. Negli anni successivi all'uscita da Nokia, ho partecipato a conferenze e incontri web, quindi nel 2017 ha avuto senso entrare nella community GDE.

Adoro il lavoro della community e tutto ciò che stiamo facendo insieme, in particolare i Chrome Developer Summit pre-pandemia, in cui ho potuto dare il mio contributo per lo stand, insieme a una serie di fantastici ingegneri di Google e altri GDE.

Monika: Che consiglio daresti a una giovane sviluppatrice che ha appena iniziato la propria carriera professionale e non sa bene quale percorso intraprendere?

Lars: Direi che, in base alla mia esperienza, se puoi permettertelo, direi che dovresti collaborare con un paio di aziende diverse. In questo modo, sarai esposto al codice in molte forme e fasi di sviluppo diverse. Imparerai a conoscere una moltitudine di sistemi operativi e lingue e imparerai a risolvere i problemi in molti modi. Tutto questo mi ha aiutato molto. Ho acquisito esperienza come Senior Developer quando avevo vent'anni. Questo approccio ti aiuterà a raggiungere i tuoi obiettivi professionali più velocemente.

Oltre a ciò, divertiti, esplora e divertiti con l'hardware e il software. Considera l'idea di costruire qualcosa che risolva un problema reale, magari per i tuoi amici, i tuoi familiari o un'attività locale. Non avere paura di lanciarti in qualcosa che non hai mai fatto prima.

Monika: Cosa riserva il futuro per le tecnologie web?

Lars: Penso che da un paio d'anni il web sia stato in grado di fornire una piattaforma per applicazioni di grandi dimensioni sul campo, sia per i consumatori che per le aziende. Per quanto riguarda il lato server, le tecnologie web offrono un'esperienza fluida, in particolare per gli sviluppatori di frontend che vogliono creare un componente di backend. Per loro è più facile iniziare subito. Conosco chi usava sia Firebase che Heroku per svolgere il lavoro. E questa tendenza crescerà: le tecnologie web saranno sufficienti per creare soluzioni complesse di qualsiasi tipo. Credo che Web Capabilities - Project Fugu 🐡 sprigiona davvero questo potenziale.

Guardando la questione da un punto di vista leggermente diverso, penso anche che se forniamo documentazione completa e articoli di approfondimento non solo in inglese ma anche in altre lingue (ad esempio spagnolo e portoghese), sbloccheremmo tantissime potenzialità in America Latina e, ovviamente, in altre regioni. Spesso gli sviluppatori non conoscono l'inglese abbastanza bene da comprendere appieno tutti gli articoli pertinenti. Dovremmo anche dare loro l'opportunità di imparare il prima possibile, ancor prima di iniziare l'università, pur restando nelle loro città natali. Potrebbero usare queste competenze per aiutare le comunità locali e le attività prima di uscire di casa e forse non tornare mai più.

Thomas: Hai fatto molta strada dallo sviluppo C su un computer a caso all'hacking dell'hardware. Come hai fatto?

Lars: Ho iniziato a smontare molto hardware che avevo in casa. Mio padre non era sempre felice quando non riuscivo a rimetterlo insieme. Con il tempo ho imparato a costruire alcuni piccoli dispositivi, ma il lancio è davvero decollato molto più tardi, più o meno nel periodo in cui sono entrato in Nokia, dove ho iniziato a creare la mia esperienza di incorporamento. Ho avuto l'opportunità di realizzare piccoli salvaschermi, componenti per i telefoni Series 30. Ero molto appassionata e sapevo davvero pensare fuori dagli schemi. Mi è stato assegnato un'attività per creare un gioco Snake per quei dispositivi. È stata un'esperienza molto interessante. La differenza principale tra la creazione di sistemi incorporati e la maggior parte degli altri aspetti (incluso il web) è che si lascia un'impronta ridotta: non hai molto spazio o memoria da utilizzare. Durante la creazione di Snake, la RAM che avevo a disposizione era inferiore a un terzo del buffer del frame (circa 120 x 120 pixel). Ho dovuto trovare dei modi per riunire in modo algoritmico i componenti sullo schermo, in modo che apparissero statici, come se fossero riquadri. Ho imparato molto, questo è stato il passaggio da sistemi più grandi a soluzioni piccole e incorporate.

Thomas: le competenze di un tipico sviluppatore di frontend sono molto diverse da quelle di una persona che crea hardware incorporato. Come incoraggeresti uno sviluppatore di frontend a esaminare l'hardware e iniziare a pensare in binario?

Lars: Penso che la prima cosa da fare sia esaminare alcune delle API Fuugu che funzionano in Chrome ed Edge e che sono integrate in tutti i principali sistemi di oggi. All'inizio non ti serve altro.

Un'altra cosa è che le toolchain per la creazione di soluzioni incorporate hanno una curva di apprendimento ripida. Se vuoi creare il tuo hardware personalizzato, inizia con Arduino o ESP32, che sia facile da acquistare ed economico. Con il giusto ambiente di sviluppo, puoi rendere il tuo progetto operativo in pochissimo tempo.

In alternativa, puoi acquistare un dispositivo per il monitoraggio del battito cardiaco o un'unità multisensore, che utilizzano già i servizi Bluetooth GATT, in modo da non dover creare un hardware o un firmware personale: puoi utilizzare ciò che è già presente e iniziare a sperimentare con l'API Web Bluetooth per iniziare a comunicare con questo dispositivo.

Inoltre, esistono dispositivi che utilizzano un protocollo seriale: per questi dispositivi puoi usare l'API Web Serial (anche Fugu). Di recente ho cercato di utilizzare l'API WebHID, che consente di parlare con tutti i dispositivi con interfaccia umana a cui hanno accesso tutti. Nel mio seminterrato ne ho trovate alcune che non erano supportate da alcun sistema operativo da anni, ma grazie alla decompilazione ho impiegato alcune ore per riattivarle.

Ci sono diversi approcci a seconda di ciò che vuoi costruire, ma per uno sviluppatore web direi di procurarti un'unità sensore solido, magari un Thingy 52 di Nordic Semiconductor; ha molti sensori e puoi collegarti alla tua applicazione web con pochissimo sforzo.

Thomas: Connettersi al dispositivo è il primo passo, ma parlarne in modo efficace è un'altra cosa. Come hai fatto a non arrenderti dopo aver affrontato gli ostacoli? Cosa ti ha spinto a continuare a lavorare?

Lars: Personalmente, per me l'aspetto sociale della risoluzione di un problema è stato il più importante. Quando ho iniziato a lavorare ai miei progetti incorporati, avevo la vision e il desiderio di creare un laboratorio scientifico in un unico box per le regioni in via di sviluppo. Mia moglie è messicana e ho visto alcune delle scuole lì; alcune che si trovano al di fuori delle grandi città sono piuttosto sconfortanti, senza accesso ai materiali e alle attrezzature di cui disponiamo nella nostra regione.

La passione per la creazione di qualcosa che possa essere potenzialmente usata per aiutare gli altri è ciò che mi ha spinta a procedere. Ho anche apprezzato il supporto della community. Ho contattato alcune persone di Google e sono state estremamente utili e hanno risposto pazientemente a tutte le mie domande.

Thomas: Molte persone hanno in casa dei componenti hardware, ma non sanno cosa farne. Come trovi l'ispirazione per tutti i tuoi fantastici progetti, in particolare quello sotto il nome lavorativo SimpleMouse?

Lars: Di recente ho ripristinato molti vecchi componenti hardware, ma per questo progetto particolare (il nome non è ancora stato impostato, ma che chiamiamo SimpleMouse) ho usato la mia esperienza. Ho già lavorato con alcune soluzioni di accessibilità e ho visto che alcune non funzionano più; per eseguirle, è necessario installare un vecchio Windows XP con un certo software. Non è possibile aggiornarle, è possibile usarle solo a casa perché non è possibile spostare la configurazione.

Per questo motivo, mi sono chiesto come combinare le mie abilità provenienti dal mondo incorporato con il progetto Fugu e ciò che ora è possibile sul web per creare hardware economico e conveniente combinato con software di facile comprensione su entrambi i lati, in modo che le persone possano basarsi su questo.

Per quel particolare progetto, ho preso un piccolo dongle USB con un chip riflessivo, il nRF52840. Comunica con Bluetooth da un lato e USB dall'altro. Fondamentalmente, puoi programmarlo in modo che sia qualsiasi cosa su entrambi i lati. Poi ho pensato ai dispositivi per controllare un computer: un mouse e una tastiera. Per alcune persone con disabilità potrebbe essere difficile usare questi dispositivi e volevo aiutarli.

La prima cosa che ho fatto è stato assicurarmi che qualsiasi sistema operativo vedesse la chiavetta USB come un mouse. Puoi controllarlo da un'applicazione nativa o web direttamente tramite Bluetooth. Poi ho creato un'applicazione web: un semplice modello che le persone possono ampliare nel modo che preferiscono utilizzando i componenti web. Grazie a ciò, tutti possono controllare il proprio computer con un'app web che ho creato in appena un paio d'ore su uno smartphone Android.

Questa configurazione consentirà a chiunque nel mondo abbia un'esperienza web di creare, nel giro di pochi giorni, una soluzione molto personalizzata per chiunque abbia una disabilità e voglia controllare il proprio computer. La buona notizia è che puoi portarlo con te ovunque vai e utilizzarlo anche con altri dispositivi. L'esperienza sarà la stessa. Per me, la portabilità e l'economicità del dispositivo sono molto importanti perché le persone non sono più costrette a usare i propri dispositivi e non sono più limitate a un'unica posizione.

Thomas: Hai avuto modo di testare il dispositivo sul mondo reale?

Lars: Durante il mio ultimo viaggio in Messico ne ho parlato con un professionista del web che viveva lì; ora sta valutando la possibilità di utilizzare il dispositivo a livello locale. Laggiù l'attrezzatura è molto costosa, ma un dongle USB di solito costa circa dieci dollari. Ora sta controllando se possiamo creare delle configurazioni locali lì per provarlo. Ma non ho ancora fatto prove ufficiali qui in Danimarca.

Thomas: molti dispositivi progettati per aiutare le persone con disabilità sono molto costosi. Hai intenzione di collaborare con una particolare azienda e metterla in produzione a una frazione del prezzo di quella costosa attrezzatura?

Lars: Sì, certamente. Ne ho già parlato con un produttore locale di hardware. Ovviamente, il dispositivo non sostituirà tutte queste soluzioni altamente specializzate, ma potrebbe essere il primo passo per costruire qualcosa di più grande, ad esempio utilizzando il riconoscimento vocale, già disponibile per le tecnologie web. Sarà un modo semplice per controllare i dispositivi usando il vostro telefono Android; potrà funzionare con qualsiasi tipo di dispositivo.

Il semplice fatto di poter creare tutto quello che vuoi sul web e di utilizzarlo per controllare qualsiasi computer host ti consente di aprire un gran numero di possibilità.

Thomas: Rilasci il tuo progetto Zephyr come open source? Che tipo di licenza usi? Prevedi di monetizzare il progetto?

Lars: Sì, la soluzione è open source. Non ho assegnato una licenza specifica, ma penso che Apache 2.0 sarebbe la soluzione. Molte grandi aziende utilizzano questa licenza, tra cui Google. Quando ho lavorato a SimpleMouse, non avevo pensato a monetizzare il progetto: non era questo il mio obiettivo. Ma penso anche che avrebbe senso provare a metterla in produzione in qualche modo, con questo costo. L'obiettivo principale è renderli disponibili. Mi piacerebbe vederne l'implementazione a basso costo e su larga scala.