Zusätzlich hielt während der gesamten Veranstaltung ein nicht endender Strom von Kaffee unsere Konzentration aufrecht. Da es angeboten wurde, haben wir zumindest teilweise am ersten Tag an einer Yogastunde teilgenommen. Diese fand etwas überraschend im Sitzen auf einem Stuhl (und trotz des guten Wetters drinnen) statt. Nach einem Start mit der Wechselatmung Anuloma Viloma
5 machten wir unter der Anleitung von Yogalehrerin
Janne Heinssen noch ein paar weitere Übungen. Das war zum Runterkommen total super.
3. VORTRÄGE UND NOCH MEHR VORTRÄGE
Einer der ersten Vorträge, den wir gehört haben („Rapid Prototyping von Browser-GUIs“), wurde von
Markus Siering von Xing gehalten. Die Idee hinter diesem Projekt ist es, handgezeichnete Layouts abzufotografieren und durch einen Machine Learning-Ansatz in echten Code zu übersetzen. Es reichten dabei schon wenige Trainingsskizzen, bis die Maschine verstanden hat, welche GUI-Elemente verwendet wurden. Die Idee zur Realisierung durch ein neuronales Netzwerk basiert auf einem Artikel aus dem
Design-Blog von Airbnb. Die erkannten Layouts waren vergleichsweise einfach aufgebaut und der Prototyp hat erstaunlich gut funktioniert.
Ein weiterer Vortrag („Machine Learning in the Browser“) zum interessanten Thema Machine Learning wurde von der bunt kostümierten Lian Li
6 gehalten, die entgegen häufigen anderslautenden Vermutungen nichts mit dem Hardware-Hersteller gleichen Namens (
聯力) aus Taiwan zu tun hat. Als Beispielproblem diente die Bestimmung von Komplementärfarben aus RGB-Werten. Zwar kann diese Funktion auch direkt implementiert werden; es war jedoch ziemlich spannend, das Erlernen der gesuchten Funktion (das mit der auf
TensorFlow basierenden API
deeplearn.js bzw. seit kurzem
TensorFlow.js realisiert wurde) schrittweise im Browser zu beobachten, wo es auch stattfand. Vorher wurden noch grob die mathematischen Grundlagen neuronaler Netze (gerichtete Graphen, Vektor-Matrix-Multiplikation usw.) umrissen.
Etwas unerwartet gab es auch einen reinen Theorievortrag („How Hard can it be“).
Anna Melzer stellte anhand von äußerst anschaulichen Beispielen kurz einige Formalismen zur Akzeptanz von Sprachen vor (Endliche Automaten, Kontextfreie Grammatiken, Push-Down-Automaten, Turing-Maschinen). Dann erläuterte sie, dass diese Formalismen eine verschiede Ausdrucksstärke besitzen, die die Anordnung der akzeptierten Sprachen in der Chomsky-Hierarchie zur Konsequenz hat.
Weiter gab es noch eine offene Diskussionsrunde zum Thema Code Reviews und natürlich mehrere Vorträge über
funktionale Programmierung in JavaScript. Zu den von uns verwendeten Technologien passte auch ein Vortrag, in dem die Implementierung von Web Hooks mit
Amazon Web Services umrissen wurde.
Technisch gesehen ist für unsere Tätigkeit zunächst JavaScript als Programmiersprache relevant, da sie bei FLS sowohl clientseitig (in Browser-Komponenten) als auch serverseitig (
in Node.js ) verwendet wird. Ebenso wichtig ist für uns das Thema Cloud Hosting, z.B. durch Amazon Web Services. Algorithmisch sind neuronale Netze insofern interessant für uns, als sie grundsätzlich auch für
Tourenplanungsprobleme verwendet werden können.
5. FAZIT
Wir haben viele Eindrücke mitgenommen, interessante Vorträge angehört und ein paar Kontakte geknüpft. Anders als der Name der Veranstaltung es vermuten lässt, geht es keineswegs ausschließlich um Software-Entwicklung mit JavaScript im allerengsten Sinne; nicht alle Vortragsvorschläge waren zu technischen Themen. Auf jeden Fall sind neuronale Netze ein sehr interessantes Thema, auch wenn die Verwendung zumindest in einigen Bereichen kritisch
7 gesehen wird. Natürlich ist nicht jedes Thema gleichermaßen relevant für unsere tägliche Entwicklungsarbeit; wir haben uns aber sehr über die offene Atmosphäre und die große thematische Breite gefreut.