PHP 7.4 wird ab Mai 2020 neue Standardversion

Seit Ende November 2019 ist die neueste PHP-Version 7.4 bereits in einer Stable Version auf unseren Servern in Betrieb. Ab Mai 2020 machen wir PHP 7.4 nun zur neuen Standardversion. Damit liefern Webhostings von cyon zukünftig PHP-Websites standardmässig mit PHP 7.4 aus.

Ab Mai 2020: PHP 7.4 wird Standardversion.

Muss ich etwas unternehmen?

Falls Sie in Ihrem my.cyon-Konto nicht ausdrücklich eine andere PHP-Version für Ihre Website ausgewählt haben, nutzen Sie die von uns vorgegebene PHP-Standardversion. Zurzeit ist das PHP 7.1. Nach der Umstellung der Standardversion wird Ihre Website völlig automatisch mit PHP 7.4 ausgeliefert.

Sind Sie unsicher, ob Ihre Website auch mit PHP 7.4. wie gewohnt funktioniert? Mit wenigen Mausklicks können Sie das bereits jetzt testen.

Wie prüfe ich, ob meine Website auch mit PHP 7.4 funktioniert?

Die beliebtesten CMS wie WordPress oder Contao sind bereits mit PHP 7.4 kompatibel. Um zu testen, ob auch Ihre Website mit PHP 7.4 problemlos funktioniert, gehen Sie wie folgt vor:

  1. Loggen Sie sich in Ihr my.cyon-Konto ein.
  2. Wählen Sie den Menüpunkt «Erweitert > PHP-Versionsmanager».
  3. Wählen Sie für die gewünschte Domain oder einen einzelnen Unterordner die PHP-Version 7.4.
  4. PHP-Versionsmanager mit PHP 7.4

  5. Rufen Sie anschliessend Ihre Website auf und prüfen Sie diese auf sichtbare Fehler oder fehlende Elemente. Melden Sie sich ausserdem im Administrationsbereich Ihres CMS an und prüfen Sie, ob Fehler in der Darstellung oder Fehlermeldungen sichtbar sind.
  6. Funktioniert Ihre Website auch mit PHP 7.4 wie gewünscht, wählen Sie wieder den Wert «Standard» für die gewünschten Verzeichnisse. So nutzen Sie immer automatisch die jeweils gültige Standardversion.

Mögliche Stolpersteine: Plugins und Themes

Änderungen an der PHP-Version verursachen mit den Kernsystemen von WordPress, Joomla, TYPO3, Drupal, Contao und Co. in der Regel keine Probleme. Plugins, Erweiterungen und Themes, die noch nicht auf die neueste PHP-Version vorbereitet sind, können hingegen Fehlermeldungen verursachen. Legen Sie deshalb bei der Prüfung Ihrer Website mit PHP 7.4 ein besonderes Augenmerk auf Plugins und Themes und etwaige Fehlerausgaben. In vielen Fällen genügt das Deaktivieren des Plugins oder der Wechsel auf ein moderneres Theme, um die eigene Website wieder fit für die kommenden Jahre zu machen.

Wann wird die PHP-Standardversion für mein Webhosting umgestellt?

Wir werden mit der Umstellung der PHP-Standardversion ab Mai 2020 beginnen. Um Ihnen bei allfälligen Problemen mit der Umstellung rasch zur Seite stehen zu können, werden wir die Umstellung auf den verschiedenen Servern zu unterschiedlichen Zeitpunkten vornehmen. Den genauen Zeitplan finden Sie in unserem Supportcenter sowie im my.cyon-Konto unter dem Menüpunkt «Erweitert > PHP-Versionsmanager». Wir erinnern unsere Kundinnen und Kunden ausserdem vor der Umstellung per E-Mail.

Captchas: Es muss nicht immer reCAPTCHA sein

