Johannes Mainusch: Hallo Gina, du bist eine der Sprecherinnen auf der OOP-Konferenz 2023. Du bist Softwareentwicklerin und die Hüterin des Open-Source-Projekts OctoPrint.
Gina Häußge: Korrekt. Ich würde sogar sagen, ich bin nicht nur die Hüterin, ich bin vielleicht auch die Mama. Das ist mein Projekt, das habe ich vor mittlerweile fast zehn Jahren aus der Taufe gehoben. OctoPrint ist eine Mischung aus Fernsteuerung und Babyfone für 3-D-Drucker. Das heißt, es ist ein Stück Software, das man sich auf einen Raspberry Pi (RPI) oder einen alten Laptop installiert, dann hängt man einen 3-D-Drucker dran, nun kann man den Drucker eben aus einem Webbrowser kontrollieren. Mit einer angeschlossenen Webcam lässt sich kontrollieren, was gerade passiert, und man kann beispielsweise Zeitraffer-Recordings (Time-lapse) erstellen. OctoPrint hat auch ein Plug-in-System, das es Leuten ermöglicht, das System zu erweitern. Das alles ist über die Jahre ziemlich gewachsen und seit 2014 arbeite ich Vollzeit daran. Seit 2016 zu 100 Prozent crowdfunded.
Gehen wir einmal zurück. Es fing damit an, dass …
2012 hatte ich nach einem Umzug etwas mehr Platz zu Hause. So konnte ich mir einen langersehnten Wunsch erfüllen und kaufte einen 3-D-Drucker. Und dann hatte ich so ein Gerät und es machte tierisch Spaß. Es gab aber ein Problem, ein 3-D-Drucker ist recht laut und es riecht nach schmelzendem Plastik. Denn so funktioniert dreidimensionales Drucken: Plastik wird geschmolzen, spritzt auf ein Druckbett, daraus baut sich dann langsam das Objekt zusammen und das mehrere Stunden lang oder auch Tage. Die Drucker waren damals nicht sehr selbstständig und die Druckdateien musste man ihm häppchenweise zuschieben. Das nervte mich tierisch, denn so musste ich mich in der Nähe des Druckers aufhalten. Außerdem war mein Rechner komplett blockiert. Ich hätte es einfach schöner gefunden, das alles in einen anderen Raum zu räumen und aus der Ferne zu beobachten. Und dann dachte ich mir …
„3-D-Drucker waren vor 10 Jahren allerdings nicht sehr selbstständig“
Du hast also den 3-D-Drucker gekauft, verkabelt und dann war er dir zu nah dran und hat auch nicht das gemacht, was du wolltest?
Genau! Ich dachte mir, so wild kann das ja jetzt nicht sein (famous last words), dafür müsste es doch eine Lösung geben. In dem Jahr kam auch der Raspberry Pi raus, dieser winzig kleine Einplatinen-Computer für 35 €, den man programmieren kann. Meine Idee war es, den Raspberry Pi als Steuerungseinheit zu benutzen, damit ich den Drucker so in den Nachbarraum stellen konnte.
„Das Verständnis, warum dieser Basic-Befehl print heißt, kam erst in der 5. Klasse, als ich Englisch lernte“
… den Raspberry Pi kannst du dann ins WLAN hängen …
Richtig. Damals war das tatsächlich noch nicht so leicht mit dem drahtlosen lokalen Netz, weil der RPI noch kein WLAN auf dem Board hatte. Dazu musste man einen Dongle finden, der das macht.
… und dann ist der Stromverbrauch immer so hoch gewesen, dass er dauernd abgestürzt ist, ich kann mich erinnern …
Wenn man Pech hat, ist das heute immer noch so. Die Dinger sind, was Strom angeht, immer noch sehr schwierig. Das ist tatsächlich eines der größten Probleme, was ich beim OctoPrint-Support über die letzten zehn Jahre immer wieder gesehen habe. Raspberry Pis rebooten nicht unbedingt, wenn sie zu wenig Strom bekommen. Sie neigen dazu, Brown-out-Verhalten zu zeigen, das heißt, die rechnen falsch. Ich hatte dann so interessante Fehler wie: Auf einmal lädt das Web-Interface nur noch halb oder der Drucker macht komische Bewegungen.
Jetzt sind wir tief im Nerd-Land angekommen, bist du mit dem Lötkolben in der Hand zur Welt gekommen?
Im Grunde schon. Ich wollte von frühester Kindheit an immer wissen, wie Sachen funktionieren, habe sie dazu auseinandergenommen und nachgeschaut, was innen drin abgeht. Mit sieben Jahren saß ich das erste Mal an einem PC. Das war ein uralter Apple IIe, und ich habe da meine ersten Zeilen Basic geschrieben. Als mein Onkel uns den schenkte, dachte ich zunächst, klasse, da kann ich Spiele drauf spielen. Aber mein Vater hat mir dann erklärt, er könne mir noch etwas anderes zeigen und hat mir dann die ersten paar Zeilen Basic beigebracht. Ich konnte gerade so lesen und schreiben, aber von Englisch hatte ich keine Ahnung. Mit zum Beispiel „print“ als Wort konnte ich zuerst nicht viel anfangen. Ich habe dann gelernt, okay: „print“ heißt, Sachen auf dem Screen anzeigen. Das Verständnis, warum dieser Befehl „print“ heißt, kam erst in der 5. Klasse, als ich Englisch lernte.
Hast du vor OctoPrint auch mal Geld verdient und für eine Firma gearbeitet?
Ich habe an der TU-Darmstadt mein Informatik-Diplom gemacht, bin dann bei einer großen Beratung gelandet und habe dort Software geschrieben, für Firmen, Business-to-Business. Später wurde ich zum Technical Architect befördert und hätte eine richtig coole Karriere hinlegen können. Das einzige Problem war, ich wurde immer weiter weg vom Quellcode geschoben, mehr Richtung Management. Das war die Zeit, als ich mir einen 3-D-Drucker angeschafft und so ein richtiges Bedürfnis nach einem Entwicklungsprojekt hatte. Wo keine Politik beim Kunden entscheidet, welches Feature jetzt hineingebaut wird und welche Software-Stacks wir verwenden. Das kam alles zur richtigen Zeit zusammen und ich habe mich über meine Weihnachtsferien hingesetzt und die allererste Version von OctoPrint geschrieben.
„Auf einmal hatte ich ein richtig handfestes Open-Source-Projekt an der Backe“
Das war 2012, richtig?
Weihnachten 2012. Dann bin ich zurück in meinen normalen Job und dachte, jetzt kann ich ja wieder meinem normalen Alltag nachgehen. Und dann ist mir das 3-D-Projekt um die Ohren geflogen, aber im positiven Sinne. Es gab unglaublich viele Leute, die gesagt haben, hey genau so etwas habe ich gesucht. Und könntest du das und jenes noch einbauen. Auf einmal hatte ich ein richtig handfestes Open-Source-Projekt an der Backe. Dann habe ich meine Arbeitszeit auf vier Tage die Woche reduziert. Anfang 2014 habe ich dann gemerkt, jetzt braucht das Ganze so viel Zeit, dass ich eigentlich nicht guten Gewissens noch nebenher meinem Job nachgehe kann. Genau zu dem Zeitpunkt hat mich dann ein spanisches Technologieunternehmen, das damals 3-D-Drucker fertigte, gefragt, ob ich in Festanstellung OctoPrint als Open Source weiterentwickeln möchte.
Wie haben die von OctoPrint profitiert?
Das war in erster Linie wirklich Werbung, und ich habe natürlich auch, wenn die da an ihren 3-D-Druckern rumgebastelt haben, deren Protokolle geschrieben usw. So habe ich auch beratend direkt zur Seite stehen können. Dadurch, dass Octo-Print mit unglaublich vielen proprietären Druckervarianten agieren muss, kenne ich eben einige Fallstricke. Das kam denen auch zugute.
Das Einkommen war somit gesichert.
Ja, aber dann ist denen irgendwann das Geld ausgegangen, und ich stand da und überlegte: Was nun? Zu dem Zeitpunkt war OctoPrint schon so groß, dass es ein Vollzeitjob war. Daher habe ich eine Patreon-Kampagne zur Finanzierung aufgesetzt.
„Ich habe 2267 Patrons“
Wie funktioniert das?
Du meldest dich bei der Crowdfunding-Plattform Patreon an, machst idealerweise ein zwei bis drei Minuten langes Pitch-Video, worin du erklärst, was du da tust, warum du das tust und was du gedenkst, mit den Geldern, die du einnimmst, zu tun. In meinem Fall, ich will einfach nur ein Dach über dem Kopf haben, während ich weiter daran arbeite. Ich wollte mich niemals selbstständig machen, sondern immer in einer komplett sicheren Anstellung bleiben. So nach deutschem Modell, Krankenversicherung, Pflegeversicherung und um Gotteswillen bloß nicht Risiken eingehen. Andererseits dachte ich im April 2016, wenn ich das jetzt nicht probiere, dann werde ich mich für den Rest meines Lebens fragen, was wäre, wenn? Und dann hat es seltsamerweise funktioniert.
Patreon kenne ich von Podcastern, da unterstützt man Projekte mit kleinen Beiträgen. Wie viel Leute unterstützen dich?
Das ist eine interessante Frage, was steht denn hier, 2267 Patrons.
Und wenn jeder Patron seinen Protegé mit 2 Euro im Monat unterstützen würde, bekäme der bei 2000 Unterstützern ca. 4000 € im Monat.
So ungefähr. Momentan zahlt jeder im Schnitt eher 3 Euro. Dazu kommen dann bei mir noch ein paar andere Quellen, GitHub Sponsors, Werbeeinnahmen, B2B-Sponsorships und so. Davon gehen dann Steuern, Krankenversicherung, Altersvorsorge und so weiter ab, und natürlich Rücklagen, Rücklagen, Rücklagen. Aber ja, soweit trägt es sich!
Wer macht noch bei OctoPrint mit?
Ich habe einen kleinen, aber harten Kern von etwa zehn Leuten, die mir helfen bei der Issue-Triage, bei Supportanfragen aus dem Forum und so weiter. Auch bei der Moderation des Community-Forums und der Beantwortung von immer wieder auftretenden Fragen. Die Programmierung mache ich zu etwa 90 Prozent selbst.
Welchen Tech-Stack hast du da gewählt?
Der Server ist Python, das Frontend ist natürlich html, css, js. Die Modernisierung des Frontends ist aktuell eine ganz große Herausforderung. Ich habe mich in React eingearbeitet. Das wird es wahrscheinlich werden, denn langfristig müssen wir bei OctoPrint komplett die UI durch etwas Moderneres austauschen. Das Problem an der Stelle sind die Plug-ins, weil die alle noch auf dem alten Kram aufsetzen. Denn wenn die Plug-ins Frontend-Anteile haben, dann kannst du die nicht einfach auf etwas anderes portieren. Dazu müssen die Plug-in-Maintainer das anpassen. Momentan suchen wir nach guten Lösungen, die auch skalieren.
Was macht ein Plug-in beispielsweise?
Es gibt Plug-ins, die sich deinen Webcam-Stream schnappen und an einen Server im Internet schicken. Auf dem Server läuft eine Bilderkennung, die automatisch erkennt, wenn dein Druckjob fehlgeschlagen ist. Dann pausiert sie den Druckjob und schickt dir eine Benachrichtigung auf dein Handy. Es gibt mittlerweile um die 362 Plug-ins von insgesamt 262 Plug-in-Autoren. Der Autor, der die meisten Plugins von allen geschrieben hat, heißt Jim Neill. Der ist auch einer von den Leuten, die mir regelmäßig immer wieder helfen.
Also, wenn du mit jemandem technische Entscheidungen diskutieren möchtest, dann wäre Jim ein Kandidat?
Jim und andere, genau. Discord hat sich als eine wunderschöne Lösung für Diskussionen herauskristallisiert. Da habe ich einen harten Kern von Leuten, die sind einfach da. Und selbst wenn sie nicht konkret eine Antwort für mich haben, sind sie immer gut für rubberducking (Red.: Quietscheentchen-Debugging). Das heißt, du erklärst denen das Problem und dabei fällt dir dann selbst auf, ach Moment mal!
Ist es für Open-Source-Projekte typisch, dass eine Person das Projekt so stark trägt?
Das ist eher atypisch, außer bei kleinen Projekten und bei Nischenprojekten. Das Problem zeigt der XKCD-Comic, wo das Internet aus kleinen Bauklötzchen dargestellt wird. Alles ruht auf einem schmalen Stein, der mit “a project some random person in Nebraska has been thanklessly maintaining since 2003” markiert ist. Das hast du total oft, insbesondere bei Infrastruktursachen. Bei größeren Projekten, wie Blender (Red.: Blender ist eine freie, mit der GPL lizenzierte 3-D-Grafiksuite), ist natürlich unglaublich viel Funding und Personal dahinter. Bei OctoPrint sind wir wenige, weil es halt ein Nischenprodukt ist. Du musst erst mal Leute finden, die sowohl einen 3-D-Drucker haben als auch entwickeln können.
Wie viele Nutzer hast du denn bei Octo-Print?
Ich habe anonymes User-Reporting in OctoPrint eingebaut, natürlich nur opt-in. Nach meinem Kenntnisstand klicken das etwa 10 Prozent der Benutzer an. Wenn ich mir hier das Display anschaue, sind es nach aktuellem Stand 128.400 Instanzen. Das heißt, du hast über eine Million Nutzer als einzelne Softwareentwicklerin.
Sind die weltweit verteilt?
Ja, im Rahmen von Tracking mache ich auch grob auflösendes Geo-IP. Dazu habe ich ein Tracking-Plug-in gebaut. Das ergibt eine wunderschöne Ansicht, auf der ich mir anschauen kann, wo alle Nutzer sind. Mir fehlt immer noch die Antarktis! Sonst ist jeder Kontinent darauf vertreten und du kannst sogar die Menschendichte darauf sehen, also die Einwohnerdichte. In den USA ist es viel Ostküste, dann in der Mitte eher weniger und an der Westküste unglaublich viel.
Weißt du, was mit OctoPrint für coole Sachen gedruckt worden sind?
Wir haben dafür sowohl auf Discord als auch im Forum eine eigene Kategorie eingerichtet. OctoPrint ist mittlerweile ein Defacto-Ding, das heißt, viele Leute, die einen 3-D-Drucker haben, benutzen das. Einmal schaute ich einem YouTuber zu, der ein extremes Projekt mit vielen 3-D-gedruckten Teilen baute, und sah dann nur so am Rand meine UI aufblitzen. Das war cool.
„Das schreibt übrigens eine Frau, die sitzt bei Frankfurt in Deutschland“
Das ist ja der Traum eines jeden Softwareentwicklers …
Ja, ich betrachte das auch definitiv als mein Lebenswerk. Das ist es, was mir vorher als Corporate Jane fehlte. Jetzt helfe ich aktiv Menschen. Ich habe E-Mails bekommen, wo mir Leute erklärten, ich habe ihre Ehe gerettet, weil sie jetzt ihren Drucker in die Garage verbanne und trotzdem noch in der Family-time auf dem Handy kontrollieren könne, was los ist. Ich musste sehr lachen. Ich habe auch von Schulklassen gehört, die alle wissen, wer ich bin, irgendwo in den Slums von Chicago, weil der Lehrer einen 3-D-Drucker mit OctoPrint aufgesetzt hat und dann erklärte, das schreibe übrigens eine Frau, die sitze bei Frankfurt in Deutschland. So Sachen hebe ich auf, denn wenn du ein Open-Source-Projekt leitest, hast du auch viele negative Erlebnisse. Insbesondere Leute, die dir mit unglaublich vielen Ansprüchen begegnen.
Nach der Technik die ketzerische Frage, warum willst du überhaupt dreidimensional drucken?
Stell dir vor, du hast in deiner Küche eine Reihe von Pfannendeckeln, und du würdest sie gern an die Wand hängen.
Und dann druckst du dir die Haken, die die richtige Form haben, um deine Pfannendeckel zu halten? Es gibt ja Leute, die schlagen einfach einen Nagel in die Wand.
Das hält dann aber nicht so schön und ist nicht so genau. Ich fand die Vorstellung so schön, für diese ganzen Alltagsprobleme, die man hat, selbst etwas designen und bauen zu können. Ich habe im Alltag immer wieder Situationen gefunden, wo ich dachte, es wäre so schön, wenn es genau solch ein Teil gäbe. Etwas, das so und so geformt wäre und mit dem man das aktuelle Problem, lösen kann. Anstatt von der Stange Teile zusammenzukaufen und die so zu verbinden, dass es auf irgendwie funktioniert und doch nicht ganz das Richtige ist.
Die Freude daran, selbst nicht nur Software, sondern Alltagsprodukte zu designen?
Ja. Das Schöne ist ja, dass man mittlerweile so viele Designs aus dem Internet herunterladen kann. Alle 3-D-Druckerbesitzer werden eines Tages etwas brauchen, das schon jemand anderes designt hat. Dafür gibt es entsprechende Sharing-Plattformen mit einer offenen Lizenz. Ich habe jetzt zum Beispiel das Problem, dass ich ein paar smarte Steckdosen flashen will, und dazu bräuchte ich einen Adapter, um ein paar Pogo-Pins (Red.: Steckverbindung mit Stromdurchfluss) an der entsprechenden Stelle festzuhalten. Dann gucke ich eben im Internet und finde eine schnell druckbare Lösung und nach 20 Minuten habe ich das Teil in der Hand.
Am Ende des Interviews passiert jetzt noch etwas Wunderbares, Gina, die gute Fee kommt und gewährt dir einen Wunsch für das nächste Jahr. Was wünschst du dir für OctoPrint, für dich, für deine Community?
Mehr Leute, die sich an der Entwicklung beteiligen, damit das ganze Projekt noch einmal einen riesigen Satz nach vorn macht und ich wieder die Zeit habe, mich auf die Entwicklung zu konzentrieren. Das wäre mein großer Wunsch.
Gina, vielen Dank für das Interview!
Gina Häußge
entwickelt das 3-D-Druckersystem OctoPrint seit 10 Jahren als Open Source, https://OctoPrint.org/
github handle: foosel,
>5000 commits,
>6.900 Stars,
vermutlich >1.000.000 Benutzer weltweit
Passionate code monkey
Geek
Gamer Hobby baker
Creator & maintainer of OctoPrint
Lieblingssprache: Python
Lines of Code: 262.000
Das Interview führte ...
Dr. Johannes Mainusch (johannes.mainusch@kommitment.works) Berater für Unternehmen, die Bedarf im Bereich IT, Architektur und agiles Management haben. Dr. Mainusch ist seit 2012 Mitglied der IT Spektrum-Redaktion.