Einmal im Jahr treffen wir uns, um uns für 24 Stunden Projekten außerhalb unseres Kundenbusiness zu widmen. Der Hackathon ist eine großartige Möglichkeit um über den Tellerrand zu schauen, mit anderen Kolleg*innen zusammenzukommen und mit Spaß und Experimentierfreude an spannende Projekte ranzugehen. Wir finden uns zu Beginn des Hackathons spontan in Teams zusammen – so wissen wir natürlich erst welche Projekte wirklich zustande kommen, wenn's losgeht! Nach 24 Stunden stellen wir uns in einer Abschlusspräsentation gegenseitig vor, was wir in der Zeit erarbeitet haben. Und weil das echt tolle und abwechslungsreiche Themen waren, wollen wir euch einen kleinen Einblick in jedes Projekt geben. Viel Spaß beim Eintauchen!
In der Lounge unseres Kölner Office steht ein Kicker, der in letzter Zeit immer mal wieder zum Einsatz kam. Während eines Spiels zählen wir natürlich fleißig unsere Tore selbst, über mehrere Spieltage hinweg verliert man aber doch schnell den Überblick, wer insgesamt eigentlich vorne liegt. Wir haben deshalb den Hackathon genutzt, um mit Hilfe eines Raspberry Pis ein digitales Scoreboard für den Kicker zu erstellen, damit wir feststellen können, wer Gesamtsieger*in am Kickertisch ist! Um die Tore zu zählen, haben wir einen Bewegungsmelder ins Tor eingebaut, der mit jedem ins Tor geschossenen Ball auslösen und einen Punkt zählen soll. Gleichzeitig haben wir OLED Displays an unseren Raspberry Pi angeschlossen, die den aktuellen Stand anzeigen können. Wir sind allerdings während unseres Projekts auf einige Hindernisse gestoßen. So wurde beispielsweise der Bewegungsmelder nicht nur durch den Ball ausgelöst, sondern auch, wenn man ihn mit der Hand herausgeholt hat. Weitere Ziele wie z.B. eine Historisierung von Spielen oder eine Tormelodie mussten wir deshalb erstmal hintenanstellen, konnten aber bei der Schlusspräsentation des Hackathons schon mal den digitalen Torzähler vorstellen.
Beim diesjährigen Hackathon haben wir uns dem Thema Skill-Visualisierung gewidmet und die interaktive Skillsonne entwickelt. Ziel war es, eine benutzerfreundliche Darstellung der IT-Fähigkeiten unserer Teammitglieder zu schaffen, die nicht nur den aktuellen Wissensstand aufzeigt, sondern auch Potenziale für die Weiterentwicklung offenbart.
Innerhalb von 24 Stunden haben wir ein Minimum Viable Product (MVP) gebaut, das auf einem Kotlin-Backend mit PostgreSQL-Datenbank basiert und ein Frontend mit D3.js, React, Tailwind und PrimeFaces verwendet. Das Projekt umfasst unter anderem einen Testdaten-Generator, der sinnvolle Datensätze erstellt und unterschiedliche Skills sowie Mitarbeiter*innen simuliert. Mithilfe dieser Testdaten konnten wir nach 24 Stunden bereits ein funktionsfähiges Sonnendiagramm präsentieren. Die einzelnen Skills werden in Form von Tickets in Quadranten dargestellt und zeigen die durchschnittliche Bewertung der Teammitglieder. Je weiter der Skill zur Mitte der Sonne rückt, desto mehr stellt er eine Kernkompetenz dar.
Es besteht zudem die Möglichkeit, Skills nach Teams, Personen oder speziellen Ansichten zu filtern. So kann beispielsweise für Kubernetes sowohl die Entwickler*innen- als auch die Ops-Sicht separat angezeigt werden. Die Skillsonne soll zukünftig dabei helfen, einen schnellen Überblick über vorhandene Fähigkeiten zu bekommen und gezielt Unterstützung für Projekte zu finden. Die interaktive Darstellung schafft Transparenz und vereinfacht die Zusammenarbeit im gesamten Team.
Einige Kolleg*innen brauchten zur Umsetzung ihrer Projekte Lötkolben & Co. So kam die Idee auf, gleich zwei Fliegen mit einer Klappe zu schlagen und nicht nur die Kolleg*innen mit ihrer benötigten Hardware auszustatten, sondern gleich noch einige andere zu begeisterten Löt-Fans zu machen! Wir haben also eine Lötstation aufgebaut, ein paar Bauteile mitgebracht und allen interessierten Teilnehmer*innen eine Einführung ins Löten gegeben. Unser Ziel, so vielen Menschen wie möglich das Löten beizubringen, ist komplett aufgegangen: Unsere Lötwerkstatt war so gut wie immer besetzt und die Nachfrage brach nicht ab – bei einem kommenden Open Friday werden wir deshalb weiterlöten! Ganz nach dem inoffiziellen Motto des Hackathons: Löten verbindet!
Unser NördQuiz ist auf Messen und Konferenzen ein richtiger Publikumsmagnet: Ein schnelles Quiz mit nerdigen Fragen und zu gewinnen gibt’s meistens auch noch was! Um ihre Antwort als erstes geben zu dürfen, drücken Teilnehmer*innen dabei auf einen Buzzer. Diesen mussten wir bisher entweder teuer leihen oder günstig, aber nicht unserem Qualitätsanspruch entsprechend, kaufen. Weiterer Minuspunkt: Keine der Lösung hat mit unserem Quiz interagiert.
Um also langfristig Kosten zu sparen und unseren Teilnehmer*innen durch eine wirkliche Interaktion mit unserer Software eine bessere User Experience zu gewährleisten, haben wir den Hackathon genutzt und ein eigenes Buzzersystem entwickelt.
Das war nicht ganz ohne, und wir sind in den 24 Stunden auf so einige Hürden gestoßen. Angefangen hat es mit unserer Hardwarebestellung: Neben der Buzzerhardware an sich, wollten wir ein Raspberry Pi Micro nutzen – bei uns angekommen, ist allerdings nur das leere Tütchen eines Raspberry Pi Micros. Da muss man erstmal überlegen, wie man weitermacht. Wir sind also rüber zu unserem Kollegen Marc, in der Hoffnung, dass dieser für seine Lötwerkstatt vielleicht ein Raspberry Pi Micro dabeihatte. Leider konnte er uns nur mit einem Raspberry Pi Zero helfen. Diesen mussten wir dann relativ schwierig in eine einfache Tastatur verwandeln – und auch noch löten!
Die bereits bestehende fertige NördQuiz Software wurde von unseren Frontend Kolleg*innen entwickelt. Um sicherzustellen, dass das Projekt auch in Zukunft von möglichst vielen Entwickler*innen gewartet werden kann, haben wir die Architektur einmal kritisch beleuchtet und einige Dinge massiv vereinfacht, sodass das Projekt evolvierbar bleibt.
Letztendlich waren wir mit unserem Hackathon Projekt erfolgreich und konnten bei der Abschlusspräsentation bereits eine Runde NördQuiz mit neuem Buzzer spielen! Für die Zukunft haben wir noch geplant, einen Timer zu integrieren – und die ein oder andere weitere Idee kommt uns sicher auch noch!
Vielleicht hast du ja schon mal mit uns das NördQuiz auf der Javaland oder der JAX gespielt? Jetzt haben wir die „kleine Schwester“ entwickelt und uns wieder von einem existierenden Spiel inspirieren lassen: Codenames!
Aber von vorn. Gestartet sind wir mit einer Nörd-Quartett-Idee – so richtig analog und als Give-away gedacht, von Nerds für Nerds. Schnell war der 10-köpfigen CI-Gruppe klar: zu komplex, kein Standmagnet, zu wenig Interaktion und digital wäre uns eh lieber.
In einer gut durchmoderierten Brainstorming- und Planungs-Session haben wir „Codenames“ für uns entdeckt und „Nördnames“ draus gemacht: Spielidee im Single Player Modus übernommen, Inhalte auf Basis des bestehenden NördQuiz erarbeitet, den Look and Feel auf CI übertragen und erste Features programmiert. Menschen in ganz unterschiedlichen Rollen haben sich in Team Content, Team Visual und Team Dev aufgeteilt und so hatten wir am Ende ein vorzeigbares Ergebnis, das Lust auf mehr macht und uns zwecks Finalisierung und Weiterentwicklung wohl beim ein oder anderen upcoming Open Friday noch beschäftigen wird. Und wer weiß, vielleicht spielen wir 2025 ja mal eine Runde mit dir!
Im Rahmen unseres diesjährigen Hackathons haben wir uns Gedanken gemacht, wie wir virtuelle Objekte im physischen Raum auf der Apple Vision Pro – dem Mixed-Reality-Headset von Apple – darstellen können und wie eine mögliche menschliche Interaktion damit aussehen würde. Um dieses Ziel zu konkretisieren haben wir in der konzeptionellen Phase einige Ideen gesammelt, und es stellte sich relativ schnell heraus, dass wir ein kleines, leichtgewichtiges Mini-Game als Kontext für unser Ziel präferieren. Am Ende haben wir uns entschieden, ein beliebtes Kirmes Spiel umzusetzen, bei dem die Spieler*innen einen Dartpfeil von einer Oberfläche greifen und auf einen Ballon werfen können. Falls der Ballon von dem Dart getroffen wird, zerplatzt dieser. Dieses Spiel haben wir „Umwerfend“ getauft!
Nachdem wir uns auf diese Spielidee festgelegt haben, sind wir in die Implementierungsphase übergegangen. Dabei haben wir uns das RealityKit Framework von Apple genauer angeschaut. Dieses Framework bietet Entwickler*innen viele Werkzeuge, um 3D Simulationen für Augmented Reality speziell auf der Apple Vision Pro umzusetzen. Unter anderem konnten wir uns aus einer umfangreichen Bibliothek von bereits vorgefertigten 3D Objekten bedienen, sodass wir zeitnah unsere Wurfobjekte im Raum platzieren konnten. Eine Herausforderung war allerdings die Interaktion mit den Objekten. Die natürliche Geste des Greifens wird standardmäßig nicht unterstützt, sodass wir eine eigene angepasste Gestenerkennung implementiert haben. Zum Schluss haben wir dann die Ballons im Raum platziert und ihnen die Eigenschaft des Platzens bei einer Kollision mit einem Wurfobjekt hinzugefügt. Ein User Interface, um das Spiel neu zu starten, durfte dabei ebenfalls nicht fehlen.
Zusammenfassend haben wir unsere Zielsetzung erreicht und dabei viel über RealityKit sowie über die Entwicklung auf der Apple Vision Pro gelernt und hatten natürlich sehr viel Freude dabei. Das Feedback von Kolleg*innen bei und nach der Präsentation war sehr positiv und es gab die Gelegenheit das Spiel nach der Präsentation auszuprobieren.
Geo-Maps, also georeferenzierte Karten, sind eine großartige Möglichkeit, Daten mit geografischen Informationen zu verknüpfen und räumliche Muster aufzuzeigen. Viele moderne Analytics-Tools haben diese Funktion inzwischen fest integriert. Beim Hackathon haben wir die Geo-Map-Funktionalitäten der Analytics-Plattform „Pyramid“ auf Herz und Nieren geprüft – inklusive der Herausforderungen und Tricks, um eigene Karten zu integrieren.
Eine Standard-Weltkarte lässt sich in Analytics-Tools meist problemlos und intuitiv darstellen. Spannender wird es, wenn wir ins Detail gehen: Wie sieht es mit Bundesländern, Wahlkreisen oder sogar Netzabdeckungsbereichen aus? Pyramid bietet hier die Möglichkeit, eigene Geo-Maps zu importieren und sie direkt mit Analysedaten zu verknüpfen – sofern die Kartendaten als GeoJSON-Dateien vorliegen. Dieses offene Datenformat ist auf vielen Plattformen kostenlos erhältlich und ermöglicht den schnellen Import individueller geografischer Ebenen.
Die Königsdisziplin ist das Erstellen eigener Karten: Aber auch hier gibt es eine Vielzahl von kostenlosen Tools, die die Koordinaten der Klicks in eine georeferenzierte Karte erfassen und direkt in eine GeoJSON-Datei schreiben. So haben wir beispielsweise den Grundriss des CI-Gebäudes in der Marie-Curie-Straße in ein Polygon verwandelt, das sich in Pyramid direkt mit Auswertungsdaten verknüpfen ließ.
In der abschließenden Präsentation konnten wir die komplette Bandbreite der Möglichkeiten zeigen – von der einfachen Darstellung einer Weltkarte bis hin zur Visualisierung einzelner Arbeitsplätze in unserem Office. Und Spaß hat's gemacht – so viel, dass die verbleibenden losen Enden auch nach dem Hackathon noch verknotet werden dürften. Inklusiv Feinschliff bei der Darstellung der Arbeitsplätze: Die Tische waren nämlich noch nicht ganz rechtwinklig!
Nachdem in den letzten Jahren ein regelrechter Hype um Sprachmodelle entstanden ist, haben wir uns bei CI natürlich auch intensiv mit der Frage beschäftigt, inwiefern wir in unserer täglichen Arbeit von ihnen profitieren können. Wir sind der Meinung, dass KI unsere Arbeit in naher Zukunft nicht ersetzen wird, sie jedoch ein Werkzeug ist, das unseren Alltag erleichtern und unsere Ergebnisse verbessern kann. Ein Bestandteil unserer Arbeit ist das Schreiben von Programmen. Es gibt bereits Services von großen Anbietern wie Microsoft und Amazon, die es ermöglichen, Sprachmodelle in unseren Entwicklungsumgebungen zu nutzen. Anwendungsgebiete sind unter anderem Analysen von Fehlern, Vervollständigungen von Ausschnitten und die Dokumentation. Ein Nachteil ist jedoch, dass diese Services zum Großteil über das Ausland angeboten werden und wir eine Auswertung der Daten nicht vollständig ausschließen können. Daher haben wir den Hackathon genutzt, um einige Frameworks zu testen, welche die Sprachmodelle auf unserer Hardware anbieten und in unsere Entwicklungsumgebungen einbinden können.
Mit dem OpenSource Projekt vLLM konnten wir mit sehr wenig Aufwand einen Server hosten, der das Sprachmodell von Huggingface heruntergeladen und über eine API-Schnittstelle angeboten hat. Anschließend konnten wir die OpenAI-kompatible Schnittstelle nutzen und unsere Entwicklungsumgebung mit dem LLM verbinden. Hierfür haben wir continue.dev getestet. Über VS-Code konnten wir das Plugin installieren und anschließend mit dem LLM kommunizieren und Codeausschnitte generieren und analysieren lassen.
Während das Bereitstellen des Servers einfach funktionierte, haben wir sehr viel Zeit in die Auswahl der Sprachmodelle investieren müssen. Die Sprachmodelle sind sehr volatil und abhängig vom aktuellen Kontext, sodass wir einige testen mussten, bevor wir zu nutzbaren Ergebnissen gekommen sind.
Wir sind uns sicher, dass die Modelle sich stetig verbessern und eine Nutzung durch entsprechende Frameworks immer einfacher wird. Auch in Bezug auf die Hardware werden sich zukünftig einige Verbesserungen ergeben, sodass es sich mehr lohnt, die Modelle unabhängig zu betreiben.