Lars Knudsen est expert développeur Google. Nous lui avons expliqué comment un appareil à 10 $peut rendre les ordinateurs plus accessibles aux personnes handicapées.
Monika::Qu'est-ce qui vous a poussée à devenir développeuse ? Quel est votre objectif professionnel actuel ?
Lars:J'ai obtenu mon master en ingénierie, mais en fait, mon intérêt pour la technologie a commencé bien plus tôt. Quand j'étais enfant dans les années 80, mon père dirigeait une entreprise informatique travaillant dans le domaine de la conception graphique. Parfois, surtout pendant les vacances d'été, il m'emmenait pour travailler avec lui. Parfois, certains de ses employés gardent un œil sur moi. Il y avait un type vraiment intelligent qui m'a dit un jour : « Lars, je dois faire un peu de travail, mais voici un manuel C et il y a un ordinateur là-bas. Voici comment démarrer un compilateur C. Si vous avez des questions, n'hésitez pas à me les poser." J'ai commencé à écrire de courts textes qui ont été traduits en quelque chose que l'ordinateur pouvait comprendre. Cela m'a semblé magique. J'avais 11 ans quand j'ai commencé et vers la cinquième, j'ai pu créer de petites applications pour mes camarades de classe ou pour être utilisées à l'école. C'est comme ça que ça 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, parce que vous en savez un peu, vous avez l'impression de pouvoir tout faire, mais avec le temps, vous apprenez que chaque entreprise a une certaine façon de faire les choses.
Après quelques années à travailler dans une société médicale, j'ai créé ma propre entreprise en 1999. J'ai travaillé comme entrepreneur indépendant et, grâce à cela, j'ai eu l'occasion de connaître rapidement plusieurs organisations. Après avoir conclu les cinq premiers contrats, j'ai découvert que toutes les entreprises pensent avoir trouvé la configuration parfaite, mais qu'elles sont toutes complètement différentes. À cette époque, j'ai aussi été exposé à de nombreuses technologies, systèmes d'exploitation, etc. Au début de la vingtaine, mon état d'esprit a changé. Au début, je me concentrais exclusivement sur une technologie et je voulais tout apprendre à son sujet. Avec le temps, j'ai commencé à penser à combiner les technologies pour améliorer nos vies. J'ai tout intérêt à réduire l'écart entre ce que nous appelons l'équipe A et l'équipe B dans le monde. J'essaie de transférer autant de connaissances que possible dans des régions où les gens n'ont pas le luxe de posséder un ordinateur ou d'étudier sans frais à l'université.
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 un logiciel intégré pour une entreprise spécialisée dans les prothèses auditives appelée Oticon. Du point de vue logiciel, j'ai travaillé sur tout, des plus petits microcontrôleurs au cloud ; une grande partie de ce que je fais tourne autour du Web. J'essaie de combiner les technologies chaque fois que c'est judicieux.
Monika: Aviez-vous fait partie des communautés de développeurs avant de rejoindre le programme Experts Google Developers ?
Lars:Oui, j'ai participé à des réunions et des conférences. J'ai commencé à me connecter à la communauté en travaillant pour Nokia. Vers 2010, j'ai rencontré Kenneth Rohde Christiansen, qui est devenu un GDE avant moi. Il m'a donné envie de voir comment les technologies Web peuvent être utiles pour les futurs professionnels des technologies dans les pays en développement. Le développement et le déploiement de solutions à l'aide de C++, C# ou Java nécessitent plusieurs années d'expérience, mais toute personne ayant accès à un ordinateur, un navigateur ou un bloc-notes peut commencer à développer des applications Web et apprendre très rapidement. Il est possible de créer une application entièrement fonctionnelle avec des ressources limitées et de monter en puissance à partir de rien. C'est pourquoi j'appelle le Web un pile technologique très démocratique.
Mais revenons à la communauté : après un certain temps, je me suis intéressé à la normalisation du Web et aux problèmes que les technologies Web de pointe pourraient résoudre. J'ai testé de nouvelles fonctionnalités dans un navigateur avant leur lancement. À l'époque, je travaillais pour Nokia, où je développais un appareil phare basé sur Linux, le N9. Le navigateur que nous avons créé était basé sur WebKit et j'ai acquis une excellente expérience dans le développement de fonctionnalités pour un grand projet Open Source. Dans les années qui ont suivi mon départ de Nokia, j'ai participé à des conférences et des rencontres Web. J'ai donc décidé 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 sommets des développeurs Chrome d'avant la pandémie, au cours desquels j'ai pu aider à la tenue du stand aux côtés d'un groupe incroyable d'ingénieurs Google et d'autres GDE.
Monika::Quel conseil donneriez-vous à un jeune développeur qui vient de commencer sa carrière professionnelle et qui ne sait pas quelle voie suivre ?
Lars: Je dirais que d'après ma propre expérience, si vous pouvez vous le permettre, pensez à travailler en indépendant dans deux entreprises différentes. De cette façon, vous serez exposé au code sous différentes formes et à différentes étapes de développement. Vous découvrirez une multitude de systèmes d'exploitation et de langages, et apprendrez à 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, amusez-vous, explorez et jouez avec le matériel et les logiciels. Envisagez de créer quelque chose qui résout un problème réel, peut-être pour vos amis, votre famille ou une entreprise locale. N'ayez pas peur de vous lancer dans quelque chose que vous n'avez jamais fait auparavant.
Monika::Comment les technologies Web sont-elles à l'avenir ?
Lars:Je pense que depuis quelques années maintenant, le Web constitue une plate-forme pour de grandes applications de terrain, tant pour les consommateurs que pour les entreprises. Côté serveur, les technologies Web offrent une expérience fluide, en particulier pour les développeurs frontend qui souhaitent créer un composant backend. Il est plus facile pour eux de se lancer dès maintenant. Je connais des personnes qui utilisaient à la fois Firebase et Heroku pour faire ce travail. Et cette tendance va se développer : les technologies Web suffiraient à créer des solutions complexes de toutes sortes. Je pense que le cours Web Capabilities - Project Fugu 🐡 libère vraiment 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 approfondis non seulement en anglais, mais aussi dans d'autres langues (par exemple, l'espagnol et le portugais), nous débloquerons beaucoup de possibilités en Amérique latine, et dans d'autres régions, bien sûr. Souvent, les développeurs ne maîtrisent pas suffisamment l'anglais pour comprendre tous les articles pertinents. Nous devons également leur donner la possibilité d'apprendre le plus tôt possible, avant même qu'ils commencent à travailler à l'université, alors qu'ils sont toujours dans leur ville natale. Ils peuvent utiliser ces compétences pour aider les communautés et les entreprises locales avant de quitter leur domicile et peut-être de ne jamais revenir.
Thomas:Vous avez parcouru un long chemin entre le développement C sur un ordinateur choisi au hasard et le piratage informatique. Comment avez-vous fait ?
Lars:J'ai commencé à démonter beaucoup de matériel à la maison. Mon père n'était pas toujours heureux quand je n'arrivais pas à tout remettre en place. Avec le temps, j'ai appris à concevoir de petits appareils, mais cela a vraiment décollé beaucoup plus tard, lorsque j'ai rejoint Nokia, où j'ai pu bénéficier de mon expérience d'intégration. J'ai eu la chance de créer de petits économiseurs d'écran, les composants des téléphones Series 30. J'étais vraiment passionnée par ce sujet et je pouvais vraiment sortir des sentiers battus. Ils m'ont chargé de créer un jeu Snake pour ces appareils. C'était une expérience très intéressante. La principale différence entre la construction de systèmes embarqués et la plupart des autres outils (y compris sur le Web) est que votre encombrement est minime : vous n'avez pas beaucoup d'espace ou de mémoire à utiliser. Lors de la construction de Snake, la RAM disponible était inférieure à un tiers du tampon du frame (environ 120 x 120 pixels). J'ai dû trouver des moyens de joindre, via un algorithme, les composants à l'écran pour qu'ils aient l'air statiques, comme s'il s'agissait de tuiles. J'ai beaucoup appris : passer d'un système plus grand à de petites solutions intégrées.
Thomas:Les compétences d'un développeur d'interface classique sont très différentes de celles d'une personne qui crée du matériel embarqué. Comment encourager un développeur d'interface à examiner 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 actuels. C'est tout ce dont vous avez besoin pour commencer.
Par ailleurs, les chaînes d'outils permettant de créer des solutions intégrées nécessitent une phase d'apprentissage exigeante. Si vous voulez créer votre propre matériel personnalisé, commencez par Arduino ou ESP32, une solution facile à acheter et abordable. Avec le bon environnement de développement, votre projet est opérationnel en un rien de temps.
Vous pouvez également acheter un moniteur de fréquence cardiaque ou un multicapteurs qui utilisent déjà les services Bluetooth GATT, ce qui vous évite 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 lui.
Certains appareils utilisent un protocole série. Pour ceux-ci, vous pouvez utiliser l'API Web Serial (également Fugu). J'ai récemment étudié l'utilisation de l'API WebHID, qui permet de communiquer avec tous les appareils avec interface humaine accessibles à tous. J'ai trouvé dans mon sous-sol d'anciennes machines qui n'avaient été prises en charge par aucun système d'exploitation depuis des années, mais grâce à la rétro-ingénierie, il m'a fallu quelques heures pour les réactiver.
Il existe différentes approches en fonction de ce que vous souhaitez créer, mais pour un développeur Web, je dirais d'acheter une unité de capteur solide, peut-être un Thingy 52 de Nordic Semiconductor. vous pouvez vous connecter à votre application Web avec très peu d'effort.
Thomas:La première étape consiste à se connecter à l'appareil, mais puis à lui parler efficacement, c'est une autre chose. Comment se fait-il que vous n'ayez pas abandonné après avoir fait face à des obstacles ? Qu'est-ce qui vous a donné envie de continuer à travailler ?
Lars:Personnellement, l'aspect social de la résolution d'un problème était le plus important. Lorsque j'ai commencé à travailler sur mes propres projets d'intégration, j'avais une vision et un désir de créer un laboratoire scientifique à part entière pour les régions en développement. Ma femme est originaire du Mexique et j'ai vu certaines écoles là-bas. Certains situés en dehors des grandes villes sont plutôt shabby, sans accès aux matériaux et aux équipements que nous avons dans notre région du monde.
C'est cette passion qui m'a poussé à développer quelque chose qui pourrait servir à aider les autres. J'ai aussi vraiment apprécié le soutien de la communauté. J'ai contacté des employés de Google qui ont été extrêmement utiles et ont répondu patiemment à toutes mes questions.
Thomas:Beaucoup de gens ont du matériel à la maison, mais ne savent pas quoi en faire. Comment trouvez-vous l'inspiration pour tous vos projets incroyables, en particulier celui sous le nom pratique SimpleMouse ?
Lars:Récemment, j'ai en fait reconstitué un grand nombre de matériel ancien, mais pour ce projet dont le nom n'a pas encore été défini, appelé SimpleMouse, j'ai utilisé mon expérience. J'ai travaillé avec des solutions d'accessibilité plus tôt et j'ai vu que certaines d'entre elles ne fonctionnaient plus. vous devez avoir un ancien Windows XP avec certains logiciels installés pour les exécuter. Vous ne pouvez pas vraiment les mettre à jour. Vous ne pouvez les utiliser que chez vous, car vous ne pouvez pas déplacer votre configuration.
À cause de cela, je me suis demandé comment combiner mes compétences du monde de l'intégration avec le projet Fugu et ce qui est désormais possible sur le Web pour créer du matériel bon marché et abordable, combiné à des logiciels faciles à comprendre des deux côtés, afin que les gens puissent s'appuyer sur cela.
Pour ce projet, j'ai pris un petit dongle USB doté d'une puce réfléchie, le nRF52840. Il communique avec Bluetooth d'un côté et USB de l'autre. Vous pouvez essentiellement le programmer pour qu'il soit des deux côtés. Ensuite, j'ai pensé aux appareils qui contrôlent un ordinateur : une souris et un clavier. Certaines personnes handicapées peuvent avoir des difficultés à utiliser ces appareils, et j'ai voulu 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 Web, directement via Bluetooth. Ensuite, j'ai 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.
Une telle configuration permettra à toute personne dans le monde ayant une certaine expérience du Web de créer, en quelques jours, une solution très personnalisée pour les personnes handicapées qui souhaitent contrôler leur ordinateur. L'avantage, c'est que vous pouvez l'emporter partout où vous allez et l'utiliser avec d'autres appareils. Ce sera exactement la même expérience. Pour moi, la portabilité et le faible coût de l'appareil sont très importants, car les utilisateurs ne sont plus obligés d'utiliser leur propre appareil et ne sont plus limités à un seul endroit.
Thomas:Avez-vous eu l'occasion de tester l'appareil en vrai ?
Lars:Lors de mon dernier voyage au Mexique, j'en ai parlé avec un professionnel du Web. il étudie maintenant les possibilités d'utilisation de l'appareil en local. Là-bas, l'équipement est vraiment cher, mais un dongle USB coûte normalement environ dix dollars américains. Il est en train de vérifier si nous pourrions y créer des configurations locales pour l'essayer. Mais je n'ai pas encore effectué d'essais officiels ici, au Danemark.
Thomas:De nombreux appareils conçus pour aider les personnes ayant un handicap sont très chers. Prévoyez-vous de coopérer avec une entreprise en particulier et de la mettre en production pour une fraction du prix de cet équipement coûteux ?
Lars:Absolument ! J'en ai déjà parlé à un fabricant de matériel local à ce sujet. Bien entendu, l'appareil ne remplacera pas toutes ces solutions hautement spécialisées, mais il peut constituer la première étape pour développer quelque chose de plus grand, par exemple à l'aide de la reconnaissance vocale, déjà disponible pour les technologies Web. Ce sera un moyen simple de contrôler les appareils à l'aide de votre téléphone Android : il peut fonctionner avec n’importe quel type d’appareil.
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:Publiez-vous votre projet Zephyr en Open Source ? Quel type de licence utilisez-vous ? Est-il prévu de monétiser le projet ?
Lars:Oui, la solution est Open Source. Je n'ai pas attribué de licence spécifique à cette application, mais je pense qu'Apache 2.0 serait la solution la plus adaptée. De nombreuses grandes entreprises utilisent cette licence, y compris Google. Quand j'ai travaillé sur SimpleMouse, je ne pensais pas monétiser le projet, ce n'était pas mon objectif. Mais je pense aussi qu'il serait judicieux d'essayer de le mettre en production d'une manière ou d'une autre, ce qui entraînera des coûts. Le but ultime est de les rendre disponibles. J'aimerais qu'il soit implémenté à grande échelle et à faible coût.