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

Monika: Was hat Sie dazu inspiriert, Entwickler zu werden? Worauf liegt Ihr beruflicher Schwerpunkt?
Lars: Ich habe einen Master in Ingenieurwissenschaften, aber mein Interesse an Technologie begann schon viel früher. Als ich in den 80er-Jahren ein Kind war, hatte mein Vater ein Computerunternehmen, das sich mit Grafikdesign befasste. Manchmal, vor allem in den Sommerferien, nahm er mich mit zur Arbeit. Manchmal hielten einige seiner Mitarbeiter ein Auge auf mich. Es gab diesen wirklich klugen Typen, der mir einmal sagte: „Lars, ich muss etwas Arbeit erledigen, aber hier ist ein C-Handbuch und da drüben ein Computer. So starten Sie einen C-Compiler: Wenn Sie Fragen haben, können Sie sich jederzeit an mich wenden.“ Ich begann, kurze Texte zu schreiben, die in eine Sprache übersetzt wurden, die der Computer verstehen konnte. Es war für mich wie Magie. Ich war 11 Jahre alt, als ich damit anfing. Etwa in der siebten Klasse konnte ich kleine Anwendungen für meine Mitschüler oder für die Schule erstellen. So fing es an.
Im Laufe der Jahre habe ich für viele Unternehmen gearbeitet, darunter Nokia, Maersk und Openwave. Am Anfang, wie in vielen anderen Berufen, haben Sie das Gefühl, alles zu können, weil Sie ein wenig wissen. Mit der Zeit lernen Sie jedoch, dass jedes Unternehmen eine bestimmte Arbeitsweise hat.
Nach einigen Jahren in einem Medizintechnikunternehmen habe ich 1999 mein eigenes Unternehmen gegründet. Ich habe als freiberuflicher Auftragnehmer gearbeitet und hatte so die Möglichkeit, schnell mehrere Organisationen kennenzulernen. Nach den ersten fünf Verträgen habe ich festgestellt, dass jedes Unternehmen der Meinung ist, die perfekte Konfiguration gefunden zu haben, aber alle sind völlig unterschiedlich. Damals wurde ich auch mit vielen verschiedenen Technologien, Betriebssystemen usw. vertraut. Mit Anfang 20 hat sich meine Einstellung geändert. Am Anfang habe ich mich ausschließlich auf eine Technologie konzentriert und wollte alles darüber lernen. Mit der Zeit begann ich darüber nachzudenken, wie sich Technologien kombinieren lassen, um unser Leben zu verbessern. Ich möchte die Lücke zwischen dem sogenannten A- und dem B-Team der Welt schließen. Ich versuche, so viel Wissen wie möglich in Regionen zu vermitteln, in denen Menschen nicht den Luxus haben, einen Computer zu besitzen oder kostenlos an einer Universität zu studieren.
Ich arbeite weiterhin als Auftragnehmer für externe Partner, aber nach Möglichkeit wähle ich Projekte aus, die eine positive Auswirkung auf die Umwelt oder die Gesellschaft haben. Ich arbeite derzeit an eingebetteter Software für ein Hörgeräteunternehmen namens Oticon. Softwareseitig habe ich schon an allem gearbeitet, von den kleinsten Mikrocontrollern bis hin zur Cloud. Ein Großteil meiner Arbeit dreht sich um das Web. Ich versuche, Technologien zu kombinieren, wann immer es sinnvoll ist.
Monika: Waren Sie in Entwicklerforen aktiv, bevor Sie am Google Developer Experts-Programm teilgenommen haben?
Lars: Ja, ich habe an Meetups und Konferenzen teilgenommen. Ich habe die Community zum ersten Mal kennengelernt, als ich für Nokia gearbeitet habe. Ungefähr 2010 lernte ich Kenneth Rohde Christiansen kennen, der vor mir Google Developer Expert wurde. Er hat mir gezeigt, wie Webtechnologien für angehende IT-Fachkräfte in Entwicklungsländern nützlich sein können. Die Entwicklung und Bereitstellung von Lösungen mit C++, C# oder Java erfordert einige Jahre Erfahrung. Jeder, der Zugriff auf einen Computer, einen Browser und einen Notizblock hat, kann jedoch mit der Entwicklung von webbasierten Anwendungen beginnen und sehr schnell lernen. Es ist möglich, mit begrenzten Ressourcen eine voll funktionsfähige Anwendung zu erstellen und von Null anzufangen. Deshalb bezeichne ich das Web als einen sehr demokratisierenden Technologiestack.
Aber zurück zur Community: Nach einiger Zeit habe ich mich für die Webstandardisierung und die Probleme interessiert, die mit innovativen Webtechnologien gelöst werden können. Ich habe vor der Veröffentlichung neue Funktionen in einem Browser getestet. Ich arbeitete damals für Nokia und entwickelte für das Linux-basierte Flaggschiff-Gerät N9. Der von uns entwickelte Browser war auf WebKit basierend und ich konnte viel Erfahrung mit der Entwicklung von Funktionen für ein großes Open-Source-Projekt sammeln. In den Jahren nach meinem Ausscheiden bei Nokia habe ich an Webkonferenzen und Meetups teilgenommen. Daher war es sinnvoll, 2017 der GDE-Community beizutreten.
Ich genieße die Communityarbeit und alles, was wir gemeinsam tun, vor allem die Chrome Developer Summits vor der Pandemie, bei denen ich zusammen mit vielen tollen Google-Entwicklern und anderen GDEs am Stand helfen durfte.
Monika: Welchen Rat würden Sie einem jungen Entwickler geben, der gerade erst ins Berufsleben gestartet ist und nicht sicher ist, welchen Weg er einschlagen soll?
Lars: Aus eigener Erfahrung würde ich sagen, dass Sie, wenn Sie es sich leisten können, für mehrere Unternehmen freiberuflich arbeiten sollten. So lernen Sie Code in vielen verschiedenen Formen und Entwicklungsphasen kennen. Sie lernen eine Vielzahl von Betriebssystemen und Sprachen kennen und erfahren, wie Sie Probleme auf viele verschiedene Arten beheben können. Das hat mir sehr geholfen. Ich habe in meinen 20ern Erfahrung als Senior-Entwickler gesammelt. So können Sie Ihre beruflichen Ziele schneller erreichen.
Außerdem sollten Sie Spaß haben, die Hardware und Software erkunden und damit herumspielen. Erwägen Sie, etwas zu entwickeln, das ein echtes Problem löst – vielleicht für Ihre Freunde, Ihre Familie oder ein lokales Unternehmen. Haben Sie keine Angst, etwas Neues auszuprobieren.
Monika: Was wird die Zukunft für Webtechnologien bringen?
Lars: Ich denke, dass das Web seit einigen Jahren eine Plattform für große Feldanwendungen bietet, sowohl für Verbraucher als auch für Unternehmen. Auf der Serverseite bieten Webtechnologien eine nahtlose Nutzung, 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 die Aufgabe zu erledigen. Und dieser Trend wird sich verstärken – Webtechnologien reichen aus, um komplexe Lösungen jeder Art zu entwickeln. Ich glaube, dass die Webfunktionen – Project Fugu 🐡 dieses Potenzial wirklich ausschöpfen.
Aus einem etwas anderen Blickwinkel betrachtet, bin ich auch der Meinung, dass wir mit einer vollständigen Dokumentation und ausführlichen Artikeln nicht nur auf Englisch, sondern auch in anderen Sprachen (z. B. Spanisch und Portugiesisch) ein großes Potenzial in Lateinamerika und natürlich auch in anderen Regionen erschließen würden. Die Entwickler dort sprechen oft nicht gut genug Englisch, um alle relevanten Artikel vollständig zu verstehen. Außerdem sollten wir ihnen die Möglichkeit geben, so früh wie möglich zu lernen, noch bevor sie mit dem Studium beginnen, also in ihrer Heimatstadt. Sie können diese Fähigkeiten nutzen, um lokalen Gemeinschaften und Unternehmen zu helfen, bevor sie ihr Zuhause verlassen und vielleicht nie wieder zurückkehren.
Thomas: Sie haben einen langen Weg zurückgelegt, von der C-Entwicklung auf einem beliebigen Computer bis hin zum Hacken von Hardware. Wie sind Sie vorgegangen?
Lars: Ich habe angefangen, viel Hardware zu Hause auseinanderzunehmen. Mein Vater war nicht immer glücklich, wenn ich es nicht wieder zusammenbauen konnte. Mit der Zeit lernte ich, einige kleine Geräte zu bauen, aber es dauerte noch viel länger, bis ich wirklich Fuß fassen konnte. Das war ungefähr zu der Zeit, als ich zu Nokia kam, wo ich meine Erfahrung mit eingebetteten Systemen gesammelt habe. Ich hatte die Möglichkeit, kleine Bildschirmschoner und Komponenten für die Series 30-Smartphones zu entwickeln. Ich war wirklich leidenschaftlich dabei und konnte wirklich unkonventionell denken. Ich sollte ein Snake-Spiel für diese Geräte entwickeln. Es war eine sehr interessante Erfahrung. Der Hauptunterschied zwischen dem Entwickeln von eingebetteten Systemen und den meisten anderen Dingen (einschließlich des Webs) besteht darin, dass Sie einen geringen Footprint hinterlassen – Sie haben nicht viel Platz oder Speicherplatz zur Verfügung. Beim Erstellen von Snake war der verfügbare RAM weniger als ein Drittel des Frame-Buffers (ungefähr 120 × 120 Pixel). Ich musste Algorithmen entwickeln, um die Komponenten auf dem Bildschirm wieder zusammenzuführen, damit sie statisch aussehen, als wären es Kacheln. 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 von eingebetteter Hardware. Wie würden Sie einen Frontend-Entwickler dazu ermutigen, sich mit Hardware zu beschäftigen und in Binärzahlen zu denken?
Lars: Ich denke, der erste Schritt besteht darin, sich einige der Fugu APIs anzusehen, die in Chrome und Edge funktionieren und in allen gängigen Systemen integriert sind. Das ist alles, was Sie am Anfang benötigen.
Außerdem haben die Toolchains zum Erstellen eingebetteter Lösungen eine steile Lernkurve. Wenn Sie Ihre eigene benutzerdefinierte Hardware erstellen möchten, beginnen Sie mit Arduino oder ESP32 – etwas, das leicht zu kaufen und relativ günstig ist. Mit der richtigen Entwicklungsumgebung können Sie Ihr Projekt im Handumdrehen einrichten.
Sie können auch einen Herzfrequenzmesser oder ein Multisensor-Gerät kaufen, das bereits Bluetooth GATT-Dienste verwendet. Sie müssen also keine eigene Hardware oder Firmware entwickeln, sondern können das vorhandene Gerät verwenden und mit der Web Bluetooth API experimentieren, um damit zu kommunizieren.
Es gibt auch Geräte, die ein serielles Protokoll verwenden. Für diese Geräte können Sie die Web Serial API (auch Fugu) verwenden. Kürzlich habe ich mir die WebHID API angesehen, mit der Sie mit allen Human Interface Devices kommunizieren können, auf die jeder Zugriff hat. Ich habe einige alte in meinem Keller gefunden, die seit Jahren von keinem Betriebssystem mehr unterstützt wurden. Dank Reverse-Engineering habe ich sie jedoch in wenigen Stunden wieder aktiviert.
Je nachdem, was Sie entwickeln möchten, gibt es unterschiedliche Ansätze. Webentwicklern würde ich jedoch empfehlen, eine solide Sensoreinheit zu verwenden, z. B. Thingy 52 von Nordic Semiconductor. Dieses Gerät hat viele Sensoren und lässt sich mit wenig Aufwand mit Ihrer Webanwendung verbinden.
Thomas: Die Verbindung zum Gerät herzustellen ist der erste Schritt, aber es effektiv anzusprechen, ist eine ganz andere Sache. Warum haben Sie nicht aufgegeben, als Sie auf Hindernisse gestoßen sind? Was hat Sie motiviert, weiterzuarbeiten?
Lars:Für mich persönlich war der soziale Aspekt der Problemlösung am wichtigsten. Als ich an meinen eigenen Embedded-Projekten arbeitete, hatte ich die Vision und den Wunsch, ein tragbares Wissenschaftslabor für Entwicklungsländer zu entwickeln. Meine Frau kommt aus Mexiko und ich habe einige Schulen dort gesehen. Einige, die außerhalb der großen Städte liegen, sind ziemlich schäbig und haben keinen Zugang zu den Materialien und Geräten, die wir in unserem Teil der Welt haben.
Die Leidenschaft, etwas zu entwickeln, das anderen helfen kann, hat mich angetrieben. Außerdem hat mir der Support der Community sehr gut gefallen. Ich habe mich an einige Mitarbeiter von Google gewandt. Sie waren alle sehr hilfsbereit und haben geduldig alle meine Fragen beantwortet.
Thomas: Viele Menschen haben zu Hause Hardware, wissen aber nicht, was sie damit anfangen sollen. Woher nehmen Sie die Inspiration für all Ihre tollen Projekte, insbesondere für das Projekt mit dem Arbeitsnamen SimpleMouse?
Lars:In letzter Zeit habe ich tatsächlich viel alte Hardware wiederbelebt, aber für dieses spezielle Projekt – der Name steht noch nicht fest, aber nennen wir es einfach SimpleMouse – habe ich meine Erfahrung genutzt. Ich habe früher mit einigen Lösungen für Barrierefreiheit gearbeitet und festgestellt, dass einige davon einfach nicht mehr funktionieren. Sie benötigen ein altes Windows XP mit bestimmter Software, um sie auszuführen. Sie können diese nicht wirklich aktualisieren, sondern nur zu Hause verwenden, da Sie Ihre Einrichtung nicht verschieben können.
Deshalb habe ich mich gefragt, wie ich meine Kenntnisse aus der Embedded-Welt mit dem Projekt Fugu kombinieren und was jetzt im Web möglich ist, um günstige, erschwingliche Hardware in Kombination mit leicht verständlicher Software auf beiden Seiten zu entwickeln, auf der andere aufbauen können.
Für dieses Projekt habe ich einen kleinen USB-Dongle mit einem reflektiven Chip verwendet, den nRF52840. Es kommuniziert auf der einen Seite über Bluetooth und auf der anderen über USB. Sie können es so programmieren, dass es auf beiden Seiten alles sein kann. Dann dachte ich an die Geräte, mit denen ein Computer gesteuert wird – eine Maus und eine Tastatur. Für manche Menschen mit Behinderung ist die Bedienung dieser Geräte schwierig. Ich wollte ihnen helfen.
Als Erstes habe ich dafür gesorgt, dass jedes Betriebssystem den USB-Dongle als Maus erkennt. Sie können ihn über eine native App oder eine Webanwendung direkt über Bluetooth steuern. Danach habe ich eine Webanwendung erstellt – eine einfache Vorlage, die Nutzer mithilfe von Webkomponenten nach Belieben erweitern können. So kann jeder seinen Computer mit einer Webanwendung steuern, die ich in nur wenigen Stunden auf einem Android-Smartphone erstellt habe.
So kann jeder Nutzer mit etwas Weberfahrung innerhalb weniger Tage eine maßgeschneiderte Lösung für Menschen mit Behinderung erstellen, die ihren Computer bedienen möchten. Das Tolle daran ist, dass Sie es überall hin mitnehmen und auch mit anderen Geräten verwenden können. Die Nutzung bleibt genau gleich. Für mich sind die Mobilität und die Erschwinglichkeit des Geräts sehr wichtig, da Nutzer nicht mehr auf ihre eigenen Geräte beschränkt sind und nicht mehr an einen Ort gebunden sind.
Thomas:Haben Sie das Gerät schon einmal in der Praxis getestet?
Lars: Tatsächlich habe ich bei meinem letzten Besuch in Mexiko darüber mit einem Webexperten gesprochen, der dort lebt. Er prüft jetzt, ob das Gerät dort eingesetzt werden kann. Dort ist die Ausrüstung sehr teuer, aber ein USB-Dongle kostet normalerweise etwa zehn US-Dollar. Er prüft jetzt, ob wir dort lokale Konfigurationen erstellen können, um es auszuprobieren. Aber ich habe hier in Dänemark noch keine offiziellen Tests durchgeführt.
Thomas: Viele Geräte, die Menschen mit Behinderungen unterstützen sollen, sind sehr teuer. Planen Sie, mit einem bestimmten Unternehmen zusammenzuarbeiten und das Gerät zu einem Bruchteil des Preises dieser teuren Ausrüstung in Produktion zu bringen?
Lars:Ja, auf jeden Fall. Ich habe bereits mit einem lokalen Hardwarehersteller darüber gesprochen. Natürlich wird das Gerät nicht alle diese hochspezialisierten Lösungen ersetzen, aber es kann der erste Schritt zu etwas Größerem sein – z. B. zur Verwendung der Spracherkennung, die bereits für Webtechnologien verfügbar ist. So können Sie Geräte ganz einfach über Ihr Android-Smartphone steuern. Das funktioniert mit allen Geräten.
Die Möglichkeit, im Web alles zu erstellen, was Sie möchten, und damit jeden Hostcomputer zu steuern, eröffnet viele Möglichkeiten.
Thomas: Stellen Sie Ihr Zephyr-Projekt als Open Source zur Verfügung? Welche Art von Lizenz verwenden Sie? Sind Pläne zur Monetarisierung des Projekts vorgesehen?
Lars: Ja, die Lösung ist Open Source. Ich habe keine bestimmte Lizenz dafür festgelegt, aber ich denke, Apache 2.0 wäre die richtige Wahl. Viele große Unternehmen verwenden diese Lizenz, einschließlich Google. Als ich an SimpleMouse arbeitete, habe ich nicht über die Monetarisierung des Projekts nachgedacht – das war nicht mein Ziel. Ich denke aber auch, dass es sinnvoll wäre, es in irgendeiner Weise in die Produktion zu bringen, und das ist mit Kosten verbunden. Das ultimative Ziel ist es, sie verfügbar zu machen. Ich würde es gerne sehen, dass es kostengünstig und in großem Umfang implementiert wird.