Was wären Websites ohne Kontaktformulare. Oder Kommentarfelder. Sie bieten eine Austauschmöglichkeit oder gar ein Mitwirken von Website-Besuchern. Falls Sie schon eine Weile mit solchen Elementen auf Ihrer Website arbeiten, kennen Sie vielleicht die eine oder andere Form von Kontaktformular- oder Kommentar-Spam.

Captchas: Es muss nicht immer reCAPTCHA sein.

Solche Spam-Attacken werden automatisiert durchgeführt und in der Regel hilft eine Absicherung mit einem Captcha. Captcha ist die Abkürzung für «Completely automated public turing test to tell computers and humans apart» – also ein Test, der Mensch und Maschine unterscheiden soll.

In der Regel sind diese Tests in Form von kleinen Bildrätseln sichtbar, die nur Menschen lösen können sollten. Wir bei cyon empfehlen unseren Kundinnen und Kunden ebenfalls den Einsatz von Captchas, um sich vor bösen Überraschungen zu schützen.

reCAPTCHA: Der Platzhirsch

Der verbreitetste Dienst für solche Captcha-Lösungen heisst reCAPTCHA. Der Dienst wurde ursprünglich an der Carnegie Mellon University entwickelt und später von Google aufgekauft. Er definiert quasi den Standard und gilt als sehr zuverlässig.

Was viele nicht wissen: Die Zuverlässigkeit kommt nicht nur von den gut ausgewählten Rätseln. Im Hintergrund erhält jede Benutzerin und jeder Benutzer einen Fingerabdruck, der eine grosse Rolle bei Googles Turing-Test spielt. Jede Anfrage erhält einen Score mit undurchsichtigem Ranking, bei dem viele Faktoren mitspielen. Das könnten die IP-Adresse oder auch google.com-Cookies sein. Grundsätzlich vermute ich, dass Google hier möglichst viele verfügbare Daten hinzuzieht, weil das den Dienst zuverlässig macht.

Ich halte es für problematisch, dass dieser Vorgang im Hintergrund abläuft und Google so von jeder reCAPTCHA-ausfüllenden Person Daten sammeln kann. Welche Website wurde zu welchem Zeitpunkt von wo aus aufgerufen? Zusammen mit all den anderen Daten, die Google über jeden von uns hat, liesse sich daraus ein sehr genaues Profil erstellen. Wer versucht, sich diesem Profiling zu entziehen, indem sie oder er zum Beispiel über das Tor-Netzwerk versucht, ein reCAPTCHA auszufüllen, sieht sich oft gleich mit mehreren und schier unlösbaren Bild-Rätseln konfrontiert.

Alternativen zu reCAPTCHA

Wer für seine eigene Website nicht auf reCAPTCHA setzen will: Es gibt einige sehr passable Alternativen zum Platzhirsch. Die meisten davon sind auch sehr einfach integrierbar. In unserem Supportcenter-Artikel «Captcha», haben wir einige dieser Lösungen für Sie gesammelt. Ein kleiner Vorgeschmack:

Versteckte Formularfelder (Honeypot-Felder)

Eine bereits seit 2007 relativ gut funktionierende Methode, sind versteckte Formularfelder. Nicht speziell für Ihre Website geschriebene Spam-Scripts sind nicht intelligent genug, um ein Formularfeld mit dem Namen «URL» leer zu lassen. Wenn das Formularfeld mittels CSS versteckt wird, fallen 99.9% aller Spambots darauf herein. Vergessen Sie dabei bitte nicht, über ein <label>-Element die Barrierefreiheit zu gewährleisten.

Antispam Bee für WordPress

Angesichts der Beliebtheit von WordPress, widmen wir unserem Plugin-Tipp einen eigenen Abschnitt. Antispam Bee ist ein zuverlässig arbeitendes Open-Source-Plugin, das wenig Daten sammelt und einem gleichzeitig sehr viel Kontrolle lässt. Wir setzen Antispam Bee selber schon seit Jahren erfolgreich auf unserem Blog ein und können das Plugin uneingeschränkt weiterempfehlen.

