GDE-Community-Highlight: Lars Knudsen

Lars Knudsen ist Google Developer Expert. Wir haben mit ihm darüber gesprochen, wie ein 10-Dollar-Gerät Computer für Menschen mit Behinderung barrierefreier machen kann.

Monika Janota
Monika Janota

Lars bei einer Präsentation mit zwei anderen Referenten auf der Bühne

Monika:Was hat dich dazu inspiriert, Entwicklerin zu werden? Was ist Ihr aktueller beruflicher Schwerpunkt?

Lars:Ich habe meinen Master of Science im Ingenieurwesen erworben, aber mein Interesse an Technik begann viel früher. Als ich in den 80ern noch ein Kind war, besaß mein Vater eine Computerfirma, die sich mit Grafikdesign beschäftigte. Manchmal, vor allem in den Sommerferien, nahm er mich mit, um mit ihm zusammen zu arbeiten. Gelegentlich beobachteten einige seiner Mitarbeiter mich. Da ist ein richtig schlauer Typ, der zu mir sagte: „Lars, ich muss ein bisschen Arbeit erledigen, aber hier ist ein C-Handbuch und da ist ein Computer. So starten Sie einen C-Compiler: Ihr könnt mich jederzeit fragen, wenn ihr Fragen habt.“ Ich begann, kurze Texte zu schreiben, die so übersetzt wurden, dass der Computer sie versteht. Das erschien mir magisch. Ich war 11 Jahre alt, als ich anfing, und ungefähr in der siebten Klasse konnte ich kleine Anwendungen für meine Mitschüler oder für die Schule erstellen. So hat alles angefangen.

Im Laufe der Jahre habe ich für viele Unternehmen wie Nokia, Maersk und Openwave gearbeitet. Wie in vielen anderen Berufen haben Sie, wie in vielen anderen Berufen, das Gefühl, alles zu können, aber mit der Zeit lernen Sie, dass jedes Unternehmen eine bestimmte Arbeitsweise hat.

Nachdem ich ein paar Jahre in einem Medizinunternehmen gearbeitet hatte, gründete ich 1999 mein eigenes Unternehmen. Ich habe als freiberuflicher Unternehmer gearbeitet und konnte so schnell mehrere Unternehmen kennenlernen. Nachdem ich die ersten fünf Verträge abgeschlossen hatte, fand ich heraus, dass jedes Unternehmen der Meinung ist, die perfekte Einrichtung gefunden zu haben, aber alle sind völlig anders. Damals lernte ich auch viele verschiedene Technologien, Betriebssysteme usw. kennen. Ungefähr in meinen frühen Zwanzigern hat sich meine Denkweise verändert. Am Anfang habe ich mich ausschließlich auf eine Technologie konzentriert und wollte alles darüber erfahren. Mit der Zeit fing ich an, über die Kombination von Technologien nachzudenken, um unser Leben zu verbessern. Ich bin besonders daran interessiert, die Lücke zwischen dem A- und B-Team in der Welt zu verkleinern. Ich versuche, so viel Wissen wie möglich in Regionen zu übertragen, in denen Menschen nicht den Luxus eines Computers haben oder kostenlos an der Universität studieren können.

Ich arbeite weiterhin als Auftragnehmer für externe Partner, aber wenn möglich versuche ich, Projekte zu wählen, die einen positiven Einfluss auf die Umwelt oder die Gesellschaft haben. Ich arbeite derzeit an eingebetteter Software für ein Hörgeräteunternehmen namens Oticon. Softwarebezogen habe ich an allem gearbeitet, von den kleinsten Mikrocontrollern bis hin zur Cloud. Viele meiner Aufgaben dreht sich um das Web. Ich versuche, Technologien zu kombinieren, wann immer es sinnvoll ist.

Monika: Hast du vor deiner Teilnahme am Google Developer Experts-Programm in Entwickler-Communities eingebunden?

Lars:Ja, ich war an Treffen und Konferenzen beteiligt. Während meiner Arbeit für Nokia habe ich mich zum ersten Mal mit der Community in Verbindung gesetzt. Ungefähr im Jahr 2010 traf ich Kenneth Rohde Christiansen, der vor mir GDE wurde. Er hat mich inspiriert, zu sehen, wie angehende Technologieexperten in Entwicklungsländern von Webtechnologien profitieren können. Das Entwickeln und Bereitstellen von Lösungen mit C++, C# oder Java erfordert einige Jahre Erfahrung. Aber jeder, der Zugriff auf einen Computer, Browser und Notepad hat, kann mit der Entwicklung von webbasierten Anwendungen beginnen und wirklich schnell lernen. Es ist möglich, eine voll funktionsfähige Anwendung mit begrenzten Ressourcen zu erstellen und ohne großen Aufwand zu steigern. Deshalb bezeichne ich das Web als einen stark demokratisierenden Technologie-Stack.

