Felix Gertz -

Software-Entwicklung und Beratung

Hallo, mein Name ist Felix Gertz und ich bin Fullstack Software-Entwickler, Berater und System-Integrator mit mehr als 25 Jahren professioneller Erfahrung.

Rich Internet Applications wie komplexe Webanwendungen oder Touchscreen-Point-of-Service-Terminals mit interaktiven Medien, werden, neben normalen Webseiten, leidenschaftlich von mir entwickelt.

Im Sinne der EDV entwerfe ich außerdem umfangreiche Schnittstellen und Backendsysteme und binde diese unter Datenschutzgesichtspunkten an.

Nachhaltige Deployments, auf klassischen Linux-Serverarchitekturen, machen Deine Projekte durch Vermeidung von Überkomplexität kostengünstig und langzeitwartbar. Wenn Du es aber wirklich wissen möchtest, dann berate ich Dich auch gerne bei Kubernetes und AWS.

Buche mich außerdem für externe objektive Aufwandseinschätzung Deiner bestehenden oder geplanten Projekte.

Ich erbringe Leistungen für größere agile Teams oder Kurzprojekte mit knackiger Planung.

Ich spreche Deutsch, Englisch und Dänisch, wohne in Hamburg, Deutschland und arbeite gerne weltweit.

Lass uns zusammen arbeiten und kontaktiere mich unverbindlich.

Telefon: +49 40 28578495
Email: webinfo@felixgertzPUNCTUMde
LinkedIn
Xing

Felix Gertz am Bass

Fokustechnologien

Diese Technologien und Prinzipien verwende ich aktuell, regelmäßig und flüssig. Obsolete Technologien habe ich nicht aufgeführt.

React.js (seit 2015)
Node.js für Serveranwendungen (seit 2011)
Linux-Server und -Infrastruktur (seit 1998)

HTML/CSS (seit 1996)
Funktionales asynchrones JavaScript (seit 2011)
TypeScript (seit 2019)

PostgreSQL (seit 2009)
MongoDB (seit 2012)

Webserver, HA-Cluster (seit 1998)
Netzwerke und Sicherheit (seit 1998)
Container (LXC, LXD, Docker) (seit 2015)
Kubernetes (seit 2017)

Test Driven Development (seit 2010)
Rechtliches und Datenschutz (seit 2005)

Referenzprojekte

Benutze die linke und rechte Pfeiltaste, um zwischen den Referenzen zu navigieren.

DB InfraGO - Infrastrukturmanager

Der Infrastrukturmanager der DB InfraGO AG ist eine Neuauflage und Verbesserung eines bereits bestehenden in Smalltalk geschriebenen Alt-Systems, welches wegen seines Alters nicht mehr gepflegt werden kann.

Mit dem Infrastrukturmanager des IDBF können Gleisbilder und Betriebsstellen, z.B. Bahnhöfe, des Deutschen Schienennetzes eingesehen, überprüft und konsolidiert werden. Die Gleisbilder enthalten auf Wunsch alle Signale, Weichen und weitere TIOs (Topografische Infrastruktur Objekte). Durch Eingabe und Reihung von Betriebsstellenkürzeln (RIL100) können ganze Strecken und Streckenabschnitte dargestellt werden, die über das Rendern von dynamischen SVGs sehr detailreich und performant angezeigt werden können.

Die Webapplikation ist in TypeScript und React.js geschrieben, verwendet Redux Saga für das Application-State-Management und ein stark erweitertes MUI für die Anzeige von Komponenten. Mittels Cypress.js werden "End To End"-Tests, so wie Integration-Tests gefahren.

Das "Front End" kommuniziert mit einem "Backend For Frontend" (BFF), welches als Proxy zu den weiteren Schnittstellen fungiert und über Websockets eine Realtime-Multiuser-Fähigkeit bereitstellt, die für die interaktive Konsolidierung der Gleisbilder wichtig ist. Das BFF ist mittels Node.js, TypeScript und Express.js realisiert und ist auf einem Kubernetes-Cluster gehostet.

DHL Group (DPDHL) - Poststation

TypeScript-React-Applikation zum Bedienen der Poststation durch den Kunden direkt über den Touchscreen der Station vor Ort.

Die Poststation ersetzt in ländlicheren Gegenden die alten Postämter oder Filialen und es können alle grundlegenden Angebote und Produkte der Post, z.B. das Aufgeben eines Einschreibens, durch die Station automatisiert verwendet werden. Des Weiteren ist die Poststation die Schwester der Packstation, allerdings von Grund auf neu entwickelt.
Die Touchscreen-Anwendung ist in TypeScript und React.js geschrieben und verwendet MUI als Bibliothek für die Basiskomponenten, welche auf die Bedürfnisse der Poststation erweitert wurden.

Das Application-State-Management wird über eine eigens entwickelte bidirektionale Architektur unter Beihilfe von RxJS umgesetzt und greift dabei sowohl auf die Hardware-Schnittstelle der Poststation zu, welche z.B. Fächer öffnen oder den Scanner auslesen kann, als auch auf die Services-API der DHL Group, um die Aufträge zu verarbeiten.

Die Benutzereingaben und der DOM werden in seinem Verhalten mittels Jest und der React Testing Library getestet.

Mache Dir selbst ein Bild:
Finde die Poststation in Deiner Nähe!

Tredict

Tredict ist eine Webapp, die weltweit von tausenden Ausdauersportlern und Trainern zur herstellerunabhängigen Trainingsvorausplanung- und Nachanalyse verwendet wird. Tredict wird von mir entwickelt und betrieben.

Tredict – Logo Ausdauersportler planen mit Tredict ihre Aktivitäten im Trainingskalender, welche dann automatisch über die entsprechenden Hersteller-oAuth-Schnittstellen auf der Sportuhr des Sportlers zur Ausführung und zur richtigen Zeit angezeigt werden. Nach der Absolvierung einer Sporteinheit kann diese dann zur Nachanalyse im Trainingslogbuch von Tredict angezeigt werden.