Antispam Bee lässt sich individuell konfigurieren.

Antispam Bee lässt sich individuell konfigurieren.

CMS-spezifische Antispam-Erweiterungen

Neben Antispam Bee für WordPress gibt es für praktisch alle Content-Management-Systeme ein grosses Sammelsurium an Captcha-Erweiterungen. Diese bringen verschiedene Technologien von Haus aus mit und sind einfach zu installieren.

Die Plugins für die beliebtesten Systeme finden Sie unter folgenden Links:

Captcha oder kein Captcha?

Nicht zuletzt stellt sich aber auch immer die Frage: Sind aufdringliche Captchas wirklich nötig? Wie oft habe ich mich schon genervt, wenn ich vor dem Absenden meiner Kontaktanfrage ein mühsames Captcha ausfüllen musste. Ich lege Ihnen deshalb ans Herz: Überlegen Sie sich vor jedem Einbau eines Captchas, ob dieses wirklich nötig ist. Vielleicht gibt es einfachere Lösungen, die Ihre Besucherinnen und Besucher weniger ausbremsen.

Web-Applikationen mit NuxtJS entwickeln

Web-Applikationen mit dem JavaScript-Framework Vue.js aufzusetzen ist nicht immer ganz trivial. In die Bresche springt hier ein weiteres Framework, das unter anderem auf Vue basiert: NuxtJS. Nuxt kann zum einen für sogenannte «Universelle Applikationen» eingesetzt werden, die auf dem Server generiert werden. Zum anderen sind damit auch «Single Page Applications» (SPA) sowie statisch generierte Applikationen möglich.

Web-Applikationen mit NuxtJS entwickeln.

Das Framework integriert andere wichtige Bibliotheken, welche für die Entwicklung von Applikationen verwendet werden. So werden z. B. der Vue Router oder die State Management Library Vuex bereits mitgeliefert . Dabei gibt Nuxt eine bestimmte Verzeichnisstruktur vor, wie die Applikation organisiert werden muss. Ausserdem integriert das Framework die Tools Webpack und Babel. Ich zeige heute, wie man eine einfache Nuxt-Applikation in wenigen Schritten aufgesetzt hat.

Startschuss: Ein neues Nuxt-Projekt erstellen

Um ein neues Projekt zu initialisieren, nutzen wir die Library create-nuxt-app. Damit das funktioniert, installieren wir zuerst Node.js sowie die passende Paketverwaltung npm, die automatisch mit Node.js mitgeliefert wird. Dann kann es losgehen: Mit dem Befehl npx create-nuxt-app my-web-app starten wir den Assistenten, der uns durch die Erstellung der neuen Applikation begleitet.

Startschuss: Ein neues Nuxt-Projekt erstellen.

Im letzten Schritt werden wir nach dem «Rendering Mode» gefragt. Wir wählen hier die Option «Single Page App». Dies bedeutet, dass wir eine normale Single Page Application bauen, ohne dabei «Server Side Rendering» (SSR) zu nutzen. Nach einem Wechsel in das Verzeichnis, wo Nuxt die Applikation generiert hat, können wir die Applikation bzw. den Entwicklungs-Server mit dem Befehl npm run dev starten.

Das Aussehen: Layouts

Im Verzeichnis layouts/ finden wir zu Beginn eine Datei mit dem Namen default.vue. Sie bestimmt das Layout, das für alle Seiten der Applikation verwendet wird. Hier könnten wir nun verschiedene Layouts definieren, vorerst reicht es aber, wenn wir das vorgegebene Layout editieren.

Die Datei ist das Grundgerüst für alle Seiten und definiert, wie diese dargestellt werden sollen. Wir möchten nun einen einfachen Header einbauen und fügen im Template folgenden Codeblock vor <nuxt /> ein:

<nav>
  <span>My app</span>
  <nuxt-link to="/about">About us</nuxt-link>
</nav>

