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.

pretty-quick - Automatisches prettier auf geänderte Dateien mittels Commit-hooks

Mit pretty-quick ist es ohne Konfiguration möglich, seine geänderten Dateien via git-hook vor dem pushen mit prettier zu formatieren. Damit ist es ideal für kleine Projekte, die ohne grosse eslint, prettier und husky-Konfiguration auskommen wollen. Intern nutzt pretty-quick husky und prettier. Falls .prettierrc und .prettierignore vorhanden sind, so werden diese beachtet.

pretty-quick kann über das folgende Kommando installiert werden:

npm install --save-dev prettier pretty-quick

Neofetch - System Information in hübsch

Neofetch ist ein Kommandozeilen-Tool, das auf Linux, Unix-Systemen (und neu auch Windows) verwendet werden kann, um nüzliche System-Informationen anzuzeigen. Es präsentiert eine ASCII-Grafik des Betriebssystemlogos und zeigt gleichzeitig Daten wie Hostnamen, Kernel-Version, CPU, RAM und Grafikkarte an. Neofetch ermöglicht eine schnelle und Möglichkeit, Systeminformationen in der Konsole anzuzeigen und schnell einen Überblick über das System zu erhalten.

NTop - Htop für Windows

Wenn es um die Überwachung und Analyse von Systemressourcen unter Linux geht, ist Htop eine beliebtes Tool. Diese leistungsstarke Anwendung ermöglicht es Benutzern, in Echtzeit eine detaillierte Übersicht über laufende Prozesse, CPU-Auslastung, Speicherverbrauch und vieles mehr zu erhalten. Wer unter Windows arbeiten und eine ähnliche Funktionalität will, kann NTop einsetzen. NTop ist OpenSource und kann unter github.com/gsass1/NTop herunterladen oder direkt über winget installieren:

winget install -e --id gsass1.NTop

Die wichtigsten Htop Kommandos sind auch in NTop implementiert. Leider ist das Projekt in den letzten Jahren nicht weiterentwickelt worden. Wer noch immer auf Cygwin setzt, kann auch einfach einen Alias in seiner .bashrc anlegen, sodass NTop auch über den Aufruf von htop gestartet werden kann.

Ventoy - Multi-Iso-Boot-Sticks

Ventoy ist eine Open-Source-Software, die es ermöglicht, einen bootfähigen USB-Stick mit mehreren ISO-Dateien von Betriebssystemen oder anderen bootbaren Anwendungen zu erstellen. Im Gegensatz zu herkömmlichen Methoden, bei denen der USB-Stick für jede ISO-Datei neu formatiert werden muss, ermöglicht Ventoy das Hinzufügen und Entfernen von ISO-Dateien über eine seperate Partition auf dem USB-Sticks.

Wenn der Ventoy-USB-Stick an einen Computer angeschlossen wird, erkennt das System automatisch die verfügbaren ISO-Dateien und zeigt sie im Boot-Menü an. Dies ermöglicht es dem Benutzer, das gewünschte Betriebssystem oder die gewünschte Anwendung auszuwählen und direkt von USB zu booten. Dies ist besonders nützlich für Systemadministratoren oder jeden, der regelmäßig verschiedene Betriebssysteme oder Diagnose-Tools verwendet. Ventoy unterstützt eine breite Palette von ISO-Dateien und Betriebssystemen, einschließlich Windows, Linux und MacOS. Es ist eine praktische Lösung, um einen einzigen USB-Stick für verschiedene Images zu verwenden, ohne ständig den Sticks zu formatieren zu müssen.

Micro, der größere Nano

Linux-Nutzer, die auf der Konsole Konfigurationen oder Skripte anpassen, ohne der VI/VIM/EMACS-Fraktion anzugehören, benutzen oft Nano als Editor. Die Möglichkeit, den Editor ohne vorheriges Studium des Handbuchs bedienen zu können und ohne Mühe wieder zu schließen, macht Nano zu einem ansprechenden Tool. Allerdings besitzt Nano im Gegensatz zu den etablierten Editoren weniger Funktionalität. Darüber hinaus besteht Verbesserungsbedarf in Bezug auf die Maussteuerung, die bedauerlicherweise das Einfügen aus der Zwischenablage deaktiviert.