Tredict ermöglicht die Verbindung von Athletenprofilen untereinander, so daß der Trainingsfortschritt von einem Trainer oder Bekannten geplant oder verfolgt werden kann.

Das Frontend ist eine in React.js und modernem JavaScript geschriebene Webanwendung und läuft sowohl auf dem Desktop, wie auch dem Mobiltelefon.

Backendseitig wird eine Service Oriented Architecure (SOA) verwendet, die mittels verteilten Node.js-Services und modernem JavaScript realisiert ist. Einzelne Services übernehmen dabei domänenspezifisches Aufgaben, wie z.B. die Verarbeitung von Aktivitäten, die Importschnittstelle, Bereitstellung des BFF (Backend-For-Frontend), Benutzerschnittstellen, dynamische Webseite für Trainingspläne und vielem mehr.
Als Containersystem kommt LXD zum Einsatz, dem ein Nginx-Load-Balancer vorgeschaltet ist.
Tredict läuft zur Ausfallsicherheit auf 3 verteilten dedizierten Server, die ebenfalls die Replikation der MongoDB übernehmen.
Die Kommunikation der Server findet über ein verschlüsseltes virtuelles Netzwerk statt.
Ebenfalls ist die Datenhaltung auf Dateisystemebene verschlüsselt.

Ein vierter Server nimmt inkrementelle Backups der Datenbank entgegen, die mit Hilfe von ZFS auf Ubuntu verwaltet werden.

Tredict integriert die oAuth-Schnittstellen von Garmin, Suunto, Polar, Coros, Wahoo, Adidas, Dropbox, Paypal for Business und weiteren und stellt selbst eine oAuth-Schnittstelle zur Anbindung anderer Apps zur Verfügung.

Die Landingpage ist über ein eigens geschriebenes server-seitiges statisches JSX-Renderingsystem verwirklicht und kann problemlos über ein Content Delivery Network ausgeliefert werden. Die öffentliche Seite für Trainingspläne und Trainer wird dynamisch mittels Express.js ausgeliefert.

collectAI

Verteilter Node.js-Microservices-Cluster, der über Google Kubernetes auf AWS läuft.

Dieses Backend-System ist der zentrale Punkt des collectAI-Systems und ist an externe Schnittstellen angebunden, um Zahlungsinformationen von Gläubigern und Händlern zu überfälligen Zahlungen automatisiert zu erhalten, welche dann mittels eines ebenfalls automatisierten ETL-Prozesses an die eigene Schnittstelle übergeben werden. In-House können dann AI-gestützt und voll automatisiert, Zahlungsaufforderungen bis hin zu Inkasso-Nachrichten an die Schuldner versendet werden.

Dedizierte Microservices übernehmen die Anbindung und Verarbeitung einzelner externer APIs, Erstellung von Rechnung und PDFs, Versendungslogik, Bereitstellung eigener APIs, Datenexportmöglichkeiten und Feedbackschnittstellen.

Die Microservices sind überwiegend in Node.js und modernem funktionalem asynchronen nicht-blockierendem JavaScript realisiert und verwenden PostgreSQL und MongoDB als Datenbankbackend. Die Tests werden mit Mocha ausgeführt.

Mesosphere (D2IQ) - DC/OS UI

Grafische Benutzeroberfläche (GUI) für das DC/OS (Datacenter Operating System), welche als Webapplikation mittels React.js und modernem funktionalem JavaScript verwirklicht wird. Mit Redux wird das unidirektionale Application State Management dieser komplexen React-Anwendung umgesetzt.

DC/OS UI verwendet das hauseigene CSS-Framework DCOS UI KIT, das aus einer Kooperation der Designer und uns Entwicklern entstanden ist.

Für automatisierte Browsertests wird bereits seit 2016 das Testingframework Cypress.js verwendet, um neben den normalen BDD-Tests, mittels Jest, ein realistisches Verhalten der Anwendung abzutesten.

Mit DC/OS können verteilte Dienste, wie Kafka, Cassandra, Nginx, eigene Dienste bzw. Docker-Container und vieles mehr in einer Superskalierung auf großen, mit DC/OS gemanagten und orchestrierten, Clustern betrieben werden. Sogar Google Kubernetes kann von DC/OS verwaltet und überwacht werden, so daß es möglich ist, einen Kubernetes-Cluster innerhalb eines größeren DCOS-Cluster zu betreiben.

DC/OS wird von einer Vielzahl großer Unternehmen und sogar staatlichen Behörden eingesetzt.

DCOS UI wird unter einer OpenSource-Lizenz veröffentlicht:
Mesosphere DCOS UI auf Github

Mesosphere - Marathon UI

Marathon UI ist das Webinterface für Mesospheres Marathon, die Container- und Anwendungs-Orchestrierung für Apache Mesos und das DC/OS (Datacenter Operating System).

Über das Marathon UI ist es möglich lang laufende und verteilte Server-Anwendungen, Services und Docker-Container mittels Mesosphere Marathon auf einem Mesos-Cluster zu verwalten und zu überwachen, im Webbrowser. So kann man mit Marathon UI einen Mesos-Cluster, Rechenzentrum und verteilte Anwendungen auch ohne Kenntnisse der Mesos-API betreiben.

Während der Entwicklung wird Augenmerk auf die Community gelegt, da die Anwendung unter einer Apache-OpenSource-Lizenz veröffentlicht ist und so externe Reviews und Codebeiträge statt finden.

Mesosphere Marathon UI auf Github