Mit dem Codeblock haben wir hier auch gleich einen Link auf die Seite /about eingefügt, weshalb wir diese Seite jetzt noch erstellen müssen. Alles was es dafür braucht, ist eine Datei im Ordner pages/ mit dem Namen about.vue.

Der Inhalt: Pages

Das Routing einer Seite, sprich die Zusammensetzung der URL, ergibt sich bei Nuxt immer aus der Verzeichnisstruktur. Das bedeutet, dass unsere Datei about.vue unter der Adresse /about erreichbar ist.

Wir füllen die Datei nun mit Inhalt:

<template>
  <div>
    <h1>Über uns</h1>
    <p>Das ist unsere Über-uns-Seite. Wir erstellen heute eine Website mit Nuxt.</p>
  </div>
</template>

Wenn wir jetzt in unserem Browser auf den «About us»-Link klicken, sehen wir auch gleich die neu erstellte Seite:

Der Inhalt: Pages.

Der Wegweiser: Dynamisches Routing

Die Verzeichnisstruktur für Seiten kann auch dynamisch sein. Nehmen wir an, wir benötigen für verschiedene Benutzerinnen und Benutzer eine Detailansicht. Dazu erstellen wir im Verzeichnis pages/ einen neuen Ordner mit dem Namen users/ und dort wiederum eine Datei mit dem Namen _id.vue. Diese Datei befüllen wir danach mit folgendem Inhalt:

<template>
  <h1>Hallo Benutzer {{ $route.params.id }}</h1>
</template>
<script>

In unserer Navigation können wir nun Links zu den verschiedenen Benutzerinnen und Benutzern setzen. Dazu erweitern wir die Datei default.vue im Verzeichnis layouts/ mit folgendem Code:

<nuxt-link to="/users/1">Benutzerin 1</nuxt-link>
<nuxt-link to="/users/2">Benutzerin 2</nuxt-link>

Im Browser präsentiert sich das dann so:

Der Wegweiser: Dynamisches Routing.

Bereit zur Veröffentlichung: Deployment

Sind wir mit der Applikation nun soweit, dass wir sie auf den Server laden können, klappt das mit Nuxt ebenso komfortabel wie die vorherigen Schritte. Mit dem Befehl npm run generate werden die nötigen Dateien im Verzeichnis dist/ generiert. Da es sich dabei um rein statische Dateien (HTML, CSS, Bilder und JavaScript) handelt, die nicht auf dem Server ausgeführt werden müssen, lässt sich die Applikation auf jedes erdenkliche Webhosting laden. Ob per FTP, SSH oder Git, uns sind keine Grenzen gesetzt. Ich wünsche viel Spass beim Ausprobieren 🙂

Transparenzbericht 2019

Als eine von nur wenigen Schweizer Firmen veröffentlichen wir seit 2017 jährlich einen Transparenzbericht zum Vorjahr (2016, 2017, 2018). Wir versuchen so, Klarheit über die rechtlichen Anfragen zu schaffen, die bei uns von Behörden, Unternehmen und Privatpersonen eintreffen.

Im vergangenen Jahr haben uns insgesamt 33 Anfragen zu bei uns gehosteten Website-Inhalten erreicht. Wer sie gestellt hat, wie wir damit umgegangen sind und um welches Thema sich die Anfrage drehte, zeigen wir nachfolgend auf.

Anfragen zu unzulässigen Inhalten

Anfragen zu unzulässigen Inhalten stammen in der Regel von Privatpersonen und Unternehmen und werden von uns nach dem Code of Conduct Hosting der simsa bzw. des SWICO behandelt. Im Zeitraum vom 01.01.2019 – 31.12.2019 haben wir 23 Anfragen zu unzulässigen Inhalten erhalten:

Anfragesteller

Anfragesteller Anzahl Anfragen
Unternehmen 14
Privatperson 8
Eidgenössische Finanzmarktaufsicht (FINMA) 1

Land des Anfragestellers

Land Anzahl Anfragen
Schweiz 10
USA 5
Italien 3
Grossbritannien 2
Deutschland 1
Niederlande 1
Frankreich 1

