BLOG

Posted on by | Posted in synyx Blog


Am 22.5. habe ich zum ersten Mal die Karlsruher Entwicklertage besucht.

Insgesamt war die Veranstaltung gut organisiert, man bekam schnell und unkompliziert seine Badge und die obligatorische Info-Tüte. Es gab eine große Auswahl an verschiedenen Talks, die auf 6 parallele Tracks aufgeteilt waren. Die einzelnen Tracks wurden unter anderem von einigen Usergroups wie z.B. der Java Usergroup, der .NET-Usergroup und dem lokalen OWASP-Chapter organisiert. Danke an die ehrenamtlichen Helfer für das Engagement!

Hier meine Eindrücke der Talks, die ich besucht habe:

Sinn und Nutzen von RESTful-Hypermedia-APIs
Kai Tödter gab in seiner Keynote eine Einführung in REST und Hypermedia, und stellte verschiedene Frameworks vor, mit deren Hilfe entsprechende Schnittstellen in Java und .NET implementiert werden können.
Die Ausrichtung war sehr detailliert und technisch, mehr ein kompletter Vortrag als eine Keynote.
Obwohl ich bei synyx schon mit Hypermedia und Spring HATEOAS in Berührung gekommen bin, war es interessant einige Grundlagen und Architektur-Überlegungen zu sehen.

Ops for Developers - Monitoring mit Prometheus für Java Entwickler
Trotz meiner Vorerfahrung mit InfluxDB, Prometheus und Grafana ist es für mich immer ein Zugewinn, neue Talks zum Thema Monitoring und Metriken zu hören. Nach einer kurzen Einführung zeigte Alexander Schwarz an einfachen Beispielen, wie man in verschiedenen Frameworks Metric-Endpoints bereitstellen kann, um sie mit Prometheus zu scrapen. Zusätzlich erklärte er wie man entsprechende Auswertungen in Prometheus bzw. passende Dashboards mit Grafana erzeugen kann, um Schlüsse über Auslastung und Laufzeitdaten aus seiner Anwendung zu ziehen.

Security Requirements im Software Development Lifecycle
Daniel Kefer und René Reuter stellten ihr Tool SecurityRat (Security Requirement Automation Tool)
 vor, das unter anderem auch als OWASP-Projekt anerkannt und unterstützt wird. Mit SecurityRat lassen sich Security-Requirements auf laufende und neue Software-Projekte abbilden.
Aus einem Katalog von Requirements werden durch die Auswahl bestimmter Kriterien sicherheitsrelevante Tasks und TODOs vorgeschlagen und lassen sich automatisch als JIRA-Tickets in der entsprechenden SW-Projekt-Queue abbilden. Im Vordergrund steht hier die Zeitersparnis, da in viele Firmen die Security-Verantwortlichen für mehrere Projekte verantwortlich sind. Durch die Abstraktion von Standardarbeiten wie dem Anlegen von Tickets und dem Erstellen von Checklisten werden diese entlastet.
Im weiteren gaben sie einen Ausblick auf ihr neues Tool SecurityCat (Security Compliance and Automated Testing), das als Teil der Continuous Integration Toolchain Sicherheitstests durchführen soll.
Security Baselines für Web-Applikationen in der Praxis oder: „Wieviel Sicherheit darf's denn sein?“
Ingo Hanke zeigte die Schwierigkeit auf, Kunden einen Mindeststandard an IT-Sicherheit als Teil der Dienstleistung zu verkaufen. Zentrales Argument war es, eine nachhaltige Lösung und Verbesserung für den Kunden zu schaffen. Da die BSI-Empfehlungen für die Basissicherheit in Unternehmen für viele Kleinunternehmer seiner Meinung nach nicht machbar sind, erklärte er, welche Grundsicherungsmaßnahmen er empfiehlt und mit den Kunden eruiert. Er verwendet hierzu eine Art Baukastenprinzip, um Gefahrenquellen in den Unternehmen zu evaluieren und entsprechende Maßnahmen anzubieten. Seiner Erfahrung nach haben viele Firmen keine Vorstellung und Vorkehrungen im Bereich IT-Sicherheit und können hier durch geringen Aufwand großen Nutzen erzielen. Aus seinem Talk gingen u.a. die Empfehlung hervor, mit neuen Kunden einen 2-stündigen Workshop zu machen, bei dem unbedingt ein Entscheider dabeisein sollte. Zusätzlich empfiehlt er der Software-Branche, Sicherheitsmaßnahmen in ihren Dienstleistungen einzupreisen und im Zweifelsfall auf Billig-Projekte zu verzichten.

