Themen

Dinge, mit denen ich mich beschäftige — im Auftrag oder aus eigenem Antrieb.

Webauftritt einer Autismus-Therapiepraxis

Für meine Frau Sandra Hoos und ihre Praxis Autismus-Therapie Baesweiler habe ich den Webauftritt konzipiert, gebaut und betreibe ihn seitdem. Ein Projekt, an dem sich gut zeigen lässt, wie weit man ohne Baukasten und ohne Framework kommt.

Konzeption. Die Seite richtet sich an Eltern und junge Erwachsene, die oft nach einer langen Suche dort landen. Entsprechend führt sie nicht mit dem Angebot, sondern mit der Frage, ob man hier richtig ist: Für wen, ab welchem Alter, wo genau. Der Einstiegssatz lautet deshalb: „Ambulante, autismusspezifische Therapie in Baesweiler, Alsdorf, Würselen und Herzogenrath – dort, wo der Alltag wirklich passiert." Alles Weitere ist von dort aus in einem Schritt erreichbar, ohne Anmeldung, ohne Formularstrecke.

Umsetzung. Ein eigener Generator in TypeScript setzt die Seite aus Abschnitten und Layoutbausteinen zusammen. Kein Content-Management, keine Datenbank, kein JavaScript im Auslieferungsstand — die Bedienelemente laufen über native HTML-Bausteine. Bilder werden beim Bauen verkleinert und konvertiert, Schriften liegen lokal. Ergebnis ist reines HTML, CSS und ein paar Bilder.

Betrieb. Die Seite liegt als statisches Verzeichnis hinter einem Reverse Proxy, das Zertifikat erneuert sich selbst. Ausgeliefert wird per rsync aus dem Quellverzeichnis; ein Deploy dauert Sekunden und lässt sich beliebig wiederholen. Es gibt nichts, was nachts abstürzen oder vollaufen könnte.

Sichtbarkeit. Wer eine Therapie sucht, sucht ortsbezogen. Deshalb sind strukturierte Daten hinterlegt (Einrichtung, Person, Fragen und Antworten), das Einzugsgebiet ist mit allen Ortsteilen ausgeschrieben, und die Seitenbeschreibungen sind so gefasst, dass sie in der Ergebnisliste nicht abgeschnitten werden.

TypeScript, statische Website, Traefik, Let's Encrypt, lokale Sichtbarkeit

Startseite der Autismus-Therapie Baesweiler mit Kopfzeile, Überschrift und Sonnenblumen-Bild
Startseite — der Einstieg beantwortet zuerst, für wen das Angebot gedacht ist
Logo der Autismus-Therapie Baesweiler
Logo
Kartenansicht des Planungswerkzeugs mit Umkreisradius und Zuständigkeitsgrenzen
Kartenansicht — Umkreis, Zuständigkeitsgrenzen und die Angebote im Umfeld

Planungswerkzeug für den Start in die Freiberuflichkeit

Vor der Praxisgründung stand eine einzige Frage: Trägt das? Eine Tabellenkalkulation reichte dafür nicht lange. Zu viele Größen hängen voneinander ab — wie viele Fachleistungsstunden im Monat realistisch sind, was die Kostenträger je Stunde zahlen, was davon nach Steuer und Krankenversicherung übrig bleibt, und ab wann das Konto trägt. Also habe ich ein Werkzeug dafür gebaut.

Was es rechnet. Vergütung nach den Sätzen der Kostenträger, Arbeitstage und Ausfallzeiten, laufende Kosten, Anschaffungen, Einkommensteuer, Kranken- und Pflegeversicherung, Umsatzsteuer. Daraus entsteht eine Liquiditätsvorschau über die Anlaufphase — also die Monate, in denen schon gearbeitet, aber noch kaum abgerechnet wird.

Warum es kein Tabellenblatt ist. Die Rechenlogik liegt in einem eigenen Paket, getrennt von der Oberfläche und mit Tests abgesichert. Bei einer Tabelle merkt man einen Fehler in einer Formel oft erst, wenn die Entscheidung längst gefallen ist. Hier fällt er beim Bauen auf.

Karte. Eine Ansicht zeigt das Umfeld im Umkreis von 25 Kilometern: bestehende Angebote, zuständige Ämter und die Grenzen der Zuständigkeitsbereiche. Für die Frage, welches Jugendamt bei welcher Adresse zuständig ist, war das nützlicher als jede Liste — Zuständigkeit ist ein geografisches Problem.

TypeScript, Vue, getrenntes Rechenwerk, Leaflet, OpenStreetMap, Liquiditätsplanung

Entwicklung eines CMS Standardmandanten

Seit Jahren unterstütze ich einen meiner Kunden bei der Entwicklung eines imperia CMS Standardmandanten.

Das Ziel ist, mit dieser Plattform (dem Standardmandanten) einfacher und schneller neue imperia Instanzen für Kunden aufsetzen zu können.

Bestehend auf einem vorgegebenen responsiven YAML-Design wurde ein Paket aus Templates und Modulen erstellt, welches laufend aktualisiert und weiterentwickelt wird.

Über automatisierte Deployments mit Jenkins und Ansible können eine Vielzahl von Systemen von einem kleinen Team betreut werden.

Beratung, Entwicklung, Workshops, Perl, imperia CMS, Deployment, Jenkins, Ansible

Standardmandant – Kopfbereich
Standardmandant – Kopfbereich
Standardmandant – Detailseite Termine
Standardmandant – Detailseite Termine
Schulungsunterlagen
Schulungsunterlagen
Schulungsraum beim Kunden
Schulungsraum beim Kunden