Das Webinterface ist in React.js (ab React Version 0.8 - Jahr 2014) und modernem JavaScript geschrieben und verwendet Flux als unidirektionale Anwendungsarchitektur und "State Management". Alle automatisierten Tests werden mittels Mocha ausgeführt und verarbeitet. Als Programmierparadigma wird die funktionale Programmierung angestrebt, wobei modernes ECMAScript verwendet wird, mit zur Hilfenahme von Lazy.js und Underscore.js.

Marathon wird oder wurde unter anderem verwendet von: bol.com, Brand24, Deutsche Telekom, DHL Parcel, Disqus, eBay, ING, Opera, Otto, OVH, PayPal, Strava, Yelp, uvm..

Mesosphere (jetzt D2IQ) hat seinen Hauptstandpunkt in San Francisco, USA und einen weiteren in Hamburg, Deutschland.

Lottoland

Lottoland.com ist eine der größten Online-Lotto-Spiel-Plattform der Welt.
Bei der dreamIT GmbH war ich an der Refaktorierung und Wartung der JavaScript-Frontend-Logik von Lottoland beteiligt.
Im Zuge der Refaktorierung wurde die Abdeckung mit automatisierten Tests für das Frontend mit Selenium- und Jasmine-Tests stark ausgebaut.

Im Java EE GlassFish Backend habe ich bei der Integration verschiedener Payment Provider beratend zur Seite gestanden.

EuroEyes.de

Über das "Drupal 7"-CMS plegbare Webseite für die EuroEyes Deutschland GmbH.

Das Layout ist komplett responsive gehalten und passt sich so an die Bildschirmbreite des darstellenden Endgerätes an. So ist die Seite sowohl auf einem Mobiltelefon, als auch auf einem Desktopcomputer gut zu betrachten. Der Content-Ersteller braucht sich dabei Gedanken um die korrekte Darstellung der Seite zu machen.

Über das "Drupal 7"-Backend lassen sich die Seitenstruktur, die Inhalte, Kategorieren und Spezialseiten, wie die FAQ, mitteles eines WYSWIG-Editors pflegen. Drupal läuft über PHP-FPM und ist durch Caching in der Lage die Seiten performant und in hoher Stückzahl auszuliefern.

Scholz & Friends – In Vine Veritas

Diese statische Webseite wurde mit einem Responsive Grid angelegt und skaliert optimal auf 5 Bildschirmbreiten, angefangen mit einer geringen Smartphone-Auflösung bis hin zu einem breiten Desktopbildschirm.

Die Varianten der Seite wurden dabei bereits in der Grafik berücksichtigt und gelayouted.

Die Seite ruft Bewerber dazu auf, sich mit einem 6 sekündigen Video bei Scholz & Friends Hamburg zu bewerben.

Meßmer – Ländertees

Bei dieser Facebook-JavaScript-Application kann der Mitspieler durch das Beantworten von Fragen in Bezug zu der Ländertee-Kollektion ein Tee-Testpaket gewinnen.

Der Datenaustausch zwischen Frontend und Backend geschieht über eine REST-JSON-API die auf der Serverseite mit Express.js implementiert wurde.
Es werden hierbei nur reine Nutzdaten ausgetauscht, das HTML-Templating wird in der Backbone.js-Frontendapplikation selbst vorgenommen und wird bereits beim Start der Anwedung statisch übertragen.

Ein zustandsloser skalierbarer Node.js-Cluster, mit persistenten Verbindungen zu einer MongoDB, übernimmt die dynamische Datenverarbeitung.

Durch die Trennung von statischen und dynamischen Anfragen an den Server, einer Beschränkung auf die reine Übertragung von dynamischen Nutzdaten zur Laufzeit und unter Verwendung moderner Technologien wie Node.js, MongoDB, Redis für das Session-Handling und Nginx konnte eine hohe Performanz und Skalierbarkeit mit geringen Ressourcen erreicht werden.

Zur rechtlich korrekten Bestätigung des Newsletter-Abonnements, wurde ein Opt-In-Verfahren mit dem Mailserver Postfix implementiert.

Three Sixty Vodka – Diamantenfieber

Bei dieser Facebook-Pagetab-App kann der Mitspieler mit einer Anfangschance von 18% eine von 2000 Vodkaflaschen gewinnen.
Das Spielfeld besteht dabei aus 50.000 Diamanten, wobei man 3 Versuche hat einen Diamanten umzudrehen.
Bei einer Niete wird das Feld grau, bei einem Gewinn erscheint das eigene Profilbild.
Weitere Versuche kann man durch das Einladen von Freunden über einen personalisierten Link generieren.

Mittels Drag&Drop kann man das Diamantenfeld verschieben, wobei neue Feldsegmente on-the-fly vom Server nachgeladen werden.
Der Status des Spielfeldes und der Gewinne wird regelmäßig über einen Pull-Request des Frontends aktualisiert. So ist die Anwendung ohne Zutun des Anwenders auf dem neusten Stand.

Der Datenaustausch zwischen Frontend und Backend geschieht über eine REST-JSON-API die auf der Serverseite mit Express.js implementiert wurde.
Es werden hierbei nur reine Nutzdaten ausgetauscht, das HTML-Templating wird in der Backbone.js-Frontendapplikation selbst vorgenommen und wird bereits beim Start der Anwedung statisch übertragen.

Ein zustandsloser skalierbarer Node.js-Cluster, mit persistenten Verbindungen zu einer MongoDB, übernimmt die dynamische Datenverarbeitung.

Durch die Trennung von statischen und dynamischen Anfragen an den Server, einer Beschränkung auf die reine Übertragung von dynamischen Nutzdaten zur Laufzeit und unter Verwendung moderner Technologien wie Node.js, MongoDB und Nginx kann eine hohe Performanz und Skalierbarkeit mit geringen Ressourcen erreicht werden.
Zu Hochzeiten der Aktion hat der Server 500 Requests/Sekunde beantwortet, ohne sichtbare Anzeichen einer größeren Auslastung.

Three Sixty Vodka – Tablebattle

