Tag 3 beinhaltete vor allem Web-Technologien und Dienste für die Entwicklung und den Alltag.

Die Einleitung fand durch einen Vortrag von Pieter Buteneers statt. Er erklärte vom Konzept, wie maschinelles Lernen verwendet werden kann. Hierzu gab es eine kurze Einleitung und anhand verschiedener Kurven (z.B. Anzahl der Einkaufe pro Stunde) auch praktische Beispiele.

Es stellte sich vor allem heraus, dass der Einsatz von maschinellem Lernen nicht so einfach ist, wie teilweise behauptet. Vor allem bei Ausreißern wird es für eine Maschine schwierig zu bestimmen, ob es an einer fehlerhaften Konfiguration lag oder ein „richtiger“ war.

React

Anschließend besuchte ich die React-Session von Matthias Fischer. Verglichen mit Europa wird das React-Framework in Amerika weit verbreitet eingesetzt. Vor allem Facebook (der Entwickler des Frameworks) setzt dieses stark ein. React stellt Funktionen bereit, um die Oberfläche einer Webseite durch JavaScript zu manipulieren. Hierbei ist u.a. zu beachten, dass JavaScript und HTML vermischt und die Skripte in einzelne Module extrahiert werden. Zudem hat React (anders als andere MVVM oder MVC-Frameworks) nur eine Bindung in eine Richtung. Angular beispielsweise ist bidirektional was, u.U. zu einer endlosen Event-Kette führen kann. Meiner Ansicht nach ist React vergleichbar mit AngularJS und ähnlichen JavaScript Frameworks.

WebAPI und Swagger

Nach einer kurzen Pause war der Vortrag „Der Weg der Daten vom Server bis zum Browser“ von Dr. Holger Schwichtenberg Programm. Hierzu hat er die Anwendung MiracleList geschrieben. MiracleList könnte als Wunderlist-Klon bezeichnet werden. Damit die Anwendung Cross-Plattform fähig ist, wurde Electron eingesetzt.
In dem Vortrag stellte Dr. Schwichtenberg die WebAPI-Architektur vor und den Aufbau der Anwendung.
Ein sehr nützliches Tool stellt Swagger dar. Ähnlich wie WSDL für SOAP-Basierte Webservices stellt Swagger die Schnittstellendefinition für REST dar. Ich finde es persönlich sehr schön wie Swagger eine interaktive Seite darstellt mit Beispielen, um direkt loszulegen.

Microsoft Cognitive Services

Don Wibier stellte nach der Mittagspause die Cognitive Services von Microsoft vor. Wir haben uns gemeinsam einen Dienst angeschaut, welcher ein Bild erkennt. Hierzu werden eine Beschreibung und verschiedene Tags zurückgeliefert. Dazu gibt Microsoft einen Prozentsatz an, mit welcher Sicherheit etwas erkannt wurde. Die Erkennung für echte Bilder (Fotos) war erstaunlich gut. Einfache Zeichnungen von Tieren konnten leider nicht sicher erkannt werden. Dort lieferte der Service für ein Hundebild „Two giraffes sitting on a tree“ (o.ä.) zurück. Hieran kann man sehen, dass der Mensch der Maschine doch überlegen ist 😉

Des Weiteren haben wir uns LUIS angeschaut. Mit diesem Service ist es möglich möglich, intelligent auf Text zu reagieren. Hierzu wurden Sätze definiert und Aktionen. Beispielsweise folgende:

  • Satz: „Book a flight from Berlin to London“, Aktion: „Book flight“
  • Satz: „How is the weather in Amsterdam“, Aktion: „Get Weather“

Die einzelnen Komponenten wie „Start“, „Ziel“ oder „Ort“ wurden markiert und der Service durch verschiedene Sätze trainiert. Anschließend konnte der Service anhand eines Satzes die Aktion (auch wieder mit Wahrscheinlich) bestimmen und auch die Komponenten wie Start und Ziel unterscheiden. Als JSON-Objekte können diese innerhalb einer Anwendung verwendet werden um eine Funktion wie BookFlight(string start, string destination) aufzurufen.

SQL Server

Unter dem Thema „SQL Server kostenlos (aber nicht umsonst)“ stellte Robert Panther kurz die Entwicklung der Versionen von Microsoft SQL-Server vor. Anschließend erfolgte ein kurzer Vergleich dieser. Im Laufe der Entwicklung ist zu sehen, dass die Versionen fast identisch sind und den gleichen Funktionsumfang haben (Compact und LocalDB ausgenommen). Allerdings ist die Leistungsfähigkeit in den „einfacheren“ Versionen eingeschränkt, indem nur eine bestimmte Anzahl an CPUs oder RAM genutzt werden kann.
Wenn man viel mit SQL-Servern unterwegs sind, waren einige interessante Informationen dabei.

Visual Studio Team Services

Wenn man überlegt, mit dem TFS (Team Foundation Server) in die Cloud zu gehen, konnte Nano Loje zu VSTS (Visual Studio Team Services) einiges dazu sagen. Zum einen sind TFS und VSTS gleich. Nach einigen Releases von VSTS wird ein Updatepaket geschnürt, um den TFS zu aktualisieren.
Der größte Unterschied besteht darin, dass mit VSTS die Quellcodeverwaltung in der Cloud stattfindet, statt im lokalen Netzwerk. In der Grundversion ist VSTS kostenlos. Bei mehreren Entwicklern, werden Gebühren fällig (Details dazu bitte auf der VSTS Homepage nachschlagen). Es können für Projekte verschiedene Stakeholder eingerichtet werden, welche nur auf bestimmte Elemente zugreifen kann. Durch einen Marketplace, ähnlich wie Extensions für Visual Studio, stehen verschiedene Pakete bereit, um VSTS zu erweitern. Es ist auch eine Integration mit Azure möglich.

Softwareentwickler als Rollenspiel

Nach diesem bereits langen Tage schaute ich mir die Night Session von Frank Blendinger und Christoph Menzel an. Der Titel „Software Engineering through the Eyes of a Role Playing Gamer“ klingt zumindest spannend. Das war es auch. Auf unterhaltsame Art und Weise traten wir als Softwareentwickler eine lange und schwierige Reise an. Es gab einen Chef, welcher unbedingt neue Features möchte, obwohl wir wissen, dass die Testabdeckung vollständig fehlt. Eine Affe führt jede Nacht einen händischen Test durch anstatt dies durch Automatisierung sicherer zu gestalten.

Wie in einem echten Projekt mussten hier Entscheidungen getroffen werden. Schreiben wir Tests? Wie machen wir eine Versionsverwaltung und Backups? Demokratisch durch Handzeichen hat sich die Gruppe für eine der Möglichkeiten entschieden. Je nachdem, ob die Möglichkeit richtig war, gab es einen Levelaufstieg.
Das sehr schöne daran war, dass dieses Rollenspiel doch einen wahren Kern beinhaltet hat. Es gibt keinen Goblin im Keller, der die Server wartet oder einen Dschinn, der bei Schwierigkeiten hilft.
Aus meiner Sicht wurden die täglichen Probleme und Aufgaben sehr interessant und unterhaltsam dargestellt. Zudem gab es nach jedem Abschnitt einige Infos und Tipps für die tägliche Arbeit.