Im Laufe der Jahre konnte ich schon einige Projekte umsetzen und natürlich lernte ich dabei auch einige interessante Technologien kennen und schätzen. Ein Klick auf die Accordions verrät Ihnen mehr.

index librorum

Im Sommer 2018 entwickelte ich mit index librorum eine Webplatform zur Erfassung von Buchbeständen. Ziel war es ein Tool zu entwickeln, mit dem Personen alle ihre Bücher online eintragen können und so auch schnell einen Überblick über deren Bestand gewinnen können.

Damit man nicht alle Daten händisch eintragen muss, werden möglichst viele Daten anhand der ISBN Nummer von kostenlosen APIs abgefragt. Zusätzlich werden zu den vorhanden Autoren auch weiterführende Informationen sowie weitere Bücher angezeigt.

Swift Performance vs. NodeJS und PHP

Im Rahmen der zweiten Bachelorarbeit wurde die Performance von Swift mit den Frameworks Vapor und Perfect gegenüber PHP und NodeJS untersucht.

Für Webseiten ist Performance im Sinne einer kurzen Antwortzeit und einer effizienten Nutzung des Arbeitsspeichers sehr wichtig, da mehr als 57 Prozent aller Besucherinnen und Besucher einer Webseite maximal zwei Sekunden Ladezeit akzeptieren (vgl. Hey, 2014). Mit Swift steht neben PHP und NodeJS eine neue serverseitige Programmiersprache als Open-Source Projekt zur Verfügung, bei dessen Entwicklung ein besonderer Augenmerk auf die Performance liegt. Ziel ist es, herauszufinden, ob Swift tatsächlich schneller als NodeJS und PHP ist. Zusätzlich werden auch die beiden Swift-Frameworks Vapor und Perfect miteinander verglichen.

Um herauszufinden, für welche verschiedene Operationen und Funktionalitäten die untersuchten Programmiersprachen und Frameworks die jeweils optimale Performance bieten, wurden mehrere kleinere Webservices implementiert. Diese Webservices wurden jeweils ein Mal mit 50, 1.000 und 10.000 gleichzeitigen Anfragen getestet.

Die Analyse der durchschnittlichen Antwortzeiten der untersuchten Webservices zeigt, dass ein Unterschied in der Geschwindigkeit zwischen den beiden Swift Frameworks Vapor und Perfect deutlich zu erkennen ist und Perfect in zwei von drei Testreihen bis zu 15 Mal langsamer als Vapor ist. Swift konnte nur in der Testreihe mit 50 gleichzeitigen Anfragen eine bessere Performance als NodeJS und PHP bieten. Gerade bei 1.000 und mehr Anfragen bietet PHP generell die beste und stabilste Performance, jedoch mit der Ausnahme, dass NodeJS Datenbank-Operationen schneller durchführen kann.

Die Ergebnisse dieser Arbeit zeigen, dass es für jedesWebprojekt einzeln entschieden werden muss, welche Programmiersprache und Framework zum Einsatz kommt. Denn es muss nicht nur berücksichtigt werden, welche Operationen geplant sind, sondern auch für wie viele nahezu gleichzeitige Anfragen, die zu entwickelte Webseite ausgelegt werden soll.

WordPress Sicherheit

Im Rahmen der ersten Bachelorarbeit wurden WordPress und die 50 am häufigsten heruntergeladenen Plugins auf Sicherheitslücken untersucht.

WordPress ist das Content-Management-System mit dem größten Marktanteil weltweit, aber auch häufig Ziel von Angriffen (vgl. Verbreitung: WordPress vs. TYPO3 2017). Daher untersucht diese Arbeit WordPress und die 50 am häufigsten heruntergeladenen Plugins auf Sicherheitslücken. Für diese Untersuchungen wurden Tools Acunetix, ZAP – OWASP Zed Attack Proxy, Sparrow on the cloud und WPScan eingesetzt.

Die Resultate der Untersuchungen zeigen, dass es für WordPress und jedes getestete Plugin zumindest Sicherheitsempfehlungen gibt, wie das Senden bestimmter Headers, und dass bei manchen auch Hinweise auf schwerwiegende Sicherheitslücken, wie Injections oder Cross Site Scripting, vorhanden sind. Ingesamt wurden 13070 sicherheitskritische Schwachstellen festgestellt. Der arithmetische Durchschnitt beträgt 261,4 entdeckte Schwachstellen pro getesten Plugin (inklusive Untersuchung der WordPress-Instanz ohne Plugins).

Diese Ergebnisse wurden mit einer Untersuchung des Unternehmens Checkmarx aus dem Jahr 2013 verglichen, in welchem ebenfalls die damaligen 50 am häufigsten heruntergeladenen Plugins mit einer statischen Code Analyse auf Sicherheitslücken getestet wurden. Im direkten Vergleich konnten bei den Untersuchungen dieser Arbeit in vier Mal so vielen Plugins als im Jahr 2013 Hinweise auf schwerwiegende Sicherheitslücken gefunden werden.

Die Schlussfolgerung aus den gewonnen Ergebnissen ist, dass regelmäßige Updates unausweichlich sind, um bekanntgewordene Sicherheitücken zu schließen. Darüberhinaus sollten weitere Maßnahmen ergriffen werden, um eine Webseite gegen Angriffe zu schützen. Diese Maßnahmen umfassen unter anderem Anpassungen in der htaccess-Datei, um den direkten Aufruf von Verzeichnissen zu vermeiden, die Analyse von Log-Dateien und die Verwendung einer Firewall.