Bei dieser Facebook-JavaScript-App kann der Spieler Freunde über einen personalierten Link einladen, die an seinem selbst erstellten V.I.P-Tisch platz nehmen können.
Wenn man es geschafft hat, den Tisch komplett zu besetzen, kommt man in den Verlosungspool für Flaschen voll mit Vodka. Die schnellsten 5 Tische bekommen pro Woche einen gesonderten Preis.

Der Status des Spielfeldes und der Gewinner wird regelmäßig über einen Pull-Request des Frontends aktualisiert. So ist die Anwendung ohne Zutun des Anwenders auf dem neusten Stand.

Der Datenaustausch zwischen Frontend und Backend geschieht über eine REST-JSON-API die auf der Serverseite mit Express.js implementiert wurde.
Es werden hierbei nur reine Nutzdaten ausgetauscht, das HTML-Templating wird in der Backbone.js-Frontendapplikation selbst vorgenommen und wird bereits beim Start der Anwedung statisch übertragen.

Ein zustandsloser skalierbarer Node.js-Cluster, mit persistenten Verbindungen zu einer MongoDB, übernimmt die dynamische Datenverarbeitung.
Durch die Trennung von statischen und dynamischen Anfragen an den Server, einer Beschränkung auf die reine Übertragung von dynamischen Nutzdaten zur Laufzeit und unter Verwendung moderner Technologien wie Node.js, MongoDB und Nginx kann eine hohe Performanz und Skalierbarkeit mit geringen Ressourcen erreicht werden.

Alpina Farben – Tipp oder Frage

'Tipp oder Frage' ist eine mit Require.js und Backbone.js realisierte JavaScript-Frontend-Application für die Facebook Seite von Alpina Farben.

Der Anwender kann entweder einen Tipp abgeben oder eine Frage an das 'Alpina Farben Social Media Team' stellen.

Durch einen HTML5-Multi-Fileupload, realisiert mit Fine Uploader, können Fotos per Drag&Drop hochgeladen werden.
Die Dateien werden dabei mittels der asynchronen Stream-API von Node.js direkt in den Zielordner auf dem Server gespeichert, ohne in einem temporären Verzeichnis zwischengspeichert werden zu müssen.

Der Datenaustausch zwischen Frontend und Backend geschieht über eine REST-JSON-API, die auf der Serverseite mit Express.js implementiert wurde.
Ein zustandsloser skalierbarer Node.js-Cluster, mit persistenten Verbindungen zu einer MongoDB, übernimmt die dynamische Datenverarbeitung.

Jägermeister – Hut-Rakete

Diese Facebook-App wurde als JavaScript-Frontend-Applikation realisiert, um alle modernen Zielplatformen, wie Browser und Tablets, abdecken zu können. Dabei wurde Backbone.js als modernes Struktur-Framework, in Verbindung mit Require.js, zur Modularisierung verwendet.
Mit dieser Kombination kann auch bei grösseren JavaScript-Projekten der Überblick und die Fähigkeit zur Kollaborativität bewahrt werden.

Der Benutzer hat die Möglichkeit aus den Gallerien seiner Facebookfreunde ein Foto auszuwählen, dieses zu positionieren und den Tetraeder von Deichkind mit dem Foto zu verschmelzen. Das Resultat kann dann weiter auf Facebook verteilt oder herruntergeladen werden.

Um das Foto auswählen zu können, wurde eine eigene Gallerieansicht über die 'Open Graph'-API programmiert.
Auf der Serverseite werden mit der libGD die einzelnden Grafiken zusammengefügt.

Milford - Freudentaumel

Bei dieser Facebook-JavaScript-Applikation kann der Mitspieler mit einer Anfangschance von 36% ein von 2000 Teepaketen gewinnen.
Das Spielfeld besteht dabei aus 40.000 Früchten, wobei man 4 Versuche hat eine Frucht umzudrehen.
Bei einem Gewinn erscheint das eigene Profilbild.
Weitere Versuche kann man durch das Einladen von Freunden über einen personalisierten Link generieren.

Beim Peak der Aktion hat der Server mehr als 1000 Requests/Sekunde beantwortet, ohne sichtbare Anzeichen einer größeren Auslastung.
In wenig Stunden wurden mehr als 6.000.000 Anfragen an den Server gestellt und das Spielfeld war komplett abgeräumt.

Mittels Drag&Drop kann man das Früchtefeld verschieben, wobei neue Feldsegmente on-the-fly vom Server nachgeladen werden.
Der Status des Spielfeldes und der Gewinne wird regelmäßig über einen Pull-Request des Frontends aktualisiert. So ist die Anwendung ohne Zutun des Anwenders auf dem neusten Stand.

Der Datenaustausch zwischen Frontend und Backend geschieht über eine REST-JSON-API die auf der Serverseite mit Express.js implementiert wurde.
Es werden hierbei nur reine Nutzdaten ausgetauscht, das HTML-Templating wird in der Backbone.js-Frontendapplikation selbst vorgenommen und wird bereits beim Start der Anwedung statisch übertragen.

Ein zustandsloser skalierbarer Node.js-Cluster, mit persistenten Verbindungen zu einer MongoDB, übernimmt die dynamische Datenverarbeitung.

Durch die Trennung von statischen und dynamischen Anfragen an den Server, einer Beschränkung auf die reine Übertragung von dynamischen Nutzdaten zur Laufzeit und unter Verwendung moderner Technologien wie Node.js, MongoDB, Redis für das Session-Handling und Nginx kann eine hohe Performanz und Skalierbarkeit mit geringen Ressourcen erreicht werden.

Hapag Lloyd – Käpt'n Knopf – Newsletter

Erstellung von Formular, Skript auf Serverseite und Datenbank zum Eintragen in den Newsletter.
Technische Beratung.

Fey & Co – Lullaland – Landingpage