Grund der Anfrage

Rechtsgebiet Anzahl Anfragen
Markenrecht 9
Phishing 4
Domain-Inhaberschaft 4
Spam 2
Persönlichkeitsrecht 2
Urheberrecht 1
Unbewilligtes Institut 1

Verfahren nach Code of Conduct

Verfahren Anzahl Anfragen
Notice-and-Notice 17
Notice-and-Takedown 6

Auskunftsersuchen von Behörden

Im Zeitraum 01.01.2019 – 31.12.2019 haben wir 10 Auskunftsersuchen von Behörden erhalten. Dabei handelte es sich um Anfragen der folgenden Instanzen:

Behörde Art der Anfrage Anzahl erhaltener Anfragen Anfragen, bei denen Daten geliefert wurden
Staatsanwaltschaft, Polizei Editionsverfügung
(Art. 263/265 StPO)
5 5
EJPD, ÜPF Rückwirkende Verkehrsdaten, Überwachung des Fernmeldeverkehrs
(Art. 18 Abs. 5 VÜPF)
5 4

Generell

Aus datenschutzrechtlichen Gründen händigen wir Daten nur auf Wunsch unserer Kunden und Kundinnen, beziehungsweise nach erfolgreicher Authentifizierung oder nach Erhalt einer behördlichen Verfügung diverser öffentlicher Einrichtungen (Staatsanwaltschaft, Dienst üPF, Finanzmarktaufsicht) aus.

Dabei wird ein Kunde oder eine Kundin nicht immer informiert. Einige Editionsverfügungen, vor allem von laufenden Untersuchungen, verlangen über einen gewissen Zeitraum Verschwiegenheit. Bei standardmässigen Code-of-Conduct-Fällen werden jeweils der Absender einer Beschwerde, sowie die betroffenen Kundinnen und Kunden kontaktiert.

Fazit

Seit dem Inkrafttreten des neuen «Bundesgesetz betreffend die Überwachung des Post- und Fernmeldeverkehrs» («Das neue BüPF») im Frühling des vergangenen Jahres erhalten wir entsprechende Anfragen des Dienst ÜPF über ein Online-Portal. Gefühlt hat sich damit die Anzahl der Anfragen etwas erhöht. Ob sich diese Wahrnehmung bestätigt, wird sich erst in den kommenden Jahren zeigen.

Wer sich für weitere Transparenzberichte interessiert, findet auf der Website von Rechtsanwalt Martin Steiger eine Liste mit weiteren Transparenzberichten.

Hackday: Displays für Meetingräume

In losen Abständen veranstaltet unser Software-Engineering-Team interne «Hackdays», während denen sich das gesamte Entwicklungs-Team intensiv mit einem bestimmten Thema auseinandersetzt. Unser Software-Entwickler Max brachte es im Bericht zum Hackday «Sensoren für den Durchblick» auf den Punkt:

Dabei stehen Teamgeist, die Begeisterung für neue Technologien und Spass im Vordergrund, es kann allerdings durchaus vorkommen, dass an solchen Events tolle Projekte entstehen, die später tatsächlich «im realen cyon-Leben» genutzt werden.

Wir dachten uns nun: Was im Software-Engineering-Team für Spass und Zusammenhalt sorgt, muss doch auch in grösserer Dimension anwendbar sein. Gesagt, getan. So wurde der Hackday zum cyon-weiten Anlass. Damit trafen sich beim letzten Event Mitarbeitende aus allen Bereichen in unserer Cafeteria, um an Displays für Meetingräume zu hacken.

Hackday: Displays für Meetingräume.

Die Vorbereitung

Bevor das Thema für den Hackday überhaupt feststand, wurden im ganzen Team Ideen gesammelt, mit welchen Themen wir uns beschäftigen könnten. Anschliessend haben wir darüber abgestimmt, welche Idee das Rennen machen soll. Praktischerweise haben wir damit auch bereits Ideen für weitere Hackdays gesammelt.