Die wichtigsten Ergebnisse dieser Arbeit wurden auf der Plattform für Online Sicherheit veröffentlicht:
https://www.onlinesicherheit.gv.at/service/news/305581.html

studLib
studLib ist ein Projekt, dass im Rahmen des Stuidums mit Kollege umgesetzt wurde. Diese Webseite soll eine Pattform für Studierende der FH Joanneum sein, auf der diese Unterlagen zu Vorlesungen austauschen können. So können ganz leicht hilfreiche Mitschriften und alte Prüfungen an andere Studierende weitergegeben werden.
Konkrete gibt es nach einem Login die Möglichkeit neue Materialen hochzuladen oder eine Lehrveranstaltung auszuwählen und dort dann Unterlagen herunterzuladen. Zu jeder Unterlage können auch Kommentare hinterlassen werden. Abgerundet wird diese Plattform durch die Möglichkeit Unterlagen oder Kommentare an einem Admin zu melden.
Für dieses Projekt verwenden wir explizit das Zend-Framework, um auch mit diesem häufig genutztem Framework Erfahrung zu sammeln. Weiters wird bei jeder Neuanmeldung die API der FH Joanneum abgefragt, um so automatisch vorhandene Lehrveranstaltungen im System anzulegen. Während der laufenden Entwicklung wird bei jedem Push zu GitLab, ein Jenkins-Job aktiviert, der automatisierte Tests laufen lässt und den aktuellen Code direkt auf eine öffentliche Webseite schiebt.
Somit ist die aktuellste Beta-Version immer unter http://studlib.webrabbit.at erreichbar.
PhotoSpot
PhotoSpot ist eine NodeJS basierte Webseite, auf welcher Fotografien sich über gute Plätze fpr Fotoshootings austauschen können. Dieses Projekt entstand gemeinsam mit zwei Kollegen im Rahmen der FH und diente dazu NodeJS kennenzulernen.
Die Webseite ist auch mit der Google API verbunden, um so interessante Plötze in der Nähe zu einem Standort zu finden. Des Weiteren wurden ein Double-Opt-In-Verfahren, ein Chat mit WebSockets und die Möglichkeit zum Anlegen und Suche von Plätzen implementiert. Darüberhinaus verfügt diese Webseite auch über eine ReST-API im JSON-Format und eine Reihe von automatisierten Test.
Fachbereichsarbeit über smartphone-optimierte Webseiten

Im Zuge meiner Matura schrieb ich 2013/2014 eine Fachbereichsarbeit über smartphone-optimierte Webseiten.

Vollständiger Titel:

Entwicklung einer Smartphone-optimierten Webplattform für das BRG Kepler auf Basis von Datenbanken

Abstract der Arbeit:

Bei der Programmierung einer Smartphone-optimierten Webseite sind einige Besonderheiten zu beachten, wie zum Beispiel der geringere Platz für die Darstellung oder das Bedienen eines Menüs mit den Fingern. Für die Lösung einer mobilen Webseite gibt es mehrere Ansätze, bei denen immer mehrere Scriptsprachen zum Einsatz kommen. Auch neue Technologien, welche erst mit den Smartphones aufkamen, wie zum Beispiel QR-Codes, bieten neue Möglichkeiten für die Programmierung von mobilen Webseiten. Anhand der Erstellung einer mobilen und datenbankbasierten Webseite für das BRG Kepler in Graz behandelt diese Arbeit die zuvor erwähnten Aspekte. Dabei werden auch Quellcode-Ausschnitte abgebildet und näher erklärt, sodass nachvollzogen werden kann, wie eine mobile Webseite technisch realisiert wird.

Meine Arbeiten als angestellter Webentwickler

Seit Februar 2016 bin ich als Webentwickler (Teilzeit) für ein steirisches Unternehmen angestellt. In Zuge dieser Anstellung habe ich inzwischen schon einige WordPress- und Joomla-Webseiten realisiert. Neben der Erstellung von Templates für diese Systeme und Einrichtung und Anpassung von vorhandenen Plugins, entwickle ich auch unternehmenseigene Plugins und Module intensiv weiter. Darüberhinaus implementiere ich auch einige Selenium-Tests und führe auch immer wieder Bugfixes an bestehenden Webseite durch. Weiters durfte ich auch schon die ein oder andere nicht smartphone-taugliche Webseite responsive machen und so den Besuchern ein verbessertes Surferlebnis bereitstellen.

In meinen Aufgabenbereich fallen auch die Verwaltung von mehreren moodle-Instanzen und die Mitarbeit an Zend-basierten Projekten. Zeitweise helfe ich auch bei der Konzeption neuer Projekte mit und warte auch Legancy-Systeme wie zum Beispiel recht alte Flash-Applikationen.

Private Projekte

In meiner Freizeit habe ich schon immer einige kleinere Projekte umgesetzt. So habe ich immer wieder einmal meine private Webseite überarbeitet. Angefangen habe ich mit eine iWeb-Seite, aus der dann eine Joomla-Webseite wurde. Anschließend verwendete ich ein selbst gestricktes CMS, um meinen Webauftritt umzusetzen. Und nun sind Sie auf einer WordPress-Seite gelandet.

Weitere Projekte:

  • Devlog – Projektmanagement und Bug-Tracking-Tool
  • beatrixhuber.at – Private Webseite von Beatrix Huber
  • Interrail-Tagebuch – Webseite über meine dreiwöchige Interrail-Reise als Tagebuch
  • und jede Menge andere….