imperia CMS Administratoren- und Entwicklerschulung

Für diesen Kunden habe ich Schulungsunterlagen für eine kombinierte Administratoren- und Entwicklerschulung erstellt und die Schulung durchgeführt.

  • 5 Tage
  • 5 Entwickler
  • 5 Administratoren

Die Schulung und die Unterlagen waren so aufgebaut, dass die Teilnehmer ihre eigene Testumgebung aufbauen konnten. Dabei beinhaltete die Schulung die Installation auf dem Redaktionssystem und dem Livesystem, das Erstellen eines Templates sowie die Nutzung des IWE. Es wurde eine Übersichtsseite mit dem Site-Hermes auf DEV und LIVE erstellt. Zum Schluss wurden die Templates auf ein responsives Design mittels Bootstrap umgestellt.

imperia CMS, Schulung

Hausautomation mit Raspberry Pi und dem RaZberry Z-Wave Modul

Für einen Prototyp habe ich mich mit der grafischen Darstellung von Messresultaten aus dem Smarthome-Bereich beschäftigt.

Dazu habe ich als Residential-Gateway einen Raspberry Pi mit Raspbian und dem RaZberry Z-Wave Modul verwendet.

Hardware, Hausautomation, Z-Wave, Raspberry Pi, RaZberry

RaZberry Z-Wave-Modul auf dem Raspberry Pi
RaZberry Z-Wave-Modul auf dem Raspberry Pi
Z-Wave Temperatursensor
Z-Wave Temperatursensor
RaZberry Z-Wave-Modul auf dem Raspberry Pi
RaZberry Z-Wave-Modul auf dem Raspberry Pi
RaZberry Z-Wave-Modul
RaZberry Z-Wave-Modul
Chart von RWE-SmartHome Daten
Chart von RWE-SmartHome Daten

Web-Technologien

Für Webapplikationen verwende ich üblicherweise folgende Tools:

Tools, Stack

Bootstrap Twitter-Bootstrap bietet ein sehr komfortables Framework, um Webseiten mit responsivem Design zu erstellen. Dadurch erreicht man eine maximale Bedienbarkeit insbesondere auf mobilen Geräten.

Siehe: Bootstrap


{wrap}Bootstrap WrapBootstrap ist ein Marktplatz für Premium-Bootstrap-Designs und -Templates.

Siehe: {wrap}Bootstrap


Dancer Dancer ist ein einfaches, aber mächtiges Webframework in Perl. Durch das Webframework kann der Inhalt effektiv von Code und Design getrennt werden, sodass Design-Änderungen leicht durchgeführt werden können.

Siehe: Perl Dancer


jQuery jQuery ist eine schnelle und funktionsreiche JavaScript-Bibliothek. Sie ermöglicht eine einfache, browserübergreifende JavaScript-Programmierung.

Siehe: jQuery

MongoDB Aktuelle NoSQL-Datenbank, die besonders bei der Umkreissuche sehr gut geeignet ist.

Siehe: MongoDB


Apache Als Applikations-Webserver nicht ganz so performant. Aber bei Bedarf als Proxy für maximale Flexibilität hervorragend geeignet.

Siehe: Apache


GNU gettext Internationalisierung (I18N) auf Basis von GNU gettext mit .po- und .mo-Dateien. Durch Verwendung dieses Standards können Applikationen leicht für andere Sprachen übersetzt werden.

Siehe: GNU gettext

Demo-Applikation Modelagentur

Dieser Prototyp wurde für eine Ausschreibung in wenigen Stunden (samt Shooting der Models) umgesetzt. Administratoren können Models anlegen, bearbeiten oder löschen. Die Applikation ist auf Mehrsprachigkeit ausgelegt und die Anwender können sich die Models nach unterschiedlichen Attributen gefiltert anzeigen lassen.

Besonders interessant ist, dass sich die Applikation durch Twitter-Bootstrap auf allen Geräten ansprechend präsentiert.

Verwendet wurden die folgenden Technologien: Bootstrap, GNU gettext, Dancer, MongoDB, Perl, Apache

Perl, Dancer, Bootstrap

Modelagentur Prototyp
Bildergalerie für eine Hobbymalerin
Webseite für Aquarell- und Acryl-Malerei

Bildergalerie

Erstellung einer responsiven Bildergalerie für eine Hobbymalerin

Website, Bootstrap, HTML5/CSS3

Ältere Themen, Projekte und Vorträge

Vortrag: „Die Clearingstelle als Instrument zur Sicherung und Kontrolle der Datenqualität"


Mehrsprachiger Webauftritt eines weltweit agierenden Mittelstandsunternehmens.


Intranet-Call-Center-Lösung auf CMS-Basis bei einer großen Online-Bank.


Optimierte Dokumentensuche für PDF-Dateien aus SAP in einem mittelständischen Unternehmen.

Erstellung von Perl-Tools für die Installation und Inbetriebnahme einer Windows-SCM-Software.


Vortrag: „Predictive Content Management – Personalisierung im Web"


Mitarbeit an einer Lernsoftware zur Visualisierung der Computertomographie für Ärzte (ct-learn).

Konzipierung von Datenkonvertern für die Auf­bereitung sehr großer Datenmengen in Perl.


Vortrag: „Realisierung mehrdimensionaler Vertriebsdatenanalysen"


Software zur Aus­wertung und Beurteilung von Röntgenbildern für die Werkstoffprüfung.