Unser Organisator Michael machte sich nun daran, die Idee zu konkretisieren. 4 Handlungsfelder wurden es schliesslich:

  • LED-Strip
    Jedes Display soll mit einem LED-Strip versehen werden, das mittels Farbe den Status eines Raums bereits von weitem erkennen lässt.
  • E-Ink-Display
    Das E-Ink-Display benötigt nur bei einer Veränderung Strom und ist damit äusserst energiesparsam. Selbst bei einem Stromausfall ist sichergestellt, dass niemand die Sitzung verpasst ;)
  • Touchscreen-Display
    Das Display mit eingebauter Touch-Funktion ermöglicht Eingaben durch Benutzerinnen und Benutzer. So lässt sich ein Raum vor Ort auch kurzfristig buchen.
  • Schnittstelle Open-Xchange
    Wir nutzen Open-Xchange zur Verwaltung unserer Termine. Die passende Schnittstelle soll ermöglichen, dass die Displays immer mit den aktuellsten Informationen versorgt werden.

Einkaufsliste

Um die 4 Handlungsfelder abzudecken, war entsprechende Hardware nötig. Unsere Einkaufsliste für den Hackday:

Der Hackday

Pünktlich um 09:00 Uhr trafen sich die Hackday-Teilnehmenden. Nach einem kurzen Intro und der Aufteilung auf 4 Teams ging es auch schon los.

Team LED-Strip

Team LED-Strip kümmerte sich darum, zur richtigen Zeit die richtige Farbe leuchten zu lassen. Üblicherweise wird den LED-Strips eine Fernbedienung mitgeliefert, mit der sich das eigene Wohnzimmer per Knopfdruck in Licht mit der gewünschten Wellenlänge tauchen lässt. Bei uns kam anstatt einer Fernbedienung ein Raspberry Pi zum Einsatz.

Der LED-Strip in Aktion.

Der LED-Strip in Aktion

Glücklicherweise fand das Team nach kurzer Suche eine fixfertige Python-Library, das die Steuerung des LED-Strips massiv vereinfachte. Nun fehlte nur noch die korrekte Pin-Belegung für den Anschluss an den Raspberry Pi und das Team konnte so richtig loslegen. Und trotz sehr wenigen Vorkenntnissen konnte Team LED-Strip nach kurzer Zeit erste Erfolge feiern. Bis am Abend hatte das Team einen funktionstüchtigen Protoytpen gebaut, der den Belegungstatus eines Raumes korrekt anzeigt.

Team E-Ink-Display

E-Ink-Displays, bekannt aus Produkten wie E-Readern, eignen sich für die Anzeige von Informationen, die nicht ständig wechseln. Perfekt also für die Anzeige eines Belegungsstatus. Das von uns verwendete Display wurde mit passendem Raspberry-Pi-«Header» geliefert und konnte so direkt mit dem dafür vorbereiteten Raspberry Pi Zero verbunden werden.

E-Ink-Display zeigt ersten Layout-Entwurf an.

Das E-Ink-Display zeigt den ersten Layout-Entwurf an.

Im Gegensatz zu einem herkömmlichen LCD-Display, das per HDMI angesprochen werden kann, muss auf einem E-Ink-Display «selbst gezeichnet» werden. Team E-Ink-Display verfolgte zu Beginn deshalb 2 Ideen: Das Zeichnen der Informationen mittels entsprechender Software und die Anzeige der Informationen in ASCII-Art, bekannt aus der Kommandozeile. Da das Zeichnen der Informationen aber rasch gut funktionierte, wurde die zweite Idee nicht weiterverfolgt. Dass das Zeichnen gut funktionierte, war übrigens nicht der offiziellen Dokumentation des Displays geschuldet – im Gegenteil, die Doku war praktisch inexistent – sondern vielen guten Beispielen auf Github. Schlussendlich fehlte nur noch eine Anbindung an unsere Groupware-Software, um die sich Team Schnittstelle Open-Xchange vertieft kümmerte.