lullaland.net ist ein medialer Twitterstream, der Tweets in Melodien verwandelt.

Zur direkteren Darstellung und Nominierung bei verschiedenen Awards wurde diese Landingpage entworfen.

Für den hier verwendeten JW Player wurde ein eigenes Theme entwickelt,
um diesen optimal in die Seite integrieren zu können.

'lullaland.net' hat eine Auszeichnung beim ADC Wettbewerb 2011 gewonnen und wurde 'Site of the Day' bei FWA.

Markenfilm Crossing – Prelaunch

Diese Prelaunch-Webseite wurde mit möglichst simplen Methoden entwickelt, um schnell ein gutes Resultat zu erzeugen. Durch die begrenzte Lebensdauer dieser Seite musste auf Flexibilität und Erweiterbarkeit keine Rücksicht genommen werden.

Parlamentarium – EP Calendar

In dem Besucherzentrum des Europäischen Parlaments in Brüssel, dem Parlamentarium, steht dieser ca. 4m lange Tisch. Der Tisch stellt die 52 Wochen des Parlaments dar.
Indem man den aufmontierten, in der x-Achse beweglichen Monitor, über den Kalender schiebt, kann man sich die Beschreibung einer Arbeitswoche anschauen, die gerade an der aktuellen Position des Monitors angezeigt wird.

Über eine SOAP-Schnittstelle werden die Inhaltsdaten von dem Webservice des eigens entwickelten CMS-Servers geladen.

Die Anwendung ist über einen TCP-Socket an das Positionsmessgerät von der Firma WOT verbunden. Für die Positionsdaten des Sliders wurde ein High-Level-Protokoll entworfen und definiert, damit diese einfach in er AIR-Anwendung zu verarbeiten sind.

Um automatisch in die Sprache des Besuchers zu wechseln, der Besucher trägt einen RFID-Chip und kann einen RFID-Reader auslösen, besteht eine persistente Verbindung zu einem XML-Socket. Dieser Socket wird von einem RFID-Server der Firma NOUS bereitgestellt und das High-Level-Protokoll von mir vorgegeben.

Parlamentarium – Future Wish Terminal

An 3 Touchscreenterminals kann der Besucher im Parlamentarium, dem Besucherzentrum des Europäischen Parlaments, seinen Wunsch für die Zukunft eingeben.
Dieser Wunsch wird an die Erste der drei davor stehenden Wände projiziert und zusammen mit anderen Wünschen angezeigt.
Ältere Wünsche werden dabei an die nächste weiter hinten stehende Wand delegiert.

Alle 6 AIR-Anwendung in diesem Terminal/Display-Verbund tauschen ihre Daten über einen XML-PassThrough-Socket aus und können so auf einfachem Wege kommunizieren.

Im Blindenmodus können auch visuell beeinträchtigte Personen diese Station bedienen.
Dazu wurde das Future Wish Terminal mit der Screenreader-Software JAWS integriert, so dass der Text vorgelesen und auf einer Braille-Zeile angezeigt wird. Zusätzlich ist die visuelle Darstellung in diesem Modus sehr kontrastreich und mit größerem Text versehen.

Zum Zeitpunkt der Entwicklung konnte man mit der AIR-Plattform noch keinen Sourroundsound abspielen.
Um dem Abhilfe zu schaffen wurde über einen NativeProcessCall der mplayer zum Abspielen von Sourroundsound verwendet.
Man könnte sagen, ein audiovisuelles Erlebniss beim herreinfliegen eines Wunsches auf die Future Wish Wall.

Über eine SOAP-Schnittstelle werden die Inhaltsdaten vom Webservice des eigens entwickelten CMS-Servers geladen.

Der Besucher trägt einen RFID-Chip und kann einen RFID-Reader auslösen, um die Inhalte automatisch in seiner eigenen Sprache angezeigt zu bekommen.
Dazu besteht eine persistente Verbindung zu einem XML-Push-Socket.
Das High-Level-Protokoll zum Datenaustausch zwischen RFID-Server und AIR-Anwendung wurde von mir vorgegeben. Der RFID-Server wird von der Firma NOUS bereitgestellt.

Schüco – Intersolar Touch

Diese Touchscreenapplikation wurde extra für die Messe Intersolar 2011 in München entwickelt.
Der Inhalt ist über eine externe Ordnerstruktur einfach zu pflegen.

Die Anwendung lief auf 3 interaktiven Stationen und wurde von mir vor Ort eingerichtet und angepasst.

Atelier im Weidkamp 7

Die Webseite meiner Mutter. :)

Das Besondere an dieser 'Drupal 6'-Konfiguration ist die Verwendung von PHP-FPM in Verbindung mit dem Webserver Nginx.
Dies verursacht einen spürbaren Performanzsprung gegenüber der sonst verwendeten Apache2-Konfiguration.

Gudrun Thiesemann-Gertz – Freischaffende Künstlerin

BM8 GmbH - CMS

Bereitstellung eines AMF-Datenservice und Einrichtung eines 'Drupal 6'-CMS-Backend, worüber der komplette Inhalt des Flash-Frontend gepflegt werden kann.
Die Installation erfolgte auf einem Server mit hohem Durchsatz, da die Webseite pro Besuch 10-40MB Datenverkehr verursacht hat. Ich habe hier die technische Beratung vorgenommen.

Gewinner des 'FWA - Site of the Day' am 15. August 2010.

Bildmacht Plus

'Multiplatform' und 'Responsive' ist die Anforderung an diese Webseite. Sie lässt sich sowohl auf einem normalen Desktopcomputer, wie auch auf einem Smartphone oder einem Tabletcomputer optimal anzeigen und wurde eigens für alle wichtigen Anzeige-Plattformen optimiert. Die vorhandenen mehrsprachigen Inhalte, inklusive Blog, lassen sich über das Drupal-CMS-Backend einfach verwalten.

