In evidenza per la community GDE: Lars Knudsen

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

Monika Janota
Monika Janota

Lars presenta sul palco con altri due relatori.

Monika: Cosa ti ha spinto a diventare uno sviluppatore? Qual è la tua attuale priorità professionale?

Lars: Ho conseguito la laurea in ingegneria, ma in realtà il mio interesse per la tecnologia è iniziato molto prima. Quando ero bambino negli anni '80, mio padre era titolare di un'azienda informatica che si occupava di progettazione grafica. A volte, soprattutto durante le vacanze estive, mi portava a lavorare con lui. A volte alcuni dei suoi dipendenti mi tengono d'occhio. C'era un ragazzo davvero intelligente che una volta mi disse: "Lars, ho bisogno di lavorare un po', ma ecco un manuale di C e c'è un computer lì. Ecco come avviare un compilatore C. Se hai domande, vieni a trovarmi." Iniziai a scrivere brevi testi che venivano tradotti in qualcosa di comprensibile al computer. Mi è sembrato magico. All'inizio avevo 11 anni e, intorno alla seconda media, potevo creare piccole applicazioni per i miei compagni di classe o da usare a scuola. Ecco come è iniziato.

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, hai la sensazione di poter fare tutto, ma col tempo impari ogni azienda ha un determinato modo di fare le cose.

Dopo alcuni anni di lavoro per un'azienda medica, ho avviato la mia attività nel 1999. Ho lavorato come freelance e, grazie a questo, ho avuto la possibilità di conoscere rapidamente più organizzazioni. Dopo aver concluso i primi cinque contratti, ho scoperto che ogni azienda pensa di aver trovato l'allestimento perfetto, ma che sono tutte completamente diverse. All'epoca ero anche esposto a molte tecnologie, sistemi operativi diversi e così via. All'inizio dei miei vent'anni, il mio approccio è cambiato. All'inizio ero rigorosamente concentrata 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. Mi interessa particolarmente colmare il divario tra ciò che chiamiamo il team A e il team B nel mondo. Cerco di trasferire quante più conoscenze possibili in regioni in cui le persone non possono permettersi il lusso di possedere un computer o studiare senza costi all'università.

Continuo a lavorare come appaltatore per partner esterni ma, quando possibile, cerco di scegliere progetti che abbiano un qualche tipo di impatto positivo sull'ambiente o sulla società. Attualmente sto lavorando al software incorporato per conto di un'azienda di apparecchi acustici chiamata Oticon. Dal punto di vista del software, ho lavorato su qualsiasi argomento, dai microcontroller più piccoli al cloud; gran parte di ciò che faccio ruota intorno al web. Sto cercando di combinare le tecnologie ogni volta che ha senso.

Monika: Prima di partecipare al programma Esperti Google Developers, facevi parte delle community di sviluppatori?

Lars: Sì, ho partecipato a meetup e conferenze. Ho iniziato a entrare in contatto con la community mentre lavoravo per Nokia. Intorno al 2010, ho incontrato Kenneth Rohde Christiansen, che è diventato una GDE prima di me. Mi ha ispirato a capire come le tecnologie web possano essere utili per gli aspiranti professionisti della tecnologia nei paesi in via di sviluppo. Lo sviluppo e il deployment di soluzioni utilizzando C++, C# o Java richiedono alcuni anni di esperienza, ma chiunque abbia accesso a un computer, a un browser e a 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 iniziare da zero. È per questo che definisco il web uno stack tecnologico molto democratizzante.

Ma tornando alla community, dopo un po' mi sono interessato alla standardizzazione del web e ai problemi che avrebbero potuto risolvere le tecnologie web periferiche. Ho sperimentato nuove funzionalità in un browser prima del rilascio. All'epoca lavoravo per Nokia, sviluppando 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 di funzionalità per un grande progetto open source. Negli anni dopo aver lasciato Nokia, ho partecipato a conferenze web e incontri, quindi è stato sensato entrare a far parte della community di GDE nel 2017.

Adoro il lavoro della community e tutto quello che stiamo facendo insieme, in particolare i Chrome Developer Summit pre-pandemia, dove ho potuto aiutare con il lavoro dello stand insieme a un gruppo di fantastici ingegneri Google e altri GDE.

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

Lars: Direi per la mia esperienza, se puoi permettertelo, prendi in considerazione l'idea di collaborare come freelance per 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. Questo mi ha aiutato molto. Ho acquisito esperienza come sviluppatore senior a vent'anni. Questo approccio ti aiuterà a raggiungere i tuoi obiettivi professionali più velocemente.