Team Touchscreen-Display

Das Team, das sich um den Touchscreen-Display kümmerte, hatte schon früh mit Stolpersteinen zu kämpfen. Die vorbereiteten Raspberry Pis waren alle mit Raspbian Buster Lite geflasht worden. Ohne den in dieser Version fehlenden X11-Server, war der Raspberry Pi im Zusammenspiel mit dem Display nicht zu gebrauchen. Team Touchscreen-Display machte sich also als erstes daran, ihren Raspberry Pi mit der Desktop-Version zu flashen. Doch der nächste Stolperstein liess nicht lange auf sich warten. Das Team wollte das Display in Hochkantformat nutzen. Die entsprechenden Änderungen in der Betriebssystem-Konfiguration trugen allerdings nicht die gewünschten Früchte. So zeigte das Display die Inhalte zwar im gewünschten Format an, die Touchscreen-Eingaben landeten jedoch nicht am richtigen Ort. Nach einigen Versuchen entschied man sich für die pragmatische Lösung, doch das Querformat zu nutzen.

Für die Aufbereitung der Groupware-Daten entschied sich das Team für eine kleine Web-Applikation auf Basis des PHP-Micro-Frameworks Slim. Nachdem das Routing mit Slim gebaut war, stellten sich dem Team zwei grundlegende Fragen:

  • Wie kommen wir zu den Daten?
  • In welchem Format müssen diese an das Frontend weitergegeben werden?

Diese beiden Fragen beschäftigten das Team für den Rest des Tages. Vor allem die erste Frage sorgte für rote Köpfe, übrigens auch in den anderen Teams. Gut, kümmerte sich ein dediziertes Team um diese Aufgabe.

Das Touchscreen-Display in der zwischenzeitlich verfeinerten Variante.

Das Touchscreen-Display in der zwischenzeitlich verfeinerten Variante.

Team Schnittstelle Open-Xchange

Das vierte Team in der Runde wandte sich der von uns genutzten Groupware-Software Open-Xchange und deren Schnittstelle zu. In weiser Voraussicht bestand das Team aus zwei Personen, die erfahren im Umgang mit der Open-Xchange-API sind. Zwar nutzen wir in bestehender Software bereits einen API-Client für den Zugriff auf die Groupware-Daten, der allerdings noch auf einer alten API-Version basiert. Die Spezifikation der neuen API stellte das Team vor einige Herausforderungen, was vor allem an Fehlern in der Spezifikation lag. Nachdem diese Probleme aus dem Weg geräumt waren, generierte das Team einen passenden PHP-Client. Doch es traten weitere Probleme im Login-Verfahren auf, die bis zum Ende des Tages nicht vollständig gelöst werden konnten.

Obwohl die anderen Teams damit auf den bereits vorhandenen Client ausweichen mussten, konnte Team Schnittstelle durch das Debugging wertvolles Wissen im Umgang mit Open-Xchange gewinnen.

Das Endprodukt

Gegen 16:15 Uhr legten die Teams einen Endspurt hin und versuchten, die Einzelteile gemeinsam zu einem grossen Ganzen zu verbinden. Das Resultat war eine Belegungsanzeige für unser Sitzungszimmer «Cherry», die seither zuverlässig ihren Dienst tut.

E-Ink-Display und LED-Strip in der Ausprägung «nutzbarer Prototyp».

E-Ink-Display und LED-Strip in der Ausprägung «nutzbarer Prototyp».

An den Ecken und Kanten können wir selbstverständlich noch schleifen und auch das Gewand des Geräts präsentiert sich noch im Stil Prototyp. Eines aber ist klar: Hackdays machen Spass und bringen Mitarbeitende aus verschiedenen Teams näher zusammen. Ausserdem ist es immer wieder verblüffend zu sehen, was an einem einzigen Tag alles erreicht werden kann. Fortsetzung folgt, bestimmt.