Umgang mit HEAD-Anfragen in Astro.js für UptimeRobot und Co.

Beim Einsatz von Monitoring-Diensten wie UptimeRobot, die HEAD-Anfragen nutzen, um die Verfügbarkeit einer Website zu prüfen, kann es in Astro im Produktionsmodus zu Problemen kommen. Diese Dienste senden oft keinen Origin-Header, was zu einer 403-Antwort führt. HEAD-Anfragen ohne Origin-Header werden von Astro.js im Produktionsmodus abgelehnt, was Monitoring-Dienste wie UptimeRobot dazu veranlasst die Website als down anzusehen. Um das zu beheben kann in der Astro-Konfiguration die Sicherheitsprüfung für den Origin-Header deaktiviert werden.

astro.config.mjs

export default defineConfig({
    security: {
        checkOrigin: false, // for head requests -> uptimerobot
    },
});

Durch das Setzen von checkOrigin: false in der Astro-Konfiguration wird sichergestellt, dass Dienste wie UptimeRobot HEAD-Anfragen erfolgreich durchführen können, ohne eine 403-Antwort zu erhalten.

Hinweis: Diese Einstellung sollte mit Vorsicht verwendet werden, da sie Sicherheitsprüfungen beeinflusst.

Brightblack is the old gray - gültige Farben für den Nano-Editor

Wer eine neuere Version des Nano-Editors (z. B. ab Version 8.2) verwendet, hat die Möglichkeit, eine erweiterte Farbpalette in der Konfiguration zu nutzen. So lässt sich beispielsweise die Zeilennummerierung auf der rechten Seite ganz einfach in Grau einfärben, indem der Farbwert gray verwendet wird.

Ältere Nano-Versionen, wie sie etwa in den Distributionen Debian, Ubuntu oder Mint enthalten sind, unterstützen diesen Farbwert jedoch nicht und führen zu einer Fehlermeldung. In solchen Fällen kann der Farbwert brightblack als Alternative genutzt werden. Da auch die neueren Nano-Versionen brightblack verstehen, lässt sich dieser Wert universell einsetzen, obwohl „gray“ die verständlichere Bezeichnung ist. Die Darstellung der Farben hängt jedoch vom verwendeten Terminal-Emulator ab.

Gültige Farben in allen Nano-Versionen:

  • white
  • black
  • red
  • blue
  • green
  • yellow
  • magenta
  • cyan
  • brightwhite
  • brightblack
  • brightred
  • brightblue
  • brightgreen
  • brightyellow
  • brightmagenta
  • brightcyan

.nacnorc (für alte Versionen)

set autoindent
set tabsize 4
set tabstospaces
set linenumbers
set constantshow
set numbercolor brightblack
set functioncolor blue

.nacnorc (für neue Versionen)

set autoindent
set tabsize 4
set tabstospaces
set linenumbers
set constantshow
set numbercolor gray
set functioncolor blue

Onshape - 3D-Modelle im Browser erstellen

Onshape ist eine cloudbasierte CAD-Plattform, die von Designern zur Erstellung und Verwaltung von 3D-Modellen genutzt werden kann. Im Gegensatz zu traditionellen CAD-Programmen läuft Onshape vollständig im Webbrowser, was den Zugriff auf Projekte von jedem internetfähigen Gerät ermöglicht. Die Bedienung ist intuitiv und durchdacht. Durch die Parametrische Arbeitsweise können Modelle einfach nachträglich angepasst werden. Onshape bietet eine integrierte Versionsverwaltung.

Diese Plattform bietet Zusammenarbeit in Echtzeit, bei der mehrere Nutzer gleichzeitig an einem Modell arbeiten können.

Onshape bietet eine kostenlose Version, erlaubt in dieser aber nur das Anlegen von öffentlichen Dokumenten für die nicht kommerzielle Nutzung.

Für kommerzielle private Projekte muss ein Abo abgeschlossen werden, das mindestens 1500 € pro Jahr kostet.

Durch seine einsteigerfreundliche Bedienung eignet sich Oneshape hervorragend für Hobbyisten, die schnell brauchbare Ergebnisse erzielen wollen, da hier die Kosten nicht ins Gewicht fallen.

Leider gibt es keine Open-Source-Alternative zu Onshape. FreeCad hinkt, was die Bedingung angeht, leider immer noch Generationen hinter kommerziellen Produkten zurück.

Wireguird: Eine GTK-basierte GUI für WireGuard unter Linux

Wireguird ist ein grafischer Client für Linux, der auf GTK basiert und die Verwaltung von WireGuard-VPNs erleichtert. Entwickelt von UnnoTed, bietet Wireguird eine benutzerfreundliche Oberfläche, die der offiziellen Windows-GUI von WireGuard ähnelt.

Wireguird bietet vorgefertigte .deb-Pakete für verschiedene Ubuntu-Versionen.

Wireguird ist eine praktische Lösung für Linux-Nutzer, die eine grafische Oberfläche zur Verwaltung ihrer WireGuard-VPNs bevorzugen. Mit Funktionen wie der System-Tray-Integration und der einfachen Tunnelverwaltung bietet es eine benutzerfreundliche Alternative zur Kommandozeilensteuerung.

Werbefreies Pinterest

Auf Pinterest wird Nutzern neben den Inhalten auch viel Werbung in Form von gesponserten Pins angezeigt, die oft wie normale Beiträge wirken. Die Plattform nutzt personalisierte Werbung, basierend auf den Interessen und Suchverläufen der Nutzer. Werbung auf Pinterest kann oft nicht durch Adblocker blockiert werden, da sie nahtlos in die normalen Inhalte integriert sind, als auch vom selben Server ausgeliefert werden.

Mit Tampermonkey und dem Script Pinterest - Remove Picked For You and Sponsored Pins ist es dennoch möglich, Werbung zuverlässig zu blocken. Tampermonkey ist für alle gängigen Browser als Erweiterung erhältlich und ermöglicht es Webseiten mit eigenen Scripten anzupassen. Diese Scripte können auf alle Daten der Webseite zugreifen und sollten deswegen nicht unbedacht installiert werden.
Dafür muss erst Tampermonkey und dann dieses Userscript aus dem Tampermonkey-Store installiert werden.

Nach der Installation sind alle Sponsored-Pins und Werbeblöcke verschwunden und Pinterest damit Werbefrei.

LazyDocker - Praktische Docker-Container-Verwaltung für das CLI

LazyDocker stellt Docker-Informationen in einer übersichtlichen und intuitiven Ansicht dar und ermöglicht das verwalten von Containern. Besonders die visuelle Aufbereitung bietet Vorteile gegenüber den standardmäßigen Docker-Tools wie docker ps. Die Software ist Open Source und kostenlos für Windows, Linux und macOS verfügbar.

Die Benutzeroberfläche von LazyDocker ist zweigeteilt: Auf der linken Seite sind der Projektname, Container, vorhandene Images, Volumen und Netzwerke des Systems übersichtlich aufgelistet. Die rechte Seite passt sich der Auswahl an und zeigt Protokolle, Statistiken, Environment-Variablen oder Konfigurationen an. LazyDocker kann sowohl über Tastatur als auch über Maus bedient werden und bietet damit eine flexible Nutzung.

Mit einer Vielzahl nützlicher Werkzeuge unterstützt LazyDocker das Überwachen und Verwalten von Containern. Weitere Informationen und den Download finden man unter: https://github.com/jesseduffield/lazydocker

Self-Host Google-Fonts

Aus Datenschutzgründen kann es problematisch sein, Fonts von Google-Servern einzubinden. Google-Fonts erlaubt es, alle benötigten Font-Dateien als ZIP herunterzuladen. Allerdings generiert es nicht die dafür notwendigen CSS-Dateien. Natürlich ist es möglich, diese manuell zu erstellen, einfacher geht es aber mit dem Dienst: gwfh.mranftl.com. Hier kann man ebenfalls alle Google-Fonts heruntergeladen, allerdings kann man sich hier mit wenigen Klicks ein passendes CSS generieren lassen.

Die Benamung der Dateien unterscheidet sich von der der bei Google, deswegen ist es einfacher die von mranftl bereitgestellte ZIP-Datei zu verwenden.

Vor der Nutzung von heruntergeladenen Fonts gilt es selbstverständlich, zu überprüfen, ob die Lizenz die gewünschte Nutzung ermöglicht.

Kostenfreie Datenbank Verwaltungs / Entwicklungs-Tools in 2024

DbGate und DBeaver sind zwei recht neue Multi-Datanbank-Clients. DbGate ist dabei das jüngere Tool, es ist komplett kostenlos und Open Source. DBeaver hingegen ist auch in einer kommerziellen PRO-Version erhältlich. Im Gegensatz zu Tools wie HeidiSQL (MySQL/MariaSQL) unterstützt, DB Browser (nur SQLite) oder Studio 3T (nur MongoDB) erlauben es beide Tools, auf unterschiedliche Datenbank-Systeme zuzugreifen. Dabei liegt der Schwerpunkt klar auf rationalen Datenbanken. DBeaver Community unterstützt unter anderem MySQL, MS SQL Server, PostgrSQL, SQLite und viele mehr. MongoDB Support sowie die Unterstützung anderer nicht rationalen Datenbanken sind hier nur in der Pro-Version verfügbar. Beide Tools eignen sich gut zum pfelgen von DB-Systemen. Daten können Exportiert, sowie teilweise
auch Importiert oder Migriert werden.

DbGate

DbGate ist eine Electron Application und für alle wichtigen Betriebssysteme verfügbar. Die Installation unter Linux erfolgt als Appimage. Es gibt unterschiedliche Designs, so kann auch auf einen Dark-Mode umgeschaltet werden. Beim Design orientiert sich DbGate grob an VS-Code. DbGate ermöglicht neben dem Ex-/Import von Daten auch die direkte Migration auf eine andere Datenbank.

Features

  • Datenbank Unterstützung
    • MS SQL Server, MySQL, MariaDN, OracleDB, PostgrerSQL, CockroachDB, Amazon Redshift, Redis, SQLite MongoDB
  • Export/Import
    • CSV, Excel, SQL, JSON, XML
  • Views
    • SQL-Editor, Data-Editor, Query-Builder, Schema-Editor, ER-Diagarams, Chart-View
  • Plugin-Support

DBeaver

DBeaver ist ebenfals für Windows, Mac OS und Linux verfügbar. Es ist in Java mit Hilfe des Eclipse-Frameworks implementiert. DBeaver erweckt den Anschein, dass neue Feaures nur noch in die kostenpflichtige Version wandern oder nur noch stark eingeschränkt in der Community Edition verfügbar sind. DBeaver ermöglicht aber den Zugriff auf eine erstaunliche Menge an Datenbanken. Generell verfügt er über mehr Funktionen als DbGate, was wohl auch dem geschuldet ist, dass er schon viel länger am Markt ist. Die UI unterstützt Theming ist aber leider unter Linux (Mint) initial im Dark-Mode nur sehr schlecht lesbar gewesen. Dies konnte aber durch die manuelle Wahl eines Themes behoben werden.

Features

  • Datenbank Unterstützung
    • MySQL, SQL Server, PostgreSQL und mehr
  • Export/Import
    • CSV, Excel, SQL, JSON, XML
  • Views -SQL-Editor, Data-Editor, Query-Builder, Schema-Editor, Basic Charts-View

Einheitliche Farben für Terminal und Visual Studio Code

Mit dem Plug-in Generate Windows Terminal Scheme kann ein Farbschema für das Windows Terminal erstellt werden. Dadurch können die Farben zwische VS-Code und dem Windows Terminal angeglichen werden. Auch können über die generierte JSON-Datei Farbwerte gesammelt, eingesehen werden, um z.B. manuell ein eigenes passendes Gnome-Terminal-Farbschema zu erstellen.

Über das Plug-in ist nur ein Export der Werte möglich; Der umgekehrte Weg wird nicht unterstützt.

Prisma und SQLite

Prisma ist ein ORM für Node.js, es unterstützt die Datenbanken PostgreSQL, MySQL, SQLite, MongoDB, Microsoft SQL Server sowie einige Cloud/Edge-Hoster. Automatische Migrationen und die übersichtliche Definition der Datenbankstruktur in einem prisma.schema sind dabei die herausragenden Features. Dabei werden auch Typen/Interfaces der Daten für TypeScript bereitgestellt. Die Unterstützung der unterschiedlichen Prisma-Features ist dabei von Datenbank zu Datenbank unterschiedlich und nicht ausreichend dokumentiert. Dadurch wird die Entwicklung mit Prisma zum Glücksspiel, wenn man erst nach Langer Recherche in Github Issues herausfindet, dass Feature X für die Datenbank Y nicht implementiert wurde. Dabei handelt es sich nicht etwa nur um exotische Funktionen, nein auch viele elementare Funktionen sind nicht verfügbar. Ein Wechsel der verwendeten Datenbanktechnologie ist damit in der Praxis quasi ausgeschlossen. Wer denkt, er kann für die lokale Entwicklung auf eine SQLite und für das Produktiv-System auf eine MySQL-Datenbank setzen, muss mit massiven Problemen rechnen.

Folgende Probleme existieren bei der Entwicklung von Anwendungen mit SQLite:

  • createMany wird nicht unterstützt, Einträge können nur einzeln erstellt werden.
  • Defektes Date Mapping. Das Sortieren nach Datum ist nicht über die ORM Funktionalität möglich, da das Datumsformat nicht korrekt implementiert ist. Dieses Problem besteht schon seit 2021 und ist nicht zu entschuldigen.
  • Kein Mapping von ENUMs. ENUMs werden nicht nativ von SQLite unterstützt.
  • Kein JSON-Support, obwohl viele Funktionen unterstützt sind.

Bei der Verwendung von SQLite würde ich aufgrund dieser Probleme dazu raten, ein anderes ORM-System zu verwenden.