Lars Knudsen est un expert Google en développement. Nous lui avons demandé comment un appareil à 10 $peut rendre les ordinateurs plus accessibles aux personnes ayant un handicap.

Monika:Qu'est-ce qui vous a inspiré pour devenir développeur ? Sur quoi vous concentrez-vous actuellement professionnellement ?
Lars:J'ai obtenu un master en ingénierie, mais mon intérêt pour la technologie a commencé bien plus tôt. Dans les années 1980, quand j'étais enfant, mon père possédait une entreprise informatique spécialisée dans la conception graphique. Parfois, surtout pendant les vacances d'été, il m'emmenait travailler avec lui. Parfois, certains de ses employés me surveillaient. Un jour, un type très intelligent m'a dit : "Lars, je dois faire un travail, mais voici un manuel C et un ordinateur là-bas. Voici comment démarrer un compilateur C. Si vous avez des questions, venez me les poser." J'ai commencé à écrire de courts textes qui étaient traduits en quelque chose que l'ordinateur pouvait comprendre. Cela me semblait magique. J'avais 11 ans quand j'ai commencé. Vers la sixième, j'ai pu créer de petites applications pour mes camarades de classe ou à utiliser à l'école. C'est ainsi que tout a commencé.
Au fil des ans, j'ai travaillé pour de nombreuses entreprises, dont Nokia, Maersk et Openwave. Au début, comme dans de nombreuses autres professions, vous avez l'impression de pouvoir tout faire, car vous savez un peu. Mais avec le temps, vous apprenez que chaque entreprise a sa façon de faire.
Après quelques années passées dans une entreprise de produits médicaux, j'ai créé ma propre entreprise en 1999. J'ai travaillé en tant que consultant indépendant et, grâce à cela, j'ai eu la chance de découvrir rapidement plusieurs organisations. Après avoir rempli les cinq premiers contrats, j'ai constaté que chaque entreprise pense avoir trouvé la configuration parfaite, mais qu'elles sont toutes complètement différentes. À l'époque, j'ai également été exposé à de nombreuses technologies et systèmes d'exploitation différents. Vers mes 20 ans, mon état d'esprit a changé. Au début, je me concentrais strictement sur une seule technologie et je voulais tout savoir à son sujet. Au fil du temps, j'ai commencé à envisager de combiner les technologies pour améliorer nos vies. Je m'intéresse particulièrement à réduire l'écart entre ce que nous appelons l'équipe A et l'équipe B dans le monde. J'essaie de transmettre autant de connaissances que possible dans les régions où les gens n'ont pas le luxe de posséder un ordinateur ou d'étudier à l'université sans frais.
Je continue à travailler en tant que sous-traitant pour des partenaires externes, mais dans la mesure du possible, j'essaie de choisir des projets qui ont un impact positif sur l'environnement ou la société. Je travaille actuellement sur des logiciels intégrés pour une entreprise de prothèses auditives appelée Oticon. En termes de logiciels, j'ai travaillé sur tout, des microcontrôleurs les plus petits au cloud. Une grande partie de mon travail tourne autour du Web. J'essaie de combiner les technologies chaque fois que cela a du sens.
Monika: Aviez-vous déjà participé à des communautés de développeurs avant de rejoindre le programme Experts Google Developers ?
Lars:Oui, j'ai participé à des rencontres et à des conférences. J'ai découvert la communauté pour la première fois lorsque je travaillais pour Nokia. Vers 2010, j'ai rencontré Kenneth Rohde Christiansen, qui est devenu GDE avant moi. Il m'a inspiré pour découvrir comment les technologies Web peuvent être utiles aux professionnels de la technologie en herbe dans les pays en développement. Le développement et le déploiement de solutions en C++, C# ou Java nécessitent quelques années d'expérience, mais toute personne ayant accès à un ordinateur, à un navigateur et à un bloc-notes peut commencer à développer des applications Web et apprendre très rapidement. Vous pouvez créer une application entièrement fonctionnelle avec des ressources limitées et partir de zéro. C'est pourquoi je considère le Web comme une pile technologique très démocratique.
Mais revenons à la communauté. Au bout d'un certain temps, je me suis intéressé à la standardisation du Web et aux problèmes que les technologies Web de pointe pouvaient résoudre. J'ai testé les nouvelles fonctionnalités dans un navigateur avant leur sortie. Je travaillais pour Nokia à l'époque, en développant pour un appareil phare basé sur Linux, le N9. Le navigateur que nous avons créé était basé sur WebKit. J'ai ainsi acquis une excellente expérience dans le développement de fonctionnalités pour un grand projet Open Source. Après avoir quitté Nokia, j'ai participé à des conférences et à des rencontres Web. Il était donc logique de rejoindre la communauté GDE en 2017.
J'apprécie vraiment le travail de la communauté et tout ce que nous faisons ensemble, en particulier les Chrome Developer Summits d'avant la pandémie, où j'ai pu aider à tenir le stand avec un groupe d'ingénieurs Google et d'autres GDE géniaux.
Monika:Quel conseil donneriez-vous à un jeune développeur qui vient de commencer sa carrière professionnelle et ne sait pas quel chemin suivre ?
Lars: D'après mon expérience, si vous pouvez vous le permettre, envisagez de travailler en indépendant pour plusieurs entreprises. Vous serez ainsi exposé à du code sous de nombreuses formes et à différents stades de développement. Vous allez découvrir de nombreux systèmes d'exploitation et langages, et apprendre à résoudre les problèmes de différentes manières. Cela m'a beaucoup aidé. J'ai acquis de l'expérience en tant que développeur senior dans la vingtaine. Cette approche vous aidera à atteindre vos objectifs professionnels plus rapidement.
En plus de cela, amusez-vous, explorez, jouez avec le matériel et les logiciels. Pensez à créer quelque chose qui résout un problème réel, peut-être pour vos amis, votre famille ou un commerce local. N'hésitez pas à vous lancer dans quelque chose que vous n'avez jamais fait auparavant.
Monika:Que nous réserve l'avenir des technologies Web ?
Lars:Depuis quelques années, le Web est parfaitement capable de fournir une plate-forme pour de grandes applications de terrain, à la fois pour les consommateurs et pour les entreprises. Côté serveur, les technologies Web offrent une expérience fluide, en particulier pour les développeurs front-end qui souhaitent créer un composant backend. Il est maintenant plus facile pour eux de se lancer. Je connais des personnes qui utilisaient à la fois Firebase et Heroku pour accomplir cette tâche. Cette tendance va s'accentuer : les technologies Web suffiront à créer des solutions complexes de toutes sortes. Je pense que les fonctionnalités Web – Project Fugu 🐡 permettent de vraiment exploiter ce potentiel.
D'un point de vue légèrement différent, je pense également que si nous fournissons une documentation complète et des articles détaillés non seulement en anglais, mais aussi dans d'autres langues (espagnol et portugais, par exemple), nous pourrions exploiter tout le potentiel de l'Amérique latine et d'autres régions, bien sûr. Les développeurs de ces pays ne maîtrisent souvent pas suffisamment l'anglais pour comprendre pleinement tous les articles pertinents. Nous devons également leur donner la possibilité d'apprendre le plus tôt possible, même avant de commencer l'université, lorsqu'ils sont encore dans leur ville natale. Ils peuvent utiliser ces compétences pour aider les communautés et les entreprises locales avant de quitter leur pays, et peut-être ne jamais y revenir.
Thomas:Vous avez parcouru un long chemin depuis le développement en C sur un ordinateur aléatoire jusqu'au piratage matériel. Comment avez-vous fait ?
Lars:J'ai commencé à démonter beaucoup de matériel que j'avais chez moi. Mon père n'était pas toujours content quand je ne parvenais pas à les remonter. Au fil du temps, j'ai appris à créer de petits appareils, mais cela a vraiment pris son envol beaucoup plus tard, au moment où j'ai rejoint Nokia, où j'ai acquis mon expérience de l'intégration. J'ai eu la chance de créer de petits économiseurs d'écran, des composants pour les téléphones de la série 30. J'étais vraiment passionné par ce projet et je pouvais vraiment sortir des sentiers battus. Il m'a demandé de créer un jeu Snake pour ces appareils. C'était une expérience très intéressante. La principale différence entre la création de systèmes embarqués et la plupart des autres éléments (y compris le Web) est que vous laissez une empreinte réduite : vous n'avez pas beaucoup d'espace ni de mémoire à utiliser. Lors de la compilation de Snake, la RAM dont je disposais était inférieure à un tiers du tampon d'affichage (environ 120 x 120 pixels). J'ai dû trouver des moyens de regrouper algorithmiquement les composants à l'écran pour qu'ils paraissent statiques, comme s'ils étaient des cartes. J'ai beaucoup appris, car nous sommes passés de systèmes plus importants à de petites solutions intégrées.
Thomas:Les compétences d'un développeur front-end type sont très différentes de celles d'un concepteur de matériel intégré. Comment encourageriez-vous un développeur front-end à se pencher sur le matériel et à commencer à penser en binaire ?
Lars:Je pense que la première étape consiste à examiner certaines des API Fugu qui fonctionnent dans Chrome et Edge, et qui sont intégrées à tous les principaux systèmes d'aujourd'hui. C'est tout ce dont vous avez besoin au début.
De plus, les chaînes d'outils pour créer des solutions intégrées présentent une courbe d'apprentissage abrupte. Si vous souhaitez créer votre propre matériel personnalisé, commencez par Arduino ou ESP32, des solutions faciles à acheter et relativement peu coûteuses. Avec le bon environnement de développement, vous pouvez mettre en service votre projet en un rien de temps.
Vous pouvez également acheter un moniteur de fréquence cardiaque ou une unité multicapteur, qui utilisent déjà les services Bluetooth GATT. Vous n'avez donc pas besoin de créer votre propre matériel ou micrologiciel. Vous pouvez utiliser ce qui existe déjà et commencer à tester l'API Web Bluetooth pour commencer à communiquer avec elle.
Il existe également des appareils qui utilisent un protocole série. Pour ces appareils, vous pouvez utiliser l'API Web Serial (également appelée Fugu). Récemment, j'ai commencé à utiliser l'API WebHID, qui vous permet d'interagir avec tous les appareils d'interface utilisateur auxquels tout le monde a accès. J'ai trouvé dans mon sous-sol d'anciens appareils qui n'étaient plus compatibles avec aucun système d'exploitation depuis des années, mais grâce à l'ingénierie inverse, il m'a fallu quelques heures pour les réactiver.
Il existe différentes approches en fonction de ce que vous souhaitez créer. Toutefois, je recommanderais à un développeur Web d'utiliser une unité de capteurs fiable, comme un Thingy 52 de Nordic Semiconductor. Il dispose de nombreux capteurs et vous pouvez le connecter à votre application Web avec très peu d'effort.
Thomas:La première étape consiste à se connecter à l'appareil, mais ensuite, communiquer avec lui efficacement est tout autre chose. Pourquoi n'avez-vous pas abandonné après avoir rencontré des obstacles ? Qu'est-ce qui vous a motivé à continuer à travailler ?
Lars:Pour moi, l'aspect social de la résolution de problèmes était le plus important. Lorsque j'ai commencé à travailler sur mes propres projets embarqués, j'avais une vision et un désir de créer un laboratoire scientifique dans une boîte pour les régions en développement. Ma femme est mexicaine et j'ai vu certaines des écoles de ce pays. Certaines situées en dehors des grandes villes sont assez délabrées et n'ont pas accès aux matériaux et équipements dont nous disposons dans notre partie du monde.
Ma passion pour la création d'un produit qui peut potentiellement aider les autres m'a permis de continuer. J'ai également beaucoup apprécié l'aide de la communauté. J'ai contacté des personnes de Google. Toutes ont été extrêmement serviables et ont répondu patiemment à toutes mes questions.
Thomas:De nombreuses personnes ont chez elles un appareil, mais ne savent pas quoi en faire. Comment trouvez-vous l'inspiration pour tous vos projets incroyables, en particulier celui portant le nom provisoire SimpleMouse ?
Lars:Eh bien, j'ai récemment ressuscité de nombreux anciens matériels, mais pour ce projet particulier (dont le nom n'a pas encore été défini, mais appelons-le SimpleMouse), j'ai utilisé mon expérience. J'ai travaillé avec certaines solutions d'accessibilité précédemment et j'ai constaté que certaines d'entre elles ne fonctionnaient plus. Pour les exécuter, vous devez disposer d'un ancien système Windows XP avec certains logiciels installés. Vous ne pouvez pas vraiment les mettre à jour, vous ne pouvez les utiliser qu'à la maison, car vous ne pouvez pas déplacer votre configuration.
C'est pourquoi je me suis demandé comment combiner mes compétences dans le monde de l'embarqué avec le projet Fugu et ce qui est désormais possible sur le Web pour créer du matériel abordable et économique associé à des logiciels faciles à comprendre des deux côtés, afin que les utilisateurs puissent s'appuyer dessus.
Pour ce projet, j'ai utilisé un petit dongle USB avec une puce réflective, le nRF52840. Il communique via Bluetooth d'un côté et via USB de l'autre. Vous pouvez le programmer pour qu'il soit n'importe quoi des deux côtés. Puis j'ai pensé aux appareils qui permettent de contrôler un ordinateur : une souris et un clavier. Certaines personnes ayant un handicap peuvent avoir du mal à utiliser ces appareils, et je voulais les aider.
La première chose que j'ai faite a été de m'assurer que n'importe quel système d'exploitation verrait le dongle USB comme une souris. Vous pouvez le contrôler depuis une application native ou une application Web, directement via le Bluetooth. J'ai ensuite créé une application Web, un modèle simple que les utilisateurs peuvent étendre comme ils le souhaitent à l'aide de composants Web. Grâce à cela, tout le monde peut contrôler son ordinateur avec une application Web que j'ai créée en quelques heures sur un téléphone Android.
Cette configuration permettra à n'importe qui dans le monde ayant une certaine expérience Web de créer, en quelques jours, une solution très personnalisée pour toute personne ayant un handicap et souhaitant contrôler son ordinateur. L'avantage est que vous pouvez l'emporter partout avec vous et l'utiliser avec d'autres appareils. L'expérience sera exactement la même. Pour moi, la portabilité et l'accessibilité de l'appareil sont très importantes, car les utilisateurs ne sont plus limités à leurs propres appareils ni à un seul lieu.
Thomas:Avez-vous eu l'occasion de tester l'appareil dans la vraie vie ?
Lars:Lors de mon dernier voyage au Mexique, j'en ai parlé avec un professionnel du Web qui y réside. Il étudie actuellement les possibilités d'utiliser l'appareil localement. Là-bas, l'équipement est très cher, mais un dongle USB coûte normalement environ 10 $. Il vérifie maintenant si nous pouvons créer des configurations locales pour les tester. Mais je n'ai pas encore effectué de tests officiels au Danemark.
Thomas:De nombreux appareils conçus pour aider les personnes ayant un handicap sont très chers. Prévoyez-vous de collaborer avec une entreprise en particulier et de mettre en production ce système pour une fraction du prix de cet équipement coûteux ?
Lars:Oui, bien sûr. J'en ai déjà parlé à un fabricant de matériel local. Bien sûr, l'appareil ne remplacera pas toutes ces solutions hautement spécialisées, mais il peut être la première étape vers quelque chose de plus grand, par exemple l'utilisation de la reconnaissance vocale, déjà disponible pour les technologies Web. Vous pourrez ainsi contrôler facilement vos appareils à l'aide de votre téléphone Android. Cette fonctionnalité fonctionne avec tous les appareils.
Le simple fait de pouvoir créer ce que vous voulez sur le Web et de l'utiliser pour contrôler n'importe quel ordinateur hôte ouvre de nombreuses possibilités.
Thomas:Lancez-vous votre projet Zephyr en Open Source ? Quel type de licence utilisez-vous ? Prévoyez-vous de monétiser le projet ?
Lars:Oui, la solution est Open Source. Je n'ai pas attribué de licence spécifique, mais je pense qu'Apache 2.0 est la meilleure option. De nombreuses grandes entreprises utilisent cette licence, y compris Google. Lorsque j'ai travaillé sur SimpleMouse, je n'ai pas pensé à monétiser le projet. Ce n'était pas mon objectif. Mais je pense également qu'il serait logique d'essayer de le mettre en production d'une manière ou d'une autre, ce qui implique des coûts. L'objectif final est de le rendre disponible. J'aimerais voir cette fonctionnalité mise en œuvre à faible coût et à grande échelle.