Sicher in die Cloud mit Angular 2 und Spring Boot
Andreas Falk zeigte in einem sehr beispiellastigen Vortrag die Gefahren bzw. Anfälligkeiten von modernen Webapplikationen am Beispiel von Angular2 als Frontend mit Springboot im Backend.
Themen waren hier unter anderem die verschiedenen Schnittstellen, die das jeweilige Framework anbietet, und wie die implizite Absicherung z.b. in Angular2 gegen Angriffe wie Cross-Site-Scripting (XSS) und Cross-Site-Request-Forgery (CSRF) funktioniert.
Der Vortrag orientierte sich am OWASP Top10 Projekt (Version 2017 RC1).
Andreas erklärte anschaulich, welche Implikationen die in der Top10 aufgeführten Risiken mit sich bringen.

Löschen? Löschen. Löschen!
Volker Hammer referierte über Datenschutz und die notwendigen Pflichten von Service-Anbietern bei der Datenhaltung und -Vernichtung. Am Beispiel von TollCollect wurde gezeigt, welche Aufwände anfallen können, bis ein Standard entwickelt werden kann, der als DIN-Norm anerkannt wird. In einem Konglomerat aus mehreren großen deutschen Firmen ist in 11 Jahren die DIN 66398 "Leitlinie zur Entwicklung eines Löschkonzepts mit Ableitung von Löschfristen für personenbezogene Daten“ entstanden. Neben der Beschreibung waren hier auch die Erkenntnisse interessant, die man bei der Erstellung der Norm und dem Festlegen der Löschkonzepte erkannt hat, u.a. die Vereinfachung der Datenhaltung und -Sicherung.

Keynote: Software Engineering - the roots
In der Abschluss-Keynote sprach Fath Al-Fatish über die Aufwände in der Softwareentwicklung, die zu über 50% in der Wartung liegen und beklagte die mangelnde Aus- und Weiterbildung der Softwareentwickler. Auf spassige Art erklärte er die Problematik in der Aussensicht der Branche aufgrund von fehlendem Verständniss und Interesse an Nachhaltigkeit. In seinem Beitrag verwies er auf Arbeitsweisen und Verbesserungspotential. Innerlich habe ich mich an dieser Stelle leider gefragt, was in vielen anderen Betrieben schiefgeht, und habe mich hier bei allen Argumenten und Lösungsvorschlägen innerlich gefreut , da ich alles positive bei synyx wiederfinde.

Insgesamt eine empfehlenswerte Konferenz, nicht mein letzter Besuch!

Posted on by | Posted in Developer Blog | Tagged , , , ,


There are several different tools to maintain the internal structure of a java application available. The tools range from simple open source software like jdepend and degraph to full fledged architecture tooling like Structure101 or Sonargraph Architect. All these provide methods to define the internal structure of an application and validate it somehow.


Posted on by , and | Posted in Devoxx4Kids, synyx Blog | Tagged , , , ,


Ein bisschen aufgeregt waren wir dieses Mal schon. Im Gegensatz zu den vergangenen Events erwarteten wir am Samstag fast nur Kinder, welche noch nie bei der Devoxx4Kids mitgemacht haben. Wir haben uns darüber sehr gefreut, aber ein wenig aufregend ist das auch. Wie kommt das Event an? Wie die Workshops? Mit unseren „alten“ Hasen hatten wir bereits Erfahrung sammeln können. Um gleich vorwegzunehmen: es war super! Wir alle hatten sehr viel Spaß und wir werden bestimmt einige Kinder beim nächsten Mal wieder sehen.