Aber zurück zur Community: Nach einer Weile interessierte ich mich für Webstandardisierung und dafür, welche Probleme bahnbrechende Webtechnologien lösen könnten. Ich habe vor der Veröffentlichung neue Funktionen in einem Browser ausprobiert. Ich arbeitete damals für Nokia und entwickelte für das Linux-basierte Flagship-Gerät N9. Der von uns entwickelte Browser war WebKit-basiert und ich hatte viel Erfahrung mit 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 -treffen teil, sodass es sinnvoll war, der GDE-Community im Jahr 2017 beizutreten.

Ich genieße die Community-Zusammenarbeit und alles, was wir gemeinsam tun. Das gilt insbesondere für die Chrome Developer Summits vor der Pandemie, bei denen ich zusammen mit anderen Google-Entwicklern und anderen GDEs bei den Standaufgaben geholfen habe.

Monika:Welchen Rat würden Sie einer jungen Entwicklerin geben, die gerade am Anfang ihrer beruflichen Laufbahn steht und sich nicht sicher ist, welchen Weg sie einschlagen soll?

Lars: Ich würde aus eigener Erfahrung sagen, dass Sie – sofern Sie es sich leisten können – eine freiberufliche Tätigkeit bei einigen verschiedenen Unternehmen in Betracht ziehen. Auf diese Weise können Sie Code in vielen verschiedenen Formen und Entwicklungsphasen kennenlernen. Sie lernen eine Vielzahl von Betriebssystemen und Sprachen kennen und erfahren, wie Sie Probleme in vielerlei Hinsicht lösen können. Das hat mir sehr geholfen. In meinen Zwanzigern habe ich als Senior Developer Erfahrung gesammelt. So können Sie Ihre beruflichen Ziele schneller erreichen.

Außerdem kannst du Spaß haben, Neues entdecken und mit der Hardware und Software experimentieren. Überlege dir etwas, das ein echtes Problem löst – vielleicht für deine Freunde, deine Familie oder ein lokales Unternehmen. Scheuen Sie sich nicht, in etwas zu springen, das Sie noch nie gemacht haben.

Monika:Wie sieht die Zukunft der Webtechnologien aus?

Lars:Ich glaube, dass das Web seit einigen Jahren vollumfänglich in der Lage ist, eine Plattform für große Feldanwendungen zu bieten, sowohl für Privatnutzer als auch Unternehmen. Auf Serverseite bieten Webtechnologien ein nahtloses Erlebnis, insbesondere für Frontend-Entwickler, die eine Backend-Komponente erstellen möchten. Für sie ist es einfacher, gleich loszulegen. Ich kenne Leute, die sowohl Firebase als auch Heroku für ihre Arbeit verwendet haben. Und dieser Trend wird sich weiter verstärken: Mit Webtechnologien lassen sich komplexe Lösungen jeglicher Art erstellen. Ich glaube, dass das Web Capabilities-Projekt Fugu 🐡 dieses Potenzial voll auszuschöpfen.

Aus einer etwas anderen Perspektive betrachten wir auch, dass wir viel Potenzial in Lateinamerika – und natürlich auch in anderen Regionen – erschließen würden, wenn wir die vollständige Dokumentation und ausführliche Artikel nicht nur auf Englisch, sondern auch in anderen Sprachen (z. B. Spanisch und Portugiesisch) bereitstellen. Oftmals sprechen die Entwickler nicht gut 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 beginnen, noch in ihrer Heimatstadt. Vielleicht nutzen sie diese Fähigkeiten, um lokalen Gemeinden und Unternehmen zu helfen, bevor sie ihr Zuhause verlassen und vielleicht nie wieder nach Hause kommen.

Thomas:Von der C-Entwicklung auf einem zufälligen Computer bis hin zu Hacking auf der Hardware hat es einen langen Weg zurückgelegt. Wie hast du das geschafft?

Lars:Ich habe angefangen, einige Hardware auseinanderzunehmen, die ich zu Hause hatte. Mein Vater war nicht immer glücklich, wenn ich ihn nicht wieder zusammensetzen konnte. Mit der Zeit lernte ich, wie man ein paar kleine Geräte baut, aber viel später, als ich zu Nokia kam, wurde die Arbeit als Einbettung in die Praxis umgesetzt. Ich hatte die Gelegenheit, kleine Bildschirmschoner zu entwickeln, also Komponenten für die Smartphones der Series 30. Das hat mir wirklich Spaß gemacht und ich konnte über den Tellerrand hinausschauen. Ich wurde beauftragt, 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 nur wenig Platz schaffen, da Sie nicht viel Platz oder Speicher zur Verfügung haben. Beim Bau von Snake betrug der verfügbare RAM weniger als ein Drittel des Frame-Puffers (ca. 120 × 120 Pixel). Ich musste mir Möglichkeiten ausdenken, wie Komponenten mithilfe von Algorithmen auf dem Bildschirm neu verbunden werden konnten, damit sie statisch aussahen, als ob sie Kacheln wären. Ich habe viel gelernt – das war der Wechsel von größeren Systemen zu kleinen, eingebetteten Lösungen.