Gewinner des 'CSS Website Award' am 31. Juli 2010.

Claudia König

Mittels Drupal-CMS pflegbare, mehrsprachige Webvisitenkarte mit Lebenslauf und Projektreferenzen.
Lauffähig auf jedem kleineren Hostingpaket.

Frauke Müller

Das Darstellungsprinzip 'Single Page Website' lässt alle Inhalte auf einer einzigen Seite darstellen und bietet den Vorteil einer sanften Navigation zwischen den Inhalten.

JavaScript verbessert auf sinnvolle Weise die Haptik der Seite, verhindert aber nicht deren Bedienbarkeit, falls JavaScript nicht verfügbar ist.
Ein 'Drupal 6'-Backend macht die Pflege des Inhaltes möglich.

KemperTrautmann – Probier es aus – Landingpage

Landingpage, um das bei 'Kempertrautmann - Probier es aus' frisch erstellte Bild in die sozialen Netzwerke wie Facebook oder Twitter zu verbreiten, herunterzuladen oder per Email zu versenden.

Die zugrundeliegende Anwendung macht es möglich, sein eigenes Gesicht mit Hilfe von einer Webcam und Augmented Reality in Kemper oder Trautmann zu verwandeln.

K'naan – Save the Flag

Browserspiel im Stil von Donkey Kong zur Fussball-Weltmeisterschaft der Herren 2010.

Durch verschiedene parallele Entwicklungszweige, eine sehr modular aufgebaute Anwendung.
Die einzelnen Level lassen sich auch stand-alone ausführen.

Die Gameengine wurde, um Resourcen zu sparen, teilweise selbst entwickelt.

Die Spieler können ihren Punktestand serverseitig speichern, bei Facebook posten oder per Email versenden.

Parlamentarium – Internet Terminal Screensaver

Ein für Adobe AIR programmierter Screensaver, der in das Kiosksystem SiteKiosk integriert wurde.

Zu betrachten ist dieser Schriftenorgasmus im European Parliament Visitors Centre in Brüssel/Belgien, an den Internet Terminal Stations.
Dort kann man auch sehr gemütlich einen Kaffee trinken.

Das pixelgenaue Angleichen des Schriftenverlaufes auf eine Linie und weitere optische Leckereien, wurde in mühsamer Handarbeit von Vincent Stoltzenberg erledigt. Vielen Dank nochmal an dieser Stelle.

Parlamentarium – Introduction Wall

In dem Besucherzentrum des Europäischen Parlaments in Brüssel, dem Parlamentarium, werden 5 Varianten dieser passiv-interaktiven Anwendung per Beamer an Eingangsbereiche projiziert. Der Besucher ist mit einem RFID-Chip ausgestattet und sobald der Besucher den Radius des aktiven RFID-Readers der Anwendung betritt, wird seine Sprache in der Animation hervorgehoben dargestellt.

Die Verteilungsberechnung der einzelnden Textblöcke wurde in der universellen Sprache HaXe realisiert, um die Berechnungen besser mit automatischen Tests versehen zu können. Aus dem zielplattform unabhängigen HaXe wurde dann der AS3-Code generiert und in die Anwendung integriert.
Die Verbindung zu dem, von der Firma NOUS bereitgestellten RFID-Server, ist über einen persistenten XML-Socket hergestellt, der bei Aktivität automatisch die Daten an die Anwendung sendet.

Über eine SOAP-Schnittstelle werden die Inhaltsdaten von dem Webservice des eigens entwickelten CMS-Servers geladen.

Parlamentarium – Treaty Table

Sieben dieser "Full HD 32 Zoll"-Touchscreentische stehen in dem Besucherzentrum des Europäischen Parlaments in Brüssel, dem Parlamentarium.

Aus der Vogelperspektive kann man dort in virtuelle Aktenordner hineinschauen und auf beweglichen Karten die Inhalte betrachten.

Dies ist mit den nativen 3D-Methoden des Apache Flex-Frameworks programmiert und läuft für eine "Full HD"-AIR-Anwendung sehr performant.

Zur Laufzeit nachladbarer Flashinhalt vereinfacht den Workflow bei der Erstellung des Inhalts,
da so direkt aus der Flash IDE interaktiver Inhalt von einem Designer bereitgestellt werden kann,
ohne die Anwendung zu beeinflussen.

Über eine SOAP-Schnittstelle werden die Inhaltsdaten vom Webservice des eigens entwickelten CMS-Servers geladen.

Der Besucher trägt einen RFID-Chip und kann einen RFID-Reader auslösen, um die Inhalte automatisch in seiner eigenen Sprache angezeigt zu bekommen.
Dazu besteht eine persistente Verbindung zu einem XML-Push-Socket.
Das High-Level-Protokoll zum Datenaustausch zwischen RFID-Server und AIR-Anwendung wurde von mir vorgegeben. Der RFID-Server wird von der Firma NOUS bereitgestellt.

Skoda Fabia RS – Webrallye

Lenkrad ausdrucken und seinen Skoda Fabia RS in der eigens entwickelten Gameengine mittels Augmented Reality steuern und ins Ziel führen.

Webcam-Capturing, Erkennung des AR-Markers mit dem FLARToolKit, physikalische Berechnungen der Gameengine und Levelrendering
führen den Flash-Player zweifelsohne an die Grenzen seiner Leistungsfähigkeit,
zeigen aber auch auf, was mit einer RIA alles möglich ist.

Der vorangegangende Prototyp machte es möglich Technologien zu testen und Machbarkeiten sicherzustellen.

Das Spiel wurde im September 2010 'Site of the Day' bei FWA,
was eine kleine Herausforderung an die Serverinfrastruktur stellte.

Promovideo auf YouTube

FC St. Pauli – Schädelgenerator