Posted on by and | Posted in synyx Blog | Tagged , ,


Der nächste Sprint steht an... Wir treffen uns am Dienstag Morgen um 10:00 Uhr zum Refinement. Es gilt noch einige Themen fachlich genauer zu hinterfragen. Auch technische Grundlagen müssen noch geklärt werden.

Abends geht's zum Fußballtraining. Der Trainer hält erst einmal einen 15 minütigen Vortrag über das letzte Spiel am Sonntag. Dann fängt er auch noch an über das nächste Spiel zu reden wie wichtig das sei... Ich will doch nur kicken. Verteil endlich die Leibchen!


Posted on by | Posted in synyx Blog | Tagged , , ,


Nach fast 6 Jahren hat die synyx Urlaubsverwaltung

  • 70 offene Issues
  • 194 gelöste Issues
  • 2207 Commits
  • 99 Releases

Stand heute, 26. April 2017

...und eine kleine Geschichte, die durchaus erzählenswert ist und auch ein bisschen meine eigene Geschichte spiegelt.


Posted on by | Posted in synyx Blog | Tagged , , ,


Früh klingelte der Wecker am Freitag morgen. Deutlicher früher als gewohnt, doch bevor der erste Alarmton zur Höchstform auflaufen konnte, war ich bereits hellwach - synyxCamp! Am Office angelangt bot sich ein Bild, das an jugendliche Klassenfahrten erinnerte: Euphorisch-aufgeregte Leute huschen von hier nach da, packen ein paar letzte Sachen, schleppen allerlei Kisten Richtung Fahrstuhl und scherzen dabei über das Bevorstehende. Noch nicht im Bus angelangt – hatten wir unser Büro und den Alltag bereits hinter uns gelassen. Die Routine wich an diesem Morgen zurück, verdrängt von Spannung und Vorfreude.


Posted on by and | Posted in Devoxx4Kids | Tagged , , , , , , , ,


Dieses Jahr waren wir, Devoxx4Kids Deutschland, wieder als Mentoren mit bei der Organisation und Durchführung der JavaLand4Kids dabei. Die von der DOAG organisierte Veranstaltung findet alljährlich im Rahmen der JavaLand Konferenz statt. Am Tag 0, bevor die "Alt"-Entwickler zum Phantasialand in Brühl strömen, haben dort 30 Kinder aus den vierten Klassen der Brühler Sankt August Grundschule die Chance mit viel Spiel und Spaß erste Kenntnisse in der Programmierung zu erlernen.


Posted on by | Posted in Developer Blog, synyx Blog | Tagged , , , , , ,


A few months ago, here at the synyx office we started out with a simple idea: hook up a couple of sensors to an ESP8266 module (or twenty) and have it write its data somewhere for visualisation purposes. Then we got creative.


Posted on by | Posted in Azubi Blog, synyx Blog


Vermehrt kam es dazu, dass freie Meetingräume gesucht wurden und unklar war ob ein Raum frei ist. Es ist umständlich zuerst auf das Handy zu sehen oder zurück zum Arbeitsplatz zu gehen, um dann im Kalender zu prüfen, welcher Raum gerade frei ist. Viel praktischer wäre es doch, wenn die Räume von außen gekennzeichnet wären, ob sie frei sind. Doch wie könnte dies umgesetzt werden?


Posted on by , and | Posted in Developer Blog, synyx Blog | Tagged , , ,


 

Axon is a lightweight framework that supports the implemenation of CQRS patterns by providing commonly used building blocks. One of those patterns is an event sourced application architecture. Even though Event Sourcing and CQRS are orthogonal concepts they fit together very well and are often used together. Event sourcing in an ES/CQRS architecture means that all changes to the application state are done via domain events and the current state can always be rebuilt from the series of events available in a persistent event store. In addition to the event store there might also be one or more read models, for example to achieve opimtized query performance. No matter if there are read models or not, the event store is considered the single source of truth.