Thomas:Die Fähigkeiten eines typischen Frontend-Entwicklers unterscheiden sich stark von denen eines Entwicklers für eingebettete Hardware. Wie würden Sie einen Frontend-Entwickler dazu bringen, sich mit Hardware zu befassen und Binärcode zu entwickeln?

Lars:Ich denke, zuerst sehen wir uns einige der Fugu APIs an, die in Chrome und Edge funktionieren und in alle wichtigen Systeme integriert sind. Das ist alles, was du für den Start brauchst.

Außerdem haben die Toolchains zum Erstellen eingebetteter Lösungen eine steile Lernkurve. Wenn Sie Ihre eigene Hardware erstellen möchten, sollten Sie mit Arduino oder ESP32 beginnen – etwas, das sich leicht kaufen lässt und relativ günstig ist. Mit der richtigen Entwicklungsumgebung können Sie Ihr Projekt im Handumdrehen starten.

Sie können auch einen Herzfrequenzmesser oder eine Multisensor-Einheit kaufen, die bereits die Bluetooth-GATT-Dienste nutzen, sodass Sie keine eigene Hardware oder Firmware entwickeln müssen. Sie können die bereits vorhandene Hardware oder Firmware nutzen und mit der Web Bluetooth API experimentieren, um damit zu kommunizieren.

Es gibt auch Geräte, die ein serielles Protokoll verwenden. Für diese können Sie die Web Serial API (auch Fugu) verwenden. In letzter Zeit habe ich mir die Verwendung der WebHID API angeschaut, mit der Sie mit allen Benutzeroberflächengeräten kommunizieren können, auf die jeder Zugriff hat. Ich fand im Keller einige alte, die seit Jahren von keinem Betriebssystem unterstützt wurden. Dank Reverse Engineering brauchte ich einige Stunden, um sie wieder zu aktivieren.

Es gibt unterschiedliche Ansätze, je nachdem, was Sie entwickeln möchten, aber ein Webentwickler würde sagen, dass er sich eine solide Sensoreinheit beschafft, vielleicht ein Thingy 52 von Nordic Semiconductor. Es verfügt über viele Sensoren, sodass sich Ihre Webanwendung mit sehr wenig Aufwand verbinden lässt.

Thomas:Das Verbinden mit dem Gerät ist der erste Schritt, aber dann ist es ganz anders. Warum haben Sie nicht aufgegeben, nachdem Sie auf Hindernisse stoßen? Was hat Sie motiviert, Ihre Arbeit fortzusetzen?

Lars:Für mich persönlich war der soziale Aspekt der Problemlösung der wichtigste. Als ich anfing, an eigenen eingebetteten Projekten zu arbeiten, hatte ich die Vision und den Wunsch, ein wissenschaftliches Labor in einem Kasten für Entwicklungsregionen aufzubauen. Meine Frau stammt aus Mexiko und ich habe einige der Schulen dort gesehen. Einige Schulen außerhalb der Großstädte sind ziemlich schäbig, da sie keinen Zugang zu Materialien und Geräten haben, die wir in unserem Teil der Welt haben.

Die Leidenschaft, etwas zu entwickeln, das anderen helfen kann – das hat mich motiviert. Auch die Unterstützung durch die Community hat mir sehr viel Spaß gemacht. Ich habe mich an einige Mitarbeiter von Google gewandt und alle waren sehr hilfsbereit und haben alle meine Fragen geduldig beantwortet.

Thomas:Viele Leute haben Hardware zu Hause, aber sie wissen nicht, was sie damit anfangen sollen. Woher holen Sie sich Inspiration für all Ihre großartigen Projekte, insbesondere für das Projekt unter dem Arbeitsnamen SimpleMouse?

Lars:In letzter Zeit habe ich eine Menge alter Hardware überarbeitet, aber für dieses spezielle Projekt – der Name steht noch nicht fest, aber wir haben ihn SimpleMouse genannt – habe ich meine Erfahrung genutzt. Ich habe bereits mit einigen Bedienungshilfen-Lösungen gearbeitet und festgestellt, dass einige davon einfach nicht mehr funktionieren. Man müsste eine alte Windows XP-Version haben, auf der eine bestimmte Software installiert ist, um sie ausführen zu können. Du kannst sie nicht aktualisieren, sondern nur zu Hause verwenden, da sich die Einrichtung nicht verschieben lässt.