Für den 100. Geburtstag des FC St.Pauli in Hamburg wurde der Schädelgenerator entwickelt.
Mittels Webcam oder Fotoupload lässt sich so der eigene Kopf in das 'St. Pauli'-Schädelogo verwandeln
und als Avatar oder Wallpaper herunterladen beziehungsweise über die sozialen Netzwerke weiterverbreiten.

Um die Machbarkeit des Schädelprozesses zu demonstrieren, wurde im ersten Schritt ein interner Prototyp entwickelt,
bei dem verschiedene Filtertechniken getestet wurden, woraus nun der letztendliche Algorithmus resultiert.
Der komplette Schädelprozess läft auf der Benutzerseite ab, so dass dafür keine serverseitigen Resourcen bereitgestellt werden müssen.

Um eine schnelle Auslieferung und Skalierbarkeit der Daten sicherzustellen wurde als Datenbankmanagmentsystem Apache CouchDB ausgewählt,
in der alle Daten, auch die Schädelbilder selbst, gespeichert sind. Das Flash-Frontend bekommt so die Anfragen direkt von der Datenbank beantwortet, ohne eine weitere verlangsamende serverseitige Instanz dazwischen, wie es normalerweise nötig ist, um Datenbankantworten aufzubereiten.
Hier wurde in der Konstellation "Flash zu CouchDB" ein wenig Pionierarbeit geleistet.

Für die Volltextsuche in der Schädelgallerie wird das hochperformante Apache Lucene verwendet.

Der Schädelgenerator hat beim ADC 2011 eine Auszeichnung erhalten.

1&1 – Personalisierter Film

Als die 1&1 Internet AG die 700.000 DSL-Kunden der Freenet AG übernahm, hieß es einen personalisierten Online-Film zu entwickeln, in dem der persönliche Name des Kunden enthalten war. Die Herausvorderung war, den Kundennamen live in dem Video zu platzieren, dabei auf Benutzerseite weit verbreitete Technologien zu verwenden, Skalierbarkeit zu erlangen und auf den Schutz der Kundendaten zu achten.

Für die Darstellung des Namens wurde ein 3D-Framework verwendet, welches auch auf älteren "Flash Player 9"-Versionen lauffähig ist, obwohl dieses einen Mehraufwand bedeutete.

Mit einer UUID, im Videolink des versendeten Newsletters, wurde aus der internen Kundendatenbank der Name in einem Session-Server gespeichert. Von diesem Session-Server konnte die Anwendung den Kundennamen kurzfristig beziehen und verarbeiten.

Um dem immensen Trafficaufkommen von ~700.000 angesehen Videos gerecht zu werden, wurden 8 Server mit jeweils 1GBit Anbindung zur Auslieferung bereitgestellt.

Bei dem Filmdreh, unter anderem beim Deutschen Klimarechenzentrum, an einem IBM Power 6 p575 "Blizzard" Supercomputer, war ich für dieses Projekt der "Post Supervisior", um ein späteres 3D-Mapping bei den Szenen-Einstellungen machbar zu halten.

Parlamentarium – Content Management System

Eigens entwickeltes System für die Datenverwaltung, Datenhaltung, Datenverteilung und das Monitoring der meisten Stationen in dem Parlamentarium in Brüssel, das Besucherzentrum des Europäischen Parlamentes.

Die meisten interaktiven Stationen im Parlamentarium beziehen und speichern ihre Daten über den SOAP-Webservice dieses Systems.
Desweiteren werden die Stations-Inhalte, wie Texte in 23 Sprachen, Videos, Untertitel in 23 Sprachen, Bilder, Flashinhalte, Remotecontent und Stationsverhaltensregeln über eine Weboberfläche des CMS verwaltet.
Das Personal hat mit einer Stationsübersicht eine Kontrolle über den Status der Stationen im Besucherzentrum und kann bei einer ausgefallenen Station nötigenfalls reagieren.

Der redundant gespiegelte Server liefert dabei einen Datenbestand von 40GB Videostreamingdaten on-demand aus.
In Tests stellte sich ein Datendurchsatz von 480MBit/s bei Maximalanforderung der Stationen heraus, was ohne Probleme bedient werden konnte.

Automatisch synchronisiert werden regelmäßig Remotedaten, von dem CODICT-Webservice der MEP's.

Hochgeladende Videos können mit ffmpeg automatisch in das Zielformat konvertiert werden.

Ein stetig wachsendes System mit immer neuen Anforderung produzierte einen Entwicklungszeitraum von mehr als 2 Jahren.
Deswegen musste ein besonderes Augenmerk auf die Architektur der Software und des Programmcodes gelegt werden, um eine Wartbarkeit und Erweiterbarkeit zu erhalten.

Vaillant – Brandhouse – Version 1

Als Informationsportal für Händler und Mitarbeiter wurde diese Rich Internet Application für das Vaillant Extranet entwickelt.

Der dynamische, per WYSIWYG-CMS pflegbarer, Inhalt wurde als XML an das Flash-Frontend ausgeliefert.

Interaktive Animationen, besonders des Brandmodels, machten die Anwendung fühl- und erlebbar.

Crossover 24

Flash-Seite die ihre Inhaltsstruktur aus einem serverseitig mit PHP dynamisch generierten XML bezieht und so den Inhalt, das Menü, Gallerien und Neuigkeiten flexibel laden und darstellen kann. Dort wo Dynamik gefordert ist werden die Inhalte programmatisch dargestellt, so werden Umbrüche z.B. automatisch ermittelt.

Lowcost-Hochverfügbarkeits-Fileservercluster mit DRBD

Im Rahmen meiner Abschlussarbeit zum Fachinformatiker in der Systemintegration habe ich den "Lowcost Hochverfügbarkeits Fileservercluster mit DRBD unter Linux" entwickelt.
Dieser Fileserver-Cluster kann durch kostengünstige Verbände mit Standard-PCs ein trotzdem gut verfügbares Backend schaffen.

