Mir drängt sich die Vermutung auf das entweder die U-Bahnen, S-Bahnen und Busse keine Klimaanlage haben oder diese nicht einschalten wollen... Herrlich bei 27 Grad um 9 Uhr morgens....

09:30 - Modern SQL: Evolution of a Dinosaur

Wir beginnen den Tag mit einem englischen Vortrag von Markus Winand. Interessantes Englisch.

Er beschreibt die Unterschiede der verschiedenen SQL Versionen und was bei den Statements so dazugekommen ist.
Interessante Ausführung über die over() Klausel bei SQL Statements. Zur Erklärung: SQL wird benötigt um Daten aus einer Datenbank auszulesen, zu ändern oder zu löschen.
Die over() - Klausel: Aggregiert ohne GroupBy, es nimmt den Durchschnittswert

SQL: 2011 hatte die offset-Klausel, die Abfragen verlangsamt und meist falsche Werte liefert
Snippet:
OVER(ODER BY ...
ROWS BETWEEN 1 PRECEDING
and 1 PRECEDING)

Einfacher mit LAG()
select *, balance,
COALESCE (LAG(balance),
OVER(oder By x), 0)
from t

Verfügbare Funktionen unter anderem wären lead und lag
System Versioning (Time Traveling) ist auch noch ein spannendes Thema auf das er eingeht. Grundlegend sind insert, update, delete destruktiv. Tabellen können somit Systemversionen, Anwendungsversionen oder beides sein.

mit for & as for kann alles abgefragt werden was man will:
select * from t for system_time as for timestamp '2019-05-05 10:30:00'

Hier hab ich den Vortrag dann abgebrochen, da es mir für Code Beispiele, SQL Abfragen und die feinen Unterschiede auf Englisch eindeutig zu Früh war. Das Hirn war noch nicht ganz wach dafür....

10:45 - Introduction to Architectural Katas

Frank Sons

Interessant, er spricht über die 4 Werte des agilen Manifests. Auch wenns auf englisch ist, kommt mir das doch sehr bekannt vor. Allgemein hätte man den Vortrag lebendiger gestalten können. Wurde am Ende etwas langatmig und langweilig.

Der Unterschied zwischen einem Meister und einem Anfänger? Der Meister scheiterte meist schon öfter der als Anfänger.

Was ist ein Kata
a kata is an exercise in karate where you repeat a form many, many times, making littel improvements in each. - codekata.com

Die grundlegende Idee hinter Kata
Überschaubar in Größe und Dauer. Machen Sie Fehler, scheitern Sie und sammeln Sie Erfahrungen in einer Gruppe.

Wie funktioniert es - simple: Einführung -> Planung -> Präsentation -> Feedback

Die "Regeln"

  • Sie können dem Kursleiter Fragen zum Projekt stellen
  • Sie müssen bereit sein, eine grobe architektonische Vision des Projekts zu präsentieren und Fragen dazu zu verteidigen
  • Sie müssen bereit sein, Fragen zu den Präsentationen anderer Teilnehmer zu stellen
  • Sie können sicher Annahmen über Technologien treffen, die Sie nicht gut kennen, solange diese Annahmen klar definiert und formuliert sind.
  • Sie können möglicherweise nicht davon ausgehen, dass Sie die Befugnis haben, das Entwicklungsteam zu beauftragen
  • Jede Technologie ist ein faires Spiel (aber Sie müssen den Einsatz rechtfertigen)
  • Irgendwelche anderen Regeln, nach denen Sie vielleicht fragen

Ein Kata Beispiel: "We're taking requests"
Ein lokaler Radiosender möchte DJs enger mit ihrem Publikum verbinden, damit die Zuschauer Songs anfordern, über gerade abgespielte Songs abstimmen, über die tägliche Playlist des DJs abstimmen können und so weiter.
Benutzer: unsicher; was auch immer die lokale "Musik" -Community ist
Anforderungen: zeitnah mit der Musik auf dem Ari synchronisiert; Abstimmungsmechanismus für Benutzer; Erreichbarkeit von Mobilgeräten

Meist ist es ein 2-tägiger Workshop mit 4 Katas. 2 Katas jeden Tag. Es ist cool, mit einem Whiteboard zu arbeiten, aber nicht zwingend Notwendig. Der erste Schritt besteht darin, zu zeigen, wo sich die Benutzer befinden, und dann die Usecases zu überprüfen.

Wikipedia beschreibt Kata wie folgt:

Kata (Programmierung)
Kata bezeichnet in der Programmierung eine kleine, abgeschlossene Übung. Der Name rührt aus den japanischen Kampfkünsten her (vergleiche Kata) und betont die Bedeutung von Praxis und häufiger Wiederholung für das Lernen. Der Begriff wurde 2007 von Dave Thomas geprägt. In seinem Blog CodeKata stellt Thomas zurzeit 21 Übungen vor. Das Kata Manifesto nennt zusätzlich sicheres Experimentieren, Vielfalt und gemeinsames Lernen als wichtige Aspekte. Eine Kata hat demnach nicht nur eine Lösung des gestellten Problems, sondern soll auf verschiedene Arten und mit unterschiedlichen Techniken implementiert werden. Die individuelle Lösung des gestellten Problems an sich ist ein klares Nicht-Ziel, weshalb triviale Probleme wie das Fizz Buzz Kata eine gute Einführung sind.
Die den Begriff prägende Clean-Code-Bewegung betrachtet Programmierung als Fertigkeit (im Gegensatz zu einer Programmierkunst oder Ingenieursleistung) und Katas als Möglichkeit, zu lernen, technische Schulden gar nicht erst aufzubauen. Oft wird die Durchführung von Katas mit testgetriebener Entwicklung empfohlen.

12:00 - Webanimationen effizient einsetzen

Nachdem ich mir zwei englische Vorträge schon am Vormittag reingezogen habe, wird es jetzt der deutsche Vortrag. Auch wenn es mir um den anderen Vortrag echt leid tut...
Vortragender ist Daniel Connerth.
Brauchen wir wirklich Animationen? Grundsätzlich nein. Animationen sind aber die Farben im Web. Unterstützt das Verständnis von komplexen Informationen. Es ist ein klassisches Storytelling Prinzip.
77% der Benutzer reagieren besser auf visuelle Informationen als auf reinen Text. Die Integration von Multimedia auf einer Webseite steigert die Conversion um 80%.
Animation/Interaction/Social Engagement erzeugen Emotionen.
Durch visuelles und interaktives Storytelling lässt sich die Komplexität eines Themas deutlich herunter brechen und besser aufbereiten.

too often we see boring "animate in" animations with no reason.
Das schädigt den Ruf. Animationen sollten eingesetzt werden um etwas zu erreichen und nicht der Animation wegen.

Web Animations: The Ultimate Guide
Eine Animation ist die Visualisierung von Veränderungen über eine Zeitperiode

Tip: free flat animated preloaders für Webseiten auf pinterest zu finden

In welchen Bereichen nutze ich Animationen
1. UI Animation: User Interface Animation. Sind dazu da um den User zu führen, Kontext besser zu verstehen, mit Interface besser zurecht zu kommen. Mit kleinen Spielerein kann man User bei Fails milde stimmen (wenn zum Beispiel der Download nicht funktioniert dafür jedoch eine lustige Animation abläuft)
2. Storytelling: Geschichten erzählen mit Animationen.

Gelungenes Beispiel für Storytelling: http://www.sbs.com.au/theboat/

Challenges
Problem: Design in the Browser - heißt soviel wie das Design im Browser erstellen
für Animation benötigt man Expertise aus Design/Storytelling/Redakteur und Coding für eine saubere Umsetzung

eine der stabilsten Tools am Markt: https://greensock.com/

Adobe Animate CC - Tool für Animationen ist das komplexeste Tool
Tumult Hype https://tumult.com/hype/ - Für IOS keine Windows Version
Google Web Designer - Hauptsächlich für Banner, alles andere wird mühsam

SVG vs Canvas Overview: gibt kein Richtig oder Falsch. Canvas rendert sehr viel, mehr als SVG. SVG kann in den Details hacken. Je mehr Ankerpunkte und Objekte desto länger die Renderzeit

Animation ist nicht gleich Animation!
Think inside the Box! Bei Animationen ist weniger oft mehr.
Vorab sollte man immer überlegen, was hab ich, wo sind die Kernkompetenzen.

Beispiel: Bilder mit den Mouse Koordinaten verbinden, bewegen das Bild leicht wenn man mit der Mouse umher fährt
oder
Hochformatiges Foto: beim Einstieg in die Seite bewegt sich das Bild von oben nach unten. Sieht aus wie ein Video ist aber ein Bild.
gute Effekte erzielt man auch mit Hover Deklaration im CSS auf Bilder. um Beispiel: Foto mit Truhe zu. Mouse Hover: Truhe offen

Adobe XD im kleinen Kostenlos nutzbar. Werd ich mir anschauen ;)
Für einfache Animationen.

Fazit: Sehr spannend und gut aufbereitet. Viel Info in kurzer Zeit.