Aare.guru-API: Saison 2025 Newsletter

Dank der rapide steigenden Temperaturen von Luft & Wasser habe ich heute meine persönliche Aare-Schwumm-Saison 2025 eröffnet. Das letztjährige Motto No Nid Einisch wird sich nicht nochmals wiederholen.

Neue API: Historische Aare-Daten

Für die neue Statistikseite vom Aare.guru benutzen wir die neue API-Methode history. Wassertemperatur, Abfluss und Lufttemperatur können über jahrzehntelange Zeitperioden abgefragt werden. Die zurückgegeben Frequenz (10 Minuten, Stunden- oder Tageswerte) wird dabei automatisch anhand des abgefragten Zeitraumes gewählt.

Je nach Standort sind über 20 Jahre Daten verfügbar!

Intern werden die Daten aus der Existenz-InfluxDB geliefert, hier einfach etwas einfacher abzufragen.

Neue MeteoSchweiz-Open Government Data-Daten

Apropos Langzeitarchiv: Ich bin daran, das neue OGD-Datenarchiv der MeteoSchweiz (Mai 2025) in die InfluxDB zu importieren. Geplant ist es die wie bis anhin angebotenen Hauptparameter des Bodenmessnetzes SwissMetNet rückwirkend vom Jahr 2000 bis zur Gegenwart zu importieren. Wenn diese Arbeiten abgeschlossen sind werde ich hier informieren.

Ein grosses Lob an die MeteoSchweiz für deren seriösen OpenData-Effort.

Aktualisiertes Aare.guru-Techstack-Webinar

Die Guild42 hat mich eingeladen, mein Webinar vom Dezember 2021 zu aktualisieren und erneut vorzutragen. Dieses Mal vor einer Live-Audienz.

Wenn du mit dabei sein möchtest: Am 1. September 2025, 18:00 im Best Western Hotel Bern. Eintritt frei. Anmeldung erforderlich auf Meetup.com.

Birebitzeli nervös bin ich schon.

Schlechte Saison, schönes Plakat

Unser Grafiker Käspu hat die miserable letztjährige Saison (Ständig zu viel Wasser…) wieder in Plakatform verewigt, erhältlich in unserem Onlineshop oder in seinem Plakatkeller.

Gute Nacht und guten Schwumm.

Link zum Wochenende: 64er-Magazin Rerun

Wieder etwas Nostalgie und zusätzlich fast ein Jahr zu spät: Letztes Jahr war das 40 jährige Jubiläum seit der ersten Ausgabe der Computerzeitschrift 64er. Das Heft beschäftigte sich mit dem Homecomputer Commodore 64, meinem ersten Computer überhaupt. Sowohl das Gerät wie auch das Magazin haben deshalb einen speziellen Platz in meinem Herzen.

Zu diesem Jubiläum haben sich eine Gruppe von Enthusiasten etwas besonderes ausgedacht: Mit exakt 40 Jahren Verzögerung publizieren sie die Artikel erneut online: https://www.64er-magazin.de

Sehr cool.

Twint auf Abwegen: Zahlungslinks

Die Schweizer Finanzapp-Lösung ist eine Erfolgsgeschichte. Seit ihrer Lancierung und der überraschenden und erfolgreichen Fusion mit der damaligen Konkurrenz Paymit im Jahr 2016 ging’s nur noch nach oben. Über 5 Millionen Benutzer, unzählige Onlineshops, Hofläden und Opferstöcke, die beliebteste Marke der Schweiz. Ein Erfolg reiht sich an den anderen.

Jetzt kann es eigentlich nur noch abwärts gehen. Tatsächlich scheinen sich neue Funktionen in den Apps weg von Nützlichem hin zu Gamifizierung und Rabattaktionsshop zu entwickeln. Das könnte man ja noch ignorieren.

Aber diesen Monat lancierte Twint Zahlungslinks. Und bewegt sich damit auf sehr dünnes Eis: Derartige Links sind Einfallstor für die meisten Scam- und Phishingversuche auf Plattformen wie Ricardo und Tutti. Regelmässig versenden Betrüger gefälschte Links und versuchen damit an Logininformationen zu kommen. Und sind dabei immer und immer wieder erfolgreich. Und die betroffenen Personen erhalten danach kaum Unterstützung von den Finanzinstituten.

Das Bundesamt für Cybersicherheit BACS verzeichnet jährlich zehntausende gemeldete Phishingversuche.

Twint scheint mit den Zahlungslinks da jetzt auch mitmachen zu wollen und legt schon mal wie erwartet vor: Auf der entsprechenden Webseite erscheint das Wort „Sicherheit“ oder „Schutz“ kein einziges Mal. Phishing wird ironischerweise nur in einer Warnmeldung ganz oben erwähnt.

Ich fürchte damit handelt sich Twint unnötig massive Probleme ein und könnte auf der Marken-Beliebtheitsskala schon bald wieder von irgendwelchen Pommes-Chips-Produzenten überholt werden.

WordPress-Fehler anzeigen

Aktuell deaktivieren viele Hoster die veraltete PHP Version 7 und stellen auf PHP Version 8 um. Das führt dazu, dass gewisse Codezeilen Fehlermeldungen und Warnungen provozieren können (Deprecation-Notices). Wer wie ich nicht alle WordPress-Plugins auf der neuesten Version am Laufen hat, bekommt diese plötzlich angezeigt oder aber einzelne Seiten, z.B. Produkteseiten in Woocommerce, werden nur noch fehlerhaft dargestellt..

Diese Notices führen nicht zwangsläufig dazu, dass die Seite nicht mehr funktioniert und werden deshalb vom WordPress-internen Fehlermanagement nicht abgefangen. Die Standardeinstellungen von WordPress aber verstecken die Fehlermeldungen. Das Resultat ist unschön: Eine halb funktionierende Seite.

Hilfe zur Lösungsfindung

  1. Direkt auf dem Hosting die Datei wp-config.php im obersten Verzeichnis von WordPress zum Editieren öffnen. Bei Unsicherheiten zuerst eine Sicherheitskopie der Datei anfertigen.
  2. Die Zeile define( 'WP_DEBUG', false); suchen (Oder im oberen Teil einfügen) un den Wert von false auf true ändern.
  3. Betroffene Seite aufrufen. Die Fehlermeldungen sollten jetzt sichtbar sein und das verursachende Plugin identifizierbar machen.
  4. Fehler beheben.
  5. Den Wert define( 'WP_DEBUG', false); wieder auf false zurück wechseln.

Temporär kann die PHP Version je nach Hoster noch für eine Übergangsfrist auf die veraltete Version 7 hinuntergesetzt werden. Längerfristig ist ein Update der WordPress-Instanz & -Plugins unabdingbar.

PHP-Package MyTS – Zeitreihen in SQL-Datenbanken

Wer als Werkzeug nur eine SQL-Datenbank hat, sieht in jedem Problem relationale Daten.

Aus der alten Architektur von meiner OpenData-Seite api.existenz.ch ist eine isolierte PHP-Bibliothek zum Speichern und Abfragen von Zeitreihen entstanden: MyTS (My Time Series).

Da auf dem verwendeten Shared Hosting nur eine MySQL-Datenbank zur Verfügung steht, lagern die aktuellen Daten dort relational und besser verfügbar als mein Langzeit-Datenarchiv auf InfluxDB.

Das spannende Details hier: Für das Unittesting mit einer echten Datenbank wird in den GitHub Actions ein eigener Datenbankcontainer hochgefahren.

Entwicklertagebuch in Visual Studio Code führen

VSCode Journal - Erster Eintrag
Mein erster Eintrag im Tagebuch

Seit sieben Jahren dokumentiere ich meine Entwicklertätigkeiten in einem Tagebuch im Texteditor Visual Studio Code. Dazu benutze das Plugin vscode-journal. Mit der Tastenkombination Command-Shift-J legt mir dieses Plugin eine neue Textdatei im Markdown-Format mit folgender Namensstruktur an:

/.../Text/2024/11/10.md

Das heisst das Plugin erstellt automatisch Verzeichnisse für das Jahr und den Monat, benennt die Datei nach dem aktuellen Tag und öffnet sie im Editor.

Der Inhalt des Entwicklertagebuchs hat sich über die Jahre ausgeweitet:

  • Berufliche und private Programmiertätigkeiten, Systemkonfiguration
  • Kurzfristige Todo-Listen und was als Nächstes ansteht
  • Konzeptionelles, Dokumentations- und Mailentwürfe
  • Private Tätigkeiten (Administrative Arbeiten, Wohnungsunterhalt, Veloreparaturen, Hobbys, Sport, Rätselparcours etc.)
  • Soziales (Treffen, Feste, Mittagessen etc.)

Was sich als besonders wertvoll erwiesen hat: Eine „Nächste Schritte“-Notiz bei privaten Projekten. Wenn ich ein solches Projekt nach Monaten oder gar Jahren wieder in die Finger nehme, bin ich froh über Anhaltspunkte darüber was ich als Nächstes geplant hatte.

Parallel dazu führe ich im /Text-Verzeichnis eine Sammlung von Textdokumenten, PDFs und Bildern als persönliche Wissensdatenbank in einer möglichst flachen Verzeichnisstruktur.

Alle fünf Minuten wird das ganze Verzeichnis via Git automatisch zu GitHub in ein privates Repository commited. Dazu wird aus der lokalen crontab folgendes Skript aufgerufen:

#!/usr/bin/env bash

cd "$(dirname "$0")" || exit

/usr/bin/git add -A
/usr/bin/git commit -m "Autocommit."
/usr/bin/git push

Ich benutze dieses System nur auf einem Computer, deshalb benötige ich nur eine Einweg-Synchronisation. Bei meinen externen Mandaten richte ich mir normalweise ein separates Repository in der internen Codeverwaltung ein.

Der grösste Vorteil ist meiner Meinung nach die Einfachheit der Datenspeicherung: Es handeln sich zum grössten Teil um einfach Textdateien. Keine proprietäre Formate, diese Dateien werden immer lesbar bleiben.

Ein Nachteil hat meine einfache Lösung, besonders im Umfeld des Wissensmanagements: Als einzige Recherchemöglichkeit steht die Volltextsuche zur Verfügung. Was ich mit dieser Suche nicht finde, ist verloren. (Habe ich jetzt den Ausdruck „Aare.guru“ oder „Aare Guru“ oder „Aareguru“ verwendet?) Das System würde zwar Verknüpfungen zwischen Dateien unterstützen, aber nur rudimentär.

Als Alternative empfiehlt sich ein spezialisiertes System wie Obsidian. Dieses speichert (Soweit ich weiss) auch alles als reine Textdateien und bietet Mehr-Weg-Synchronization.

Ich bleibe für den Moment bei vscode-journal. Für eine ausführliche Reflexion über Entwicklertagebücher kann ich diesen Stackoverflow-Blogpost empfehlen.

Webprojekt: Freiraum – Nächste Kalendertermine anzeigen

Screenshot von Freiraum: Zeigt die nächsten Termine eines Kalenders an

Um die spontane Nutzung der Gemeinschaftsräume unserer Siedlung zu erleichtern, haben wir in der IT-Gruppe ein minimalistisches Tool entwickelt: Freiraum.

Es zeigt den aktuellen Status (Besetzt/Demnächst besetzt/Frei) eines Raumes an, indem es den öffentlichen iCal-Feed des privaten Reservationssystemes ausliest und die nächsten Termine anzeigt.

Den Quellcode gibt es auf GitHub: github.com/oberfeld/freiraum

Aus Datensparsamkeit ist absichtlich kein Link zum effektiven Reservationssystem oder zu einzelnen Räumen vorhanden.

MIT-lizenziert. Simples PHP 8. Keine Authentifizierung, keine Datenbank, keine Benutzerverwaltung, kein Errorhandling. Erster Versuch mit Tailwind CSS.

Existenz API: Erweitertes Archiv für BAFU Hydrologie- und MeteoSchweiz SwissMetNet-Daten

Den folgenden Text habe ich am 5. August 2023 an die API-Newsletter-Liste verschickt. Trag dich in den Newsletter ein um auf dem Laufenden zu bleiben.

Graph der Aare-Temperatur in Bern über die letzten 20 Jahre

Wir nutzen die Sommerpause um unser Datenarchiv zu erweitern: In der Langzeit-Datenbank der Existenz API sind jetzt tatsächlich auch ziemlich lange Datenreihen vorhanden. Z.B. Aare-Temperatur-Messwerte in Bern der letzten 20 Jahre.

Konkret haben wir:

Sie sind so vollständig wie möglich in einer InfluxDB abgelegt, die Zugangsdaten und Beispielqueries sind auf der api.existenz.ch#influx zu finden.

Leider leider gibt es nach wie vor bei Influx keinen bequemen Read-Only-Zugang zum wirklich coolen Datenexplorer. Ich würde diesen noch so gerne öffentlich machen. Deshalb ist das einzige was ich euch bieten kann der Screenshot oben sowie Instruktionen, mit welchen Flux-Queries man die Daten aus Grafana oder via API abfragen kann. Wenn ihr Unterstützung braucht, kontaktiert mich einfach.

Die Metadaten, inbesondere zum Aufschlüsseln der Location-Codes, sind dafür einer wunderbar öffentlichen Datasette zu finden: api-datasette.konzept.space.