Aus diesem Grund fragte ich mich, 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 in Kombination mit leicht verständlicher Software auf beiden Seiten zu entwickeln, damit Menschen darauf aufbauen können.

Für dieses Projekt habe ich einen kleinen USB-Dongle mit einem Reflexionchip, den nRF52840, verwendet. Er kommuniziert auf der einen Seite über Bluetooth und auf der anderen Seite über USB. Sie können im Grunde irgendetwas auf beiden Seiten programmieren. Dann dachte ich an die Geräte, die einen Computer steuern: Maus und Tastatur. Manchen Menschen mit Behinderungen fällt es schwer, diese Geräte zu bedienen, und ich wollte ihnen helfen.

Als Erstes habe ich dafür gesorgt, dass jedes Betriebssystem den USB-Dongle als Maus sieht. Sie können ihn von einer nativen Anwendung oder Webanwendung aus steuern – direkt über Bluetooth. Danach erstellte ich eine Webanwendung – eine einfache Vorlage, die man mit Webkomponenten nach Belieben erweitern kann. So kann jeder seinen Computer mit einer Web-App steuern, die ich in nur wenigen Stunden auf einem Android-Smartphone erstellt habe.

Mit dieser Einrichtung kann jeder auf der Welt, der über ein gewisses Weberlebnis verfügt, innerhalb weniger Tage eine sehr individuelle Lösung für alle Menschen mit Beeinträchtigungen entwickeln, die ihren Computer steuern möchten. Das Tolle ist, dass man es überall hin mitnehmen und auch mit anderen Geräten verwenden kann. Es ist genau das Gleiche. Für mich sind die Tragbarkeit und die Erschwinglichkeit der Geräte sehr wichtig, da die Nutzer nicht mehr auf das eigene Gerät beschränkt sind und nicht mehr auf einen Standort beschränkt sind.

Thomas:Hatten Sie die Gelegenheit, das Gerät in der Praxis zu testen?

Lars:Auf meiner letzten Reise nach Mexiko habe ich das mit einem dort lebenden Webexperten besprochen. Er untersucht jetzt die Möglichkeiten, das Gerät lokal zu nutzen. Die Ausrüstung ist ziemlich teuer, aber ein USB-Dongle kostet normalerweise etwa zehn US-Dollar. Jetzt prüft er, ob wir dort lokale Einrichtungen einrichten können, um es auszuprobieren. Aber ich habe hier in Dänemark noch keinen offiziellen Test gemacht.

Thomas:Viele Geräte, die für Menschen mit Behinderungen entwickelt wurden, sind recht teuer. Planen Sie, mit einem bestimmten Unternehmen zusammenzuarbeiten und es zu einem Bruchteil des Preises dieser teuren Geräte in Produktion zu bringen?

Lars:Auf jeden Fall. Ich habe bereits mit einem lokalen Hardwarehersteller darüber gesprochen. Natürlich wird das Gerät nicht all diese hochspezialisierten Lösungen ersetzen, aber es kann der erste Schritt in Richtung Größer sein – zum Beispiel die Verwendung der Spracherkennung, die bereits für Webtechnologien verfügbar ist. So können Sie Ihre Geräte ganz einfach über Ihr Android-Smartphone steuern. Es funktioniert mit allen Geräten.

Die Möglichkeit, beliebige Inhalte im Web zu erstellen und damit jeden Host-Computer zu steuern, eröffnet viele Möglichkeiten.

Thomas:Veröffentlichen Sie Ihr Zephyr-Projekt als Open-Source-Software? Welche Art von Lizenz verwenden Sie? Gibt es Pläne, das Projekt zu monetarisieren?

Lars:Ja, die Lösung ist Open Source. Ich habe keine spezielle Lizenz dafür festgelegt, aber ich denke, dass Apache 2.0 die richtige Lösung wäre. Viele große Unternehmen nutzen diese Lizenz, einschließlich Google. Als ich an SimpleMouse gearbeitet habe, habe ich nicht über die Monetarisierung des Projekts nachgedacht – das war nicht mein Ziel. Aber ich denke auch, dass es sinnvoll wäre, die Produktion auf irgendeine Weise umzusetzen, und das bringt auch Kosten mit sich. Das ultimative Ziel ist es, sie verfügbar zu machen. Es wäre toll, wenn die Implementierung möglichst kostengünstig und in großem Umfang erfolgt.