Dabei werden die Daten mittels DRBD auf einem RAID-1 ähnlichem System über das Netzwerk verteilt.
Falls ein Rechner ausfallen sollte, so wird ein Heartbeat-Failover durchgeführt und eine Warnmeldung über verschiedene Kommunikationskanäle verschickt.

P2P Next – HTML für die Webseite

Erstellung des HTML und CSS durch Layoutvorlage, für Rausch.TV zur weiteren Programmierung.

P2P Next

P2P Next ist ein von dem "Seventh Framework Program" der Europäischen Union gefördertes OpenSource-Forschungsprojekt bestehend aus einem Konsortium von 21 Firmen und Einrichtungen aus 12 europäischen Ländern, welches über 4 Jahre bis 2012 gefördert wird.

Die Schwerpunkt liegt dabei bei der Entwicklung eines P2P-Videostreaming-Dienstes mit dem Namen 'NextShare', um auf einfache Weise eine Streaming-Infrastruktur aufbauen zu können, welche auch bis auf die TV-Geräte in den Wohnzimmern reicht oder die Wikimedia beim Verteilen der Medieninhalte unterstüzt. Das P2P-Protokoll basierte dazu auf einer Weiterentwicklung von BitTorrent, dem Tribler-Protokoll.

Meine Aufgabe bestand in der Entwicklung und Mitkonzeptionierung eines Distributions- und Trackingsystem für editioriale Inhalte, die über dieses Netzwerk verbreitet werden.

Das in jedem Quartal stattfindende Konsortiummeeting wohnte ich in London bei der BBC, in Genf bei der Eurovision, in Delft bei der TU Delft und in Inari (Lappland) bei der VTT bei, um dort den Projektfortschritt zu präsentieren und zu diskutieren.

Beim ersten Review der EU in Brüssel, nach einem Jahr Projektzeit, konnte ich die 3 Reviewer mit der Vorstellung des Programms 'AdMediaCenters' überzeugen. Mit dem Programm konnte man Videoinhalte mit Metainformation für zusätzlichen Inhalt wie Werbebotschaften versehen und diese dann im Netzwerk abspielen und tracken.

Heise online – Europäische Union investiert in P2P-Technik

Siems Computer

Komplette Eigenentwicklung der Webseite und des Content Management Systems unter strikter Anwendung der in dem Buch beschriebenen PHP Design Patterns.

Als RDBMS wird SQLite verwendet, so ist diese Seite auch auf kleineren Hostingpaketen oder Geräten ohne Datenbankserver lauffähig.

erste liebe filmproduktion GmbH

Die Mitarbeiter können Videoprojekte und Regiesseure über ein eigens entwickeltes WYSIWYG Content Management System einpflegen.
Das zugehörige Newslettersystem ist mit den Projekten verknüpft und über wenige Klicks zu bedienen.

Die Eigenentwicklung der Komponenten macht das System schlank und performant und wird im Aufwand nicht durch die Projektgrösse verhindert.

Ein Grossteil des HTML-Layouts wurde mir als Quelltext zur Verfügung gestellt und brauchte nicht beschrieben zu werden.

m4-tv.com

Videodistributionssystem und Portal mit 'WYSIWIG Content Management System'-Eigenentwicklung für die Mhoch4 GmbH.
Über das Backend werden täglich eine Fülle von Videos in verschiedenem Format von unterschiedlichen Mitarbeitern verwaltet und vom Endanwender über das Frontend heruntergeladen. Das System bietet eine Benutzerverwaltung mit verschiedenen Benutzerarten, Nutzungsstatistiken, Mehrsprachigkeit mit direkter Übersetzung aller Seitenelemente, Veränderbarkeit aller Elemente, Inhaltsverwaltung mit Kategorisierung und Archivierung, uvm.

Durch die Eigenentwicklung des CMS kann eine gute Performanz erreicht werden, da das System direkt auf die Bedürfnisse der Anwendung angepasst ist.

Durch "mod_perl" wird der interpretierte Perl-Code im Speicher des Apache Webserver gehalten und trägt so ebenfalls zu einer wesentlichen Performanceverbessserung bei der Auslieferung der Seite bei.

Lookby.info

Ein auf Skalierbarkeit und Performanz ausgelegtes Portal für Videobewerbungen und Bewerbungsberatung.
Vom Benutzer hochgeladene Videos werden serverseitig in das Ausgabeformat konvertiert.
Mittels Mason/Perl wurde die Anwendung direkt für den Apache Webserver unter Linux geschrieben.
Des Weiteren können Word Dokumente und Bilder hochgeladen und zusammen mit Profilinformationen serverseitig zu einem PDF zusammengestellt werden.
Anwender, Mentoren und Administratoren sehen unterschiedlich Inhalte der Seite und beeinflussen sich gegenseitig.
Technische Umsetzung und konzeptionelle Mitarbeit von meiner Seite.

Felix Gertz - Software-Entwicklung, Beratung und System-Integration

Telefon: +49 40 28578495
Email: webinfo@felixgertzPUNCTUMde
LinkedIn
Xing

Impressum

Felix Gertz
Fibigerstrasse 392
22419 Hamburg
Deutschland
USt-IdNr: DE346712627

Urheberrecht

Die Inhalte dieser Webseite unterliegen – sofern nicht anders gekennzeichnet – dem Urheberrecht und dürfen nicht ohne vorherige Zustimmung weder als Ganzes noch in Teilen verbreitet, verändert oder kopiert werden.
Die auf den Webseiten enthaltene Bilder und Grafiken unterliegen teilweise dem Urheberrecht Dritter.

Datenschutz

Diese Webseite verwendet keine Cookies, kein Tracking und kein Logging. Es werden keine Daten verarbeitet oder gespeichert.


Sounds best on cassette Linux now Netscape Naviagtor 3