Inoltre, divertiti, esplora e gioca con l'hardware e il software. Prova a creare qualcosa che risolva un problema reale, magari per i tuoi amici, i tuoi familiari o un'attività locale. Non avere paura di tuffarsi in qualcosa che non hai mai fatto prima.

Monika: Che cosa riserva il futuro per le tecnologie web?

Lars: Penso che ormai da un paio d'anni il web sia in grado di fornire una piattaforma per applicazioni su larga scala, sia per i consumatori che per le aziende. Per quanto riguarda il lato server, le tecnologie web offrono un'esperienza fluida, soprattutto per gli sviluppatori di frontend che desiderano creare un componente di backend. Per loro è più facile iniziare subito. Conosco persone che usavano sia Firebase che Heroku per svolgere il loro lavoro. Questa tendenza crescerà: le tecnologie web saranno sufficienti per creare soluzioni complesse di qualsiasi tipo. Credo che le funzionalità web - Project Fugu 🐡 sfruttino davvero questo potenziale.

Osservando la situazione da un punto di vista leggermente diverso, penso anche che se forniamo una documentazione completa e articoli approfonditi non solo in inglese, ma anche in altre lingue (ad esempio spagnolo e portoghese), sbloccheremmo molto potenziale in America Latina e, ovviamente, in altre regioni. Gli sviluppatori spesso non conoscono abbastanza bene l'inglese per comprendere appieno tutti gli articoli pertinenti. Dovremmo anche dare loro l'opportunità di apprendere il prima possibile, ancora prima di iniziare l'università, quando si trovano ancora nella loro città natale. Potrebbero usare queste competenze per aiutare le comunità e le attività locali prima di uscire di casa e magari di non farle mai più ritorno.

Thomas: Sei passato molto dallo sviluppo C su un computer casuale all'hacking dell'hardware. Come ci sei riuscito?

Lars: Ho iniziato a smontare gran parte dell'hardware che avevo a casa. Mio padre non era sempre felice quando non potevo rimettermi insieme. Con il tempo ho imparato a realizzare alcuni piccoli dispositivi, ma è decollato molto più tardi, quando mi sono unito a Nokia, dove ho acquisito la mia esperienza di incorporamento. Ho avuto la possibilità di costruire piccoli salvaschermi, componenti per i telefoni Serie 30. Mi piaceva molto e potevo davvero pensare fuori dagli schemi. Mi hanno 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 delle altre cose (incluso il web) è che si lasciano un ingombro minimo: non si ha molto spazio o memoria da utilizzare. Durante la creazione di Snake, la RAM che avevo a disposizione era meno di un terzo del buffer del frame (circa 120 x 120 pixel). Dovevo trovare dei modi per ricollegare i componenti in modo algoritmico sullo schermo, in modo che fossero statici, come se fossero riquadri. Ho imparato molto, è stato il passaggio da sistemi più grandi a piccole soluzioni incorporate.

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

Lars: Penso che il primo passo sia esaminare alcune delle API Fugu che funzionano in Chrome ed Edge e che sono integrate in tutti i principali sistemi oggi. Non ti serve altro.

Un altro aspetto è 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, un prodotto facile da acquistare e abbastanza economico. Con il giusto ambiente di sviluppo, puoi rendere operativo il tuo progetto in pochissimo tempo.

Puoi anche acquistare un cardiofrequenzimetro o un'unità multisensore, che utilizzano già servizi Bluetooth GATT, quindi non devi creare il tuo hardware o firmware: puoi utilizzare ciò che è già disponibile e iniziare a sperimentare con l'API Web Bluetooth per iniziare a comunicare con questo prodotto.

Esistono anche dispositivi che utilizzano un protocollo seriale e per questi ultimi puoi usare l'API Web Serial (anche Fugu). Recentemente stavo cercando di utilizzare l'API WebHID, che ti consente di parlare con tutti i dispositivi con interfaccia umana a cui tutti hanno accesso. Ne ho trovate alcune vecchie nel seminterrato che non erano supportate da nessun sistema operativo per anni, ma grazie al reverse engineering ho impiegato alcune ore per riattivarle.

Ci sono approcci diversi a seconda di ciò che si vuole costruire, ma a uno sviluppatore web direi, ottenere una solida unità di sensore, forse un Thingy 52 di Nordic Semiconductor; ha molti sensori e puoi collegarlo alla tua applicazione web con pochissimo sforzo.

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

Lars: Per me personalmente l'aspetto sociale della risoluzione di un problema è stato l'aspetto più importante. Quando ho iniziato a lavorare ai miei progetti incorporati, avevo una vision e il desiderio di creare un laboratorio scientifico in una scatola per lo sviluppo di regioni. Mia moglie è messicana e ho visto alcune scuole lì. alcune che si trovano al di fuori delle grandi città sono piuttosto squallide, senza accesso ai materiali e alle attrezzature di cui disponiamo nella nostra parte del mondo.

La passione per creare qualcosa che possa essere potenzialmente utilizzato per aiutare altre persone è questo che mi ha fatto andare avanti. Ho anche apprezzato molto il supporto della community. Ho contattato alcune persone di Google che sono state estremamente utili e hanno risposto con pazienza a tutte le mie domande.

Thomas: Molte persone hanno una sorta di hardware in casa, ma non sanno come farne. Come trovi l'ispirazione per tutti i tuoi fantastici progetti, in particolare quello con il nome ufficiale SimpleMouse?

Lars: Beh, di recente ho fatto rivivere molti vecchi hardware, ma per questo particolare progetto (il nome non era ancora stato definito, ma lo chiamiamo SimpleMouse) ho usato la mia esperienza. In precedenza ho lavorato con alcune soluzioni di accessibilità e ho visto che alcune non funzionano più; per eseguirli devi avere un vecchio Windows XP con determinati software. Non puoi aggiornarli davvero, puoi usarli solo a casa perché non puoi spostare la configurazione.

Per questo motivo, mi sono chiesto come unire le mie competenze derivanti dal mondo incorporato con il progetto Fugu e cosa è ora possibile sul web per creare hardware economico e conveniente combinato con software facile da capire su entrambi i lati, in modo che le persone possano basarsi su questo.

Per quel particolare progetto, ho preso una piccola chiavetta USB con un chip riflessivo, l'nRF52840. Comunica con il Bluetooth da un lato e con USB dall'altro. In sostanza, puoi programmarlo in modo che sia qualsiasi cosa da entrambe le parti. 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 la chiavetta USB come un mouse. Puoi controllarlo da un'applicazione nativa o web direttamente in Bluetooth. Poi ho creato un'applicazione web, un semplice modello che consente di estendere le modalità di utilizzo dei 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.

La configurazione consentirà a chiunque nel mondo che abbia un'esperienza sul web di creare, in pochi giorni, una soluzione altamente personalizzata per chiunque abbia una disabilità e voglia controllare il proprio computer. La cosa interessante è che puoi portarlo con te ovunque tu vada e utilizzarlo anche con altri dispositivi. Sarà la stessa esperienza. Secondo me, la portabilità e la convenienza del dispositivo sono molto importanti perché le persone non sono più costrette a usare i propri dispositivi e non sono più limitate a un unico posto.

Thomas: Hai avuto modo di testare il dispositivo nella vita reale?

Lars: In realtà, durante il mio ultimo viaggio in Messico, ne ho parlato con un professionista del web che vive lì. e ora sta valutando le possibilità di utilizzare il dispositivo localmente. Laggiù l'apparecchiatura è davvero costosa, ma una chiavetta USB normalmente costa circa dieci dollari USA. Ora sta controllando se è possibile creare degli allestimenti locali per provarci. Non ho ancora svolto 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 per una frazione del prezzo di quella costosa attrezzatura?

Lars: Sì, certamente. Ho già parlato di questo con un produttore di hardware locale. Ovviamente il dispositivo non sostituirà tutte quelle soluzioni altamente specializzate, ma può essere il primo passo per realizzare 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 tuo smartphone Android; può funzionare con qualsiasi tipo di dispositivo.

Il fatto di poter creare tutto ciò che si vuole sul web e utilizzarlo per controllare qualsiasi computer host apre molte possibilità.

Thomas: Stai rilasciando il tuo progetto Zephyr come open source? Che tipo di licenza usi? Intendi monetizzare il progetto?

Lars: Sì, la soluzione è open source. Non ho applicato una licenza specifica, ma penso che Apache 2.0 sarebbe la strada da percorrere. Questa licenza viene utilizzata da molte grandi aziende, inclusa Google. Quando ho lavorato a SimpleMouse non pensavo di monetizzare il progetto: non era il mio obiettivo. Ma penso anche che sarebbe sensato provare a metterlo in produzione in qualche modo, a fronte di un costo. L'obiettivo ultimo è renderlo disponibile. Mi piacerebbe vedere che venga implementata a basso costo e su larga scala.