Lars Knudsen ist Google-Entwicklerexperte. Wir haben mit ihm darüber gesprochen, wie ein Gerät für 10 € Computer für Menschen mit Behinderung zugänglicher machen kann.
Monika::Was hat dich dazu inspiriert, Entwickler zu werden? Was ist Ihr aktueller beruflicher Schwerpunkt?
Lars:Ich habe meinen Master of Science in Ingenieurwesen erworben, aber mein Interesse an Technologie begann schon viel früher. Als ich ein Kind in den 80er Jahren war, leitete mein Vater eine Computing-Firma, die mit Grafikdesign arbeitet. Manchmal nahm er mich mit zur Arbeit, besonders während der Sommerferien. Manchmal behielten mich einige seiner Mitarbeiter im Auge. Da war dieser schlaue Typ, der einmal zu mir sagte: „Lars, ich muss ein bisschen arbeiten, aber hier ist ein C-Handbuch und da drüben ist ein Computer. So starten Sie einen C-Compiler: Wenn Sie Fragen haben, stellen Sie sie einfach.“ Ich fing an, kurze Texte zu schreiben, die dann so übersetzt wurden, dass der Computer sie verstehen kann. Es schien mir magisch zu sein. Ich war elf Jahre alt, als ich anfing, und etwa in der siebten Klasse, konnte ich kleine Anwendungen für meine Mitschüler oder für die Schule entwickeln. So hat es angefangen.
Im Laufe der Jahre habe ich für viele Unternehmen gearbeitet, darunter Nokia, Maersk und Openwave. Am Anfang haben Sie, wie in vielen anderen Berufen, das Gefühl, dass Sie alles können, weil Sie ein wenig wissen. Aber mit der Zeit erfahren Sie, dass jedes Unternehmen eine bestimmte Vorgehensweise hat.
Nach einigen Jahren bei einer medizinischen Firma habe ich 1999 mein eigenes Unternehmen gegründet. Ich habe als freiberufliche Unternehmerin gearbeitet und konnte dadurch schnell mehrere Unternehmen kennenlernen. Nach Abschluss der ersten fünf Verträge habe ich herausgefunden, dass jedes Unternehmen glaubt, die perfekte Konfiguration gefunden zu haben, aber alle sind völlig unterschiedlich. Damals war ich auch mit vielen verschiedenen Technologien, Betriebssystemen usw. vertraut. Anfang 20 hat sich meine Einstellung geändert. Anfangs habe ich mich ausschließlich auf eine Technologie konzentriert und wollte alles darüber erfahren. Mit der Zeit überlegte ich, wie ich mithilfe von Technologien unser Leben verbessern könnte. Ich bin besonders daran interessiert, die Lücke zwischen dem A- und dem B-Team weltweit zu schließen. Ich versuche, so viel Wissen wie möglich in Regionen zu übertragen, in denen die Menschen nicht den Luxus haben, einen Computer zu besitzen oder kostenlos an der Universität zu studieren.
Ich arbeite weiterhin als Auftragnehmer für externe Partner, aber wenn möglich versuche ich, Projekte auszuwählen, die einen positiven Einfluss auf die Umwelt oder die Gesellschaft haben. Derzeit arbeite ich an eingebetteter Software für ein Hörgeräteunternehmen namens Oticon. In Sachen Software habe ich an allem gearbeitet, von den kleinsten Mikrocontrollern bis hin zur Cloud. im Web. Ich versuche, Technologien zu kombinieren, wann immer es sinnvoll ist.
Monika: Warst du vor deiner Teilnahme am Google Developers-Expertenprogramm in Entwickler-Communitys aktiv?
Lars:Ja, ich habe an Meetups und Konferenzen teilgenommen. Während meiner Arbeit für Nokia habe ich mich zum ersten Mal mit der Community vernetzt. Ungefähr 2010 lernte ich Kenneth Rohde Christiansen kennen, der vor mir GDE wurde. Er hat mich dazu inspiriert, herauszufinden, wie Webtechnologien für angehende technische Fachkräfte in Entwicklungsländern nützlich sein können. Das Entwickeln und Bereitstellen von Lösungen mit C++, C# oder Java erfordert einige Jahre Erfahrung, aber jeder, der Zugang zu einem Computer, einem Browser und Notepad hat, kann mit der Entwicklung von webbasierten Anwendungen beginnen und wirklich schnell dazulernen. Es ist möglich, eine voll funktionsfähige Anwendung mit begrenzten Ressourcen zu erstellen und von null anzusteigen. Deshalb nenne ich das Web einen stark demokratisierenden Technology Stack.
Aber zurück zur Community. Nach einer Weile interessierte ich mich für Webstandardisierung und die Herausforderungen, die innovative Webtechnologien lösen könnten. Ich habe vor der Veröffentlichung neue Funktionen in einem Browser ausprobiert. Ich habe damals für Nokia gearbeitet und für ein Linux-basiertes Flagship-Gerät, das N9, entwickelt. Der von uns entwickelte Browser war WebKit-basiert und ich hatte großartige Erfahrung bei der Entwicklung von Funktionen für ein großes Open-Source-Projekt. In den Jahren, nachdem ich Nokia verlassen hatte, nahm ich an Webkonferenzen und Meetups teil. Daher war es sinnvoll, 2017 der GDE-Community beizutreten.
Ich genieße die Community-Arbeit und alles, was wir zusammen tun, besonders die Chrome Developer Summits vor der Pandemie, bei denen ich zusammen mit einigen großartigen Google-Entwicklern und anderen GDEs bei der Standarbeit helfen konnte.
Monika::Welchen Rat würden Sie einer jungen Entwicklerin geben, die gerade erst am Anfang ihrer beruflichen Laufbahn steht und sich nicht sicher ist, welchen Weg sie einschlagen sollen?
Lars: Aus eigener Erfahrung würde ich sagen, dass ich – wenn du es dir leisten kann – eine freiberufliche Tätigkeit bei verschiedenen Unternehmen in Betracht ziehen könnte. Auf diese Weise kommen Sie mit Code in vielen verschiedenen Formen und Entwicklungsphasen an. Sie lernen eine Vielzahl von Betriebssystemen und Sprachen kennen und erfahren, wie Sie Probleme auf vielfältige Weise beheben können. Das hat mir sehr geholfen. Ich habe in den 20er Jahren Erfahrung als Senior Developer gesammelt. Mit diesem Ansatz können Sie Ihre beruflichen Ziele schneller erreichen.
Abgesehen davon können Sie Spaß haben, Neues entdecken und mit der Hardware und Software experimentieren. Erwägen Sie, etwas zu entwickeln, das ein echtes Problem löst – vielleicht für Ihre Freunde, Ihre Familie oder ein lokales Unternehmen. Scheuen Sie sich nicht, in etwas einzusteigen, was Sie noch nie gemacht haben.
Monika::Wie sieht die Zukunft für Webtechnologien aus?
Lars:Ich denke, dass das Web seit ein paar Jahren eine Plattform für große Feldanwendungen bietet, sowohl für Privatnutzer als auch für Unternehmen. Auf der Serverseite bieten Webtechnologien eine nahtlose Erfahrung, insbesondere für Frontend-Entwickler, die eine Backend-Komponente erstellen möchten. Der Einstieg ist jetzt einfacher. Ich kenne Leute, die sowohl Firebase als auch Heroku verwendet haben, um meine Arbeit zu erledigen. Dieser Trend wird sich weiter verstärken – Webtechnologien werden ausreichen, um komplexe Lösungen jeglicher Art zu erstellen. Ich glaube, dass das Web Capabilities – Project Fugu 🐡 dieses Potenzial wirklich entfalten kann.
Wenn wir das Ganze aus einem etwas anderen Blickwinkel betrachten, denke ich auch, dass wir mit einer vollständigen Dokumentation und detaillierten Artikeln nicht nur auf Englisch, sondern auch in anderen Sprachen (z. B. Spanisch und Portugiesisch) großes Potenzial in Lateinamerika und anderen Regionen entfalten würden. Die dortigen Entwickler beherrschen oft nicht genug Englisch, um alle relevanten Artikel vollständig zu verstehen. Wir sollten ihnen auch die Möglichkeit geben, so früh wie möglich zu lernen, noch bevor sie die Universität in ihrer Heimatstadt aufhalten. Sie können diese Fähigkeiten nutzen, um lokalen Gemeinden und Unternehmen zu helfen, bevor sie ihr Zuhause verlassen und vielleicht nie mehr zurückkehren.
Thomas:Von der C-Entwicklung auf einem zufälligen Computer bis zum Hacken auf der Hardware haben Sie viel gelernt. Wie haben Sie das gemacht?
Lars:Ich begann, eine Menge Hardware auseinanderzunehmen, die ich zu Hause hatte. Mein Vater war nicht immer glücklich, wenn ich es nicht wieder zusammenfügen konnte. Mit der Zeit lernte ich, wie man kleine Geräte baut, aber erst viel später, als ich zu Nokia kam, wo ich meine Einbettungserfahrungen anfing, machte es einen großen Unterschied. Ich hatte die Möglichkeit, kleine Bildschirmschoner zu entwickeln. Das sind Komponenten für die Smartphones der Serie 30. Ich war total begeistert und konnte wirklich über den Tellerrand hinausschauen. Sie haben mir die Aufgabe zugewiesen, ein Snake-Spiel für diese Geräte zu entwickeln. Es war eine sehr interessante Erfahrung. Der Hauptunterschied zwischen der Erstellung eingebetteter Systeme und den meisten anderen Dingen (einschließlich des Webs) besteht darin, dass Sie wenig Platz und nicht viel Speicherplatz zur Verfügung stellen. Dies gilt auch für das Web. Bei der Entwicklung von Snake betrug der verfügbare RAM weniger als ein Drittel des Frame-Zwischenspeichers (etwa 120 x 120 Pixel). Ich musste mir Möglichkeiten ausdenken, um Komponenten mithilfe von Algorithmen neu zu verbinden, damit sie statisch aussahen, als wären sie Kacheln. Ich habe viel gelernt – das war der Wechsel von größeren Systemen zu kleinen, eingebetteten Lösungen.
Thomas:Die Fähigkeiten eines typischen Front-End-Entwicklers unterscheiden sich stark von den Fähigkeiten eines Mitarbeiters, der eingebettete Hardware entwickelt. Wie würden Sie ein Frontend-Entwickelnde ermutigen, sich mit Hardware zu beschäftigen und im Binärformat zu denken?
Lars:Ich glaube, als Erstes sehen wir uns einige der Fugu APIs an, die in Chrome und Edge funktionieren und heute in alle wichtigen Systeme integriert sind. Das ist alles, was Sie für den Anfang benötigen.
Eine weitere Sache ist, dass die Toolchains zum Erstellen von eingebetteten Lösungen eine hohe Lernkurve haben. Wenn Sie Ihre eigene Hardware entwickeln möchten, beginnen Sie mit Arduino oder ESP32 – etwas, das einfach zu kaufen und ziemlich günstig ist. Mit der richtigen Entwicklungsumgebung können Sie Ihr Projekt in kürzester Zeit zum Laufen bringen.
Sie können auch einen Herzfrequenzmesser oder ein Gerät mit mehreren Sensoren kaufen, die bereits Bluetooth-GATT-Dienste nutzen, sodass Sie keine eigene Hardware oder Firmware entwickeln müssen. Sie können die bereits vorhandene verwenden und mit der Web Bluetooth API experimentieren, um damit zu kommunizieren.
Es gibt auch Geräte, die ein serielles Protokoll verwenden. Dafür können Sie die Web Serial API (auch Fugu) verwenden. Vor Kurzem habe ich mich mit der WebHID API befasst, mit der Sie mit allen Benutzeroberflächengeräten kommunizieren können, auf die jeder Zugriff hat. Ich habe in meinem Keller einige alte gefunden, die jahrelang von keinem Betriebssystem unterstützt wurden, aber dank Reverse Engineering dauerte es ein paar Stunden, bis ich sie wieder aktiviert hatte.
Es gibt verschiedene Ansätze, je nachdem, was Sie entwickeln möchten, aber für einen Webentwickler würde ich raten, eine feste Sensoreinheit zu besorgen, vielleicht ein Thingy 52 von Nordic Semiconductor. Es verfügt über viele Sensoren und Sie können Ihre Webanwendung mit sehr geringem Aufwand anschließen.
Thomas:Sich mit dem Gerät zu verbinden ist der erste Schritt, aber dann effektiv mit dem Gerät sprechen – das ist etwas ganz anderes. Wieso haben Sie nicht aufgegeben, nachdem Sie mit Hindernissen konfrontiert wurden? Was hat dich motiviert, weiterzuarbeiten?
Lars:Für mich persönlich war der soziale Aspekt der Lösung eines Problems am wichtigsten. Als ich anfing, an meinen eigenen eingebetteten Projekten zu arbeiten, hatte ich eine Vision und den Wunsch, für Entwicklungsregionen ein wissenschaftliches Labor in einer Box zu errichten. Meine Frau kommt aus Mexiko und ich habe dort einige Schulen gesehen. Einige, die sich außerhalb der Großstädte befinden, sind ziemlich schlecht, ohne Zugang zu den Materialien und Geräten, die wir in unserem Teil der Welt haben.
Die Leidenschaft, etwas zu entwickeln, mit dem ich anderen helfen kann – das hat mich motiviert. Auch die Unterstützung durch die Community hat mir großen Spaß gemacht. Ich habe mich an einige Google-Mitarbeiter gewandt. Alle waren sehr hilfsbereit und haben alle meine Fragen geduldig beantwortet.
Thomas:Viele Menschen haben irgendeine Art von Hardware zu Hause, wissen aber nicht, was sie damit anfangen sollen. Wo findest du Inspiration für all deine tollen Projekte, insbesondere für das Projekt mit dem Arbeitsnamen SimpleMouse?
Lars:In letzter Zeit habe ich viele alte Hardware wieder auffrischen lassen, aber für dieses spezielle Projekt habe ich meine Erfahrung genutzt. Der Name wurde noch nicht festgelegt, aber wir nennen es SimpleMouse. Ich habe bereits mit Lösungen für Barrierefreiheit gearbeitet und dabei festgestellt, dass einige nicht mehr funktionieren: Zum Ausführen dieser Programme benötigen Sie ein altes Windows XP-System, auf dem bestimmte Software installiert ist. Diese lassen sich nicht wirklich aktualisieren. Sie können sie nur zu Hause verwenden, da Sie Ihre Einrichtung nicht verlegen können.
Aus diesem Grund habe ich mich gefragt, wie ich meine Fähigkeiten aus der eingebetteten Welt mit dem Projekt Fugu kombinieren kann und was jetzt im Web möglich ist, um billige, erschwingliche Hardware mit beidseitig leicht verständlicher Software zu entwickeln, auf der die Leute aufbauen können.
Für dieses Projekt habe ich einen kleinen USB-Dongle mit Reflexionschip nRF52840 genommen. Er kommuniziert über Bluetooth auf der einen Seite und über USB auf der anderen Seite. Du kannst quasi auf beiden Seiten programmieren. Und dann habe ich über die Geräte nachgedacht, mit denen ein Computer gesteuert wird – eine Maus und eine Tastatur. Manchen Menschen mit Behinderungen fällt es möglicherweise schwer, diese Geräte zu bedienen, und ich wollte ihnen helfen.
Als Erstes habe ich überprüft, ob der USB-Dongle von jedem Betriebssystem als Maus angesehen werden kann. Sie können ihn über eine systemeigene App oder eine Webanwendung steuern – direkt über Bluetooth. Danach habe ich eine Webanwendung erstellt – eine einfache Vorlage, die man mithilfe von Webkomponenten nach Wunsch erweitern kann. So kann jeder seinen Computer mit einer Web-App steuern, die ich in nur ein paar Stunden auf einem Android-Telefon erstellt habe.
Dadurch kann jeder auf der Welt, der über ein wenig Erfahrung im Web verfügt, in wenigen Tagen eine stark angepasste Lösung für alle mit einer Behinderung entwickeln, die ihren Computer steuern möchte. Das Tolle ist, dass du es überallhin mitnehmen und auch mit anderen Geräten verwenden kannst. Es funktioniert genauso. Für mich sind die Portabilität und Erschwinglichkeit des Geräts sehr wichtig, da Nutzer nicht mehr auf ihre eigenen Geräte und nicht mehr auf einen Standort beschränkt sind.
Thomas:Hattest du die Möglichkeit, das Gerät in der Praxis zu testen?
Lars:Ich habe bei meiner letzten Reise nach Mexiko mit einem dort lebenden Webexperten darüber gesprochen. möchte er sich nun die Möglichkeiten ansehen, das Gerät lokal zu nutzen. Da drüben ist die Ausrüstung wirklich teuer, aber ein USB-Dongle kostet normalerweise etwa 10 US-Dollar. Er prüft jetzt, ob wir dort lokale Einrichtungen aufbauen können, um das Tool auszuprobieren. Aber ich habe hier in Dänemark noch keine offiziellen Prozesse durchgeführt.
Thomas:Viele Geräte, die für Menschen mit Behinderung entwickelt wurden, sind sehr teuer. Planen Sie, mit einem bestimmten Unternehmen zu kooperieren und es für einen Bruchteil des Preises dieser teuren Ausrüstung in Produktion zu bringen?
Lars:Auf jeden Fall. Ich habe bereits mit einem lokalen Hardwarehersteller darüber gesprochen. Natürlich ersetzt das Gerät nicht all diese hochspezialisierten Lösungen, aber es kann der erste Schritt zu etwas Größerem sein, z. B. mit Spracherkennung, die bereits für Webtechnologien verfügbar ist. Es wird eine einfache Möglichkeit sein, Geräte über Ihr Android-Telefon zu steuern. kann es mit jedem beliebigen Gerät funktionieren.
Die Fähigkeit, im Web alles zu erstellen, was Sie möchten, und damit jeden Host-Computer steuern zu können, eröffnet viele Möglichkeiten.
Thomas:Veröffentlichen Sie Ihr Zephyr-Projekt als Open Source? Welche Art von Lizenz verwenden Sie? Gibt es Pläne, das Projekt zu monetarisieren?
Lars:Ja, die Lösung ist Open Source. Ich hatte keine spezielle Lizenz dafür, aber ich denke, Apache 2.0 wäre die richtige Wahl. Diese Lizenz wird von vielen großen Unternehmen genutzt, darunter auch Google. Als ich an SimpleMouse arbeitete, hatte ich nicht über die Monetarisierung des Projekts nachgedacht – das war nicht mein Ziel. Aber ich denke auch, dass es sinnvoll wäre, sie in irgendeiner Weise in die Produktion zu bringen, und das ist mit Kosten verbunden. Das oberste Ziel ist es, sie verfügbar zu machen. Ich würde mich freuen, wenn es kostengünstig und in großem Umfang implementiert werden würde.