Als ein "größerer" Editor bietet Micro mehr Funktionalität und eignet sich somit auch für umfangreichere Schreib- und Codeaufgaben. Er zeichnet sich durch seine Einsteigerfreundlichkeit aus und ist dennoch wesentlich mächtiger. Für jene, die Nano schätzen, jedoch nach einer mehr Funktionalität brauchen, erweist sich Micro als vielversprechende Alternative.

Die Anwendung verfügt über eine umfangreiche Funktionalität, darunter eine breite Palette an Syntaxhervorhebungen für über 75 Programmiersprachen, die Möglichkeit zur Verwendung von Mehrfachcursoren für simultane Bearbeitungen und ein flexibles Plugin-System zur Erweiterung der Funktionspalette. Micro legt besonderen Wert auf Anpassbarkeit und ermöglicht Nutzern die Konfiguration ihrer Einstellungen über eine leicht verständliche JSON-Syntax. Für fortgeschrittene Benutzer bietet der Editor zusätzlich die Option, den Editor über Lua-Skripten zu erweitern. Des Weiteren stellt Micro eine große Auswahl an Themes zur Verfügung, um die visuelle Darstellung von Texten zu optimieren. Die Integration von Mausunterstützung erlaubt es Nutzern, Textabschnitte auszuwählen, Mausklicks für Navigation zu verwenden und ist gelungener als in Nano. Ein bemerkenswertes Merkmal von Micro ist die Fähigkeit, intern einen Terminal-Emulator auszuführen. Dies ermöglicht die parallele Anzeige von Code und einer interaktiven Shell in einer geteilten Ansicht.

Zusammenfassend zeichnet sich Micro als fortschrittlicher Texteditor durch seine Benutzerfreundlichkeit, umfangreiche Anpassungsmöglichkeiten aus, das macht in zu einer guten Wahl für die professionelle Textbearbeitung. Micro kann auf Linux, Windows und MacOS eingesetzt werden.

Darstellung von VirtualBox unter Linux Mint Dark Mode beheben

Leider kommt es bei Virtual Box seit mehreren Versionen zu einem unschönen Bug/Darstellungsfehler, wenn man unter Linux Mint ein dunkles Theme verwendet. Text wird grau auf grau dargestellt und ist schwer zu lesen. Durch das Verwenden des Styles "Fusion" kann das Problem behoben werden. Zwar ist dadurch die Menübar nicht mehr dunkel, aber alle Texte sind in schwarzer Schrift.

Bei der Verknüpfung über die VirtualBox gestartet wird, kann -style Fusion (siehe erstes Bild) als Parameter ergänzt werden. Nach einem Neustart von Virtual Box über diese Verknüpfung wird der Style angewendet. Weitere

Visual Studio Code - Neue Settings für Cygwin

Leider wurden mit dem letzten VS-Code-Update die Einstellungen, die notwendig sind, um Cygwin im integrierten Terminal nutzen zu können, geändert. Nachfolgend die neuen Einstellungen, die zum Erfolg geführt haben. Es kann notwendig sein, VS Code neu zu starten, um die Einstellungen zu übernehmen. Es wird hier davon ausgegangen das chere welches auch xhere bereitstellt in Cygwin, installiert ist. Dadurch wird gewährleistet, dass das Terminal immer im aktuellen Projektordner von VS-Code geöffnet wird. Alternativ können die Argumente auch weggelassen werden, was aber zu einer deutlichen Verschlechterung der Usability führt.

settings.json

"terminal.integrated.profiles.windows": {
        "Cygwin": {
            "path": "C:\\cygwin64\\bin\\bash.exe",
            "args": [
                "/bin/xhere", "/bin/bash"
            ]
        }
    },
"terminal.integrated.defaultProfile.windows": "Cygwin"