Die administrative Proxmox-Website lässt sich per Letsecrypt-Zertifikat kostenlos per https absichern. Dafür hat Proxmox einen eingebauten ACME-Client, der Zertifikate bei Letsencrypt automatisch abruft bzw. erneuert. Die Validierung des DNS-Namens passiert dabei am einfachsten über eine Website, die von Proxmox automatisch angelegt wird und d...
Alle Gruppen eines Windows-User auf dem Client auflisten
Benutzergruppen definieren, auf welche Ressourcen ein Windows-Benutzerkonto Zugriff hat. Die Gruppenmitgliedschaften werden beim Anmelden eines Benutzers aufgelöst und im Security-Token des Startprozesses gespeichert. Man kann sich die Gruppenmitgliedschaften eines Benutzers z.B. mit dem Programm Process-Explorer aus den Sysinternals-Tools von Micr...
Reveal.js: Schluss mit PowerPoint – Präsentationen als Code
Klassische Präsentationswerkzeuge wie PowerPoint oder Keynote stoßen in technischen Schulungen schnell an ihre Grenzen. Code-Snippets verlieren ihre Formatierung, Versionierung über Git ist mit Binärdateien ein Albtraum und das Layout zerschießt sich gerne auf fremden Rechnern. Die Lösung: Reveal.js, das quelloffene HTML-Präsentations-Framework.
Warum Reveal.js für Trainer & Entwickler unschlagbar ist
Reveal.js transformiert HTML- und Markdown-Dateien in interaktive, gestochen scharfe Präsentationen, die in jedem modernen Webbrowser laufen – plattformunabhängig und ohne proprietäre Software.
- Präsentationen im Git-Repository: Folien liegen als reine Textdateien (HTML oder Markdown) vor. Änderungen lassen sich mit
git diffnachvollziehen, branchweise pflegen und im Team kollaborativ weiterentwickeln. - Echtes Syntax-Highlighting: Code-Blöcke werden nicht als statische Screenshots eingebunden, sondern mit echten Themes, Zeilennummern und schrittweisem Zeilen-Highlighting (
highlight-lines) gerendert. - 2D-Navigation (Grid-Layout): Neben der horizontalen Hauptnavigation lassen sich vertikale Unterkapitel anlegen – ideal, um bei Fragen tiefer in Detailthemen einzutauchen, ohne den roten Faden zu verlieren.
- Integrierte Speaker-View: Ein Druck auf die Taste S öffnet eine vollwertige Referentenansicht mit aktuellen Folien, Vorschau auf die nächste Folie, Notizen und Präsentations-Timer.
- PDF-Export: Handouts lassen sich über die integrierte Druckfunktion direkt als saubere PDF-Dokumente exportieren.
Minimalbeispiel: Präsentieren mit reinem Markdown
Reveal.js erlaubt es, komplette Foliensätze ausschließlich in Markdown zu verfassen. Horizontale Folien werden mit --- und vertikale Detailfolien mit -- getrennt:
HedgeDoc: Kollaborative Markdown-Notizen für Trainings und Workshops
Echtzeit-Zusammenarbeit an Dokumenten muss nicht zwangsläufig über proprietäre Cloud-Dienste laufen. Wer Wert auf Datenschutz, Open Source und Markdown legt, findet in HedgeDoc (ehemals CodiMD) eine leistungsstarke Lösung.
Das Problem in Schulungen & Workshops
Wer technische Schulungen, Workshops oder Meetups leitet, kennt die typischen Reibungspunkte: Wo tauscht man während der Session schnell Code-Snippets, Links und Zwischenergebnisse aus? Proprietäre Cloud-Tools scheitern hier oft an Registrierungshürden, Firmen-Firewalls oder Datenschutzbedenken.
HedgeDoc schließt diese Lücke als schlanke, quelloffene Plattform für kollaborative Notizen in Echtzeit – komplett in Eigenregie betreibbar.
Die wichtigsten Features im Überblick
- Echtzeit-Kollaboration: Mehrere Personen arbeiten simultan am selben Dokument – inklusive synchroner Live-Vorschau.
- Zero-Onboarding für Teilnehmende: Über flexible Berechtigungsstufen (Frei editierbar, Nur Lesen oder Eingeloggte Nutzer) können Teilnehmende per Link sofort mitarbeiten – ganz ohne Account-Erstellung oder Software-Installation.
- Entwickler- & Admin-freundliche Werkzeuge:
- Syntax-Highlighting: Saubere Darstellung für praktisch jede Programmier- und Skriptsprache.
- Diagrams-as-Code: Architektur- und Ablaufdiagramme lassen sich via Mermaid oder PlantUML direkt im Dokument rendern.
- Formeln & Checklisten: Unterstützung für mathematische Ausdrücke (MathJax) und interaktive Aufgabenlisten.
- Vom Skript zur Präsentation: Mit einfachen Trennzeichen (
---) wandelt HedgeDoc das Dokument in interaktive Reveal.js-Slides um. Kursunterlagen und Präsentationsfolien stammen so aus einer einzigen Quelle. - Enterprise-Authentifizierung: Nahtlose Integration mit OAuth2, LDAP, SAML, GitHub oder über die lokale Benutzerverwaltung.
Self-Hosting: Volle Datenhoheit via Docker
Als Open-Source-Projekt (AGPLv3) lässt sich HedgeDoc schnell auf der eigenen Infrastruktur bereitstellen.
Hier ein produktionsnahes docker-compose.yml-Beispiel mit Healthcheck und persistenten Uploads:
Vector Databases kompakt: Warum deine KI-Anwendung mehr braucht als ein normales DBMS
Klassische Datenbanken sind darauf optimiert, exakte Antworten zu liefern: „Finde User-ID 42“ oder „alle Einträge mit Status = aktiv“. KI-Anwendungen stellen jedoch eine andere Art von Frage: „Welche Inhalte sind inhaltlich ähnlich zu dieser Anfrage?“ Genau hier beginnt das Problem – und gleichzeitig die Stärke von Vector Databases.
Das Grundproblem: Warum klassische Suche bei KI versagt
Eine typische SQL-Suche wie LIKE '%Anfrage%' arbeitet rein auf Textebene. Sie erkennt keine Bedeutung, keine Synonyme und keinen Kontext. Eine Suche nach „Cloud Security“ wird nicht automatisch Inhalte zu „Zero Trust“ oder „IAM Hardening“ finden – obwohl sie thematisch eng verwandt sind.
KI-Systeme lösen dieses Problem über sogenannte Embeddings. Dabei wird ein Inhalt (Text, Bild oder Audio) in einen mathematischen Vektor umgewandelt – also eine Liste aus Zahlen, zum Beispiel 1536 Dimensionen.
Diese Zahlen sind keine Zufallswerte, sondern repräsentieren semantische Eigenschaften. Inhalte mit ähnlicher Bedeutung liegen im Vektorraum näher beieinander als völlig unterschiedliche Inhalte.
Das Problem: Um Ähnlichkeit zu bestimmen, müssen diese Vektoren miteinander verglichen werden. Bei großen Datenmengen (Millionen oder mehr) ist das mit klassischen Datenbanken extrem ineffizient.
Relational vs. Document Store: Wann JSON in SQL-Datenbanken Sinn ergibt (und wann nicht)
In Zeiten von flexiblen APIs und modernen Web-Frameworks stehen Entwickler und Datenbank-Administratoren häufig vor der Grundsatzfrage: Nutzen wir für dynamische Datenstrukturen eine dedizierte Dokumentendatenbank (NoSQL) oder bleiben wir beim bewährten relationalen Schema?
Moderne relationale Datenbanksysteme bieten mit Datentypen wie JSON bzw. JSONB (z. B. PostgreSQL JSONB) längst eine Brücke zwischen beiden Welten. Doch die Verfügbarkeit dieser Features verleitet oft dazu, strukturierte Daten unüberlegt in JSON-Spalten zu "verklappen".
Wann ist der Einsatz von JSON in SQL-Datenbanken eine echte Bereicherung für die Architektur – und wann wird er zum Wartungs- und Performance-Albtraum?
Die Vorteile: Warum JSON in SQL ein mächtiges Werkzeug ist
Relationale Datenbanken punkten durch ACID-Garantien, Dateneinteilung über Schemata und mächtige Join-Operationen. Das Ergänzen von JSON-Spalten bringt entscheidende Vorteile in spezifischen Szenarien:
Wann ein echter Document Store Sinn ergibt – und wann nicht
Relationale Datenbanken mit JSON- oder JSONB-Spalten sind für variable Zusatzattribute oft eine gute Lösung. Wenn jedoch der Großteil der Daten dynamisch ist, Dokumente tief verschachtelt sind und der Zugriff meist auf ganze Einheiten erfolgt, reicht dieses hybride Modell oft nicht mehr aus.
In solchen Fällen lohnt sich der Blick auf einen echten Document Store wie MongoDB, Couchbase oder Amazon DocumentDB.
Document-First als Prinzip
Document Stores organisieren Daten nicht in flachen Tabellen, sondern in semi-strukturierten Dokumenten, meist JSON oder BSON. Der Ansatz ist einfach: Was zusammen gelesen wird, wird oft auch zusammen gespeichert.
Das macht das Modell für viele Anwendungen sehr attraktiv. Ein Dokument entspricht häufig direkt dem Objekt im Anwendungscode, was die Entwicklung vereinfacht und aufwendige Joins oder O/R-Mapper reduziert. Gleichzeitig lassen sich neue Felder oft ohne langwierige Schema-Migrationen im Live-Betrieb ergänzen.
Microsoft Entra Connect vs. Cloud Sync
Der direkte Vergleich & Entscheidungshilfe
Wer sein lokales Active Directory mit Microsoft Entra ID (ehemals Azure AD) verbindet, steht vor der Entscheidung zwischen zwei Tools: der klassischen Server-Anwendung Microsoft Entra Connect Sync und dem modernen, leichtgewichtigen Microsoft Entra Connect Cloud Sync.
Microsoft empfiehlt für Neuinstallationen ausdrücklich, Cloud Sync zu evaluieren. Das Ziel von Microsoft ist klar definiert: Cloud Sync soll die klassische On-Premises-Variante langfristig ablösen, sobald vollständige Funktionsparität erreicht ist. Doch wie sieht der aktuelle Stand aus und welches Tool ist für Ihr Szenario das richtige?
Das Architektur-Paradigma im Vergleich
Der grundlegende Unterschied liegt in der Verteilung der Rechenlast und der Steuerungslogik:
Entra Connect Sync (Klassisch):
Veraltete Statistiken: Warum der Query Optimizer falsche Entscheidungen trifft (und wie Sie es beheben)
Das Navigationssystem Ihrer Datenbank
Stellen Sie sich vor, Sie nutzen ein Navigationssystem, dessen Kartenmaterial seit fünf Jahren nicht aktualisiert wurde. Das Navi führt Sie über verstopfte Landstraßen, weil es die neue Autobahn schlicht nicht kennt.
Genau das passiert im Herzen von PostgreSQL: Der Query Optimizer entscheidet bei jeder eingehenden SQL-Abfrage anhand von internen Statistiken (gespeichert in pg_statistic), welcher Ausführungsplan (Execution Plan) der schnellste ist. Sind diese Daten veraltet – etwa nach massiven Datenimporten, Löschaktionen oder Batch-Jobs –, schätzt der Optimizer die Anzahl der zu erwartenden Zeilen (Cardinality Estimation) völlig falsch ein.
Die Konsequenz: Die Datenbank wählt langsame Sequential Scans statt gezielter Index Scans oder entscheidet sich für falsche Join-Operatoren.
Live-Szenario in AdventureWorks
Nehmen wir an, wir arbeiten in der Tabelle sales.salesorderdetail. Wir simulieren einen massiven Datenimport (z. B. durch ein nächtliches ETL-Skript) und deaktivieren für die Demonstration das automatische Update der Statistiken.
Schritt 1: Ausgangslage prüfen
Wir suchen nach Auftragspositionen mit einer überdurchschnittlich hohen Bestellmenge (orderqty > 50).
Monitor-Umschaltung per Script - DDC/CI statt Hardware-KVM
Warum teure Hardware kaufen, wenn das Protokoll gratis ist?
Warum sollte man 100 € für einen DisplayPort-KVM ausgeben, der das Bildsignal oft verschlechtert, wenn der Monitor selbst mehrere Eingänge hat? Die Lösung heißt DDC/CI (Display Data Channel). Damit lässt sich der Monitor direkt vom Betriebssystem aus steuern – ganz ohne Knöpfe am Gehäuse.
Schritt 1: Identifikation per Seriennummer
In einem Multi-Monitor-Setup ist Präzision Pflicht. Wir nutzen die Seriennummer (z. B. deines Dell U2717D), damit nur der korrekte Monitor umschaltet.
Windows: ControlMyMonitor (NirSoft - ControlMyMonitor)
Mit diesem Tool lesen wir die VCP-Codes aus. Zuerst müssen wir unseren Monitor auswählen (1.) und anschließend den Code für dieEingangsquelle (2.) finden.
Der Code für die Eingangsquelle ist fast immer die 60.
Anschließend können wir die möglichen Werte sehen, die zu den Eingangsquellen gehören:;
Programme auf einem Proxmox-Gast vom Host aus starten
Mit #Proxmox gibt es, ähnlich wie bei Hyper-V mit WinRm die Möglichkeit, vom Host aus direkt Befehle in virtuellen Maschinen auszuführen. Voraussetzung sind die VirtIO-Erweiterungen, die unter Windows erst installiert werden müssen, sowie der QEMU-Guest-Agent. Die VirtIO-Erweiterungen werden von RedHat gepflegt und können hier heruntergeladen ...
Der „Key-Trick“: Hardware-KVM-Switches per Tastatur steuern
Das Ende der Schreibtisch-Gymnastik Jeder, der zwei PCs an einem Arbeitsplatz nutzt, kennt das Gerät: Der KVM-Switch (Keyboard, Video, Mouse). Meistens klebt er unter dem Schreibtisch oder versteckt sich hinter dem Monitor. Das Problem? Das manuelle Drücken der physischen Taste stört den Workflow. Was viele nicht wissen: Fast jeder moderne KVM-Swit...
Mit Powershell schneller Hashen
Powershell unterstützt mit dem Cmdlet Get-Filehash von Haus aus die Möglichkeit, Hashes über Dateien zu erzeugen. Ein Hash ist dabei eine komplexe Prüfsumme, die die Eindeutigkeit einer Datei garantiert - die Prüfsumme kann die Datei also identifizieren. Ein kryptographischer Hash-Algorithmus wie SHA-1 oder SHA-2 (gesprochen Schah oder mit den Einz...
Mit Powershells Group-Object doppelte Dateien löschen
Zum Finden und Löschen von doppelten Dateien gibt es jede Menge Tools, aber es geht auch von der Kommandozeile mit einem Powershell-Einzeiler. Dafür ist ein Cmdlet nützlich, dass ich normalerweise nur selten einsetze, dass hier aber seine Mächtigkeit ausspielt: Group-Object. Mit Group-Object kann man Objekte in ein Array zusammenfassen (also gruppi...
Mit Powershell Alternative NTFS-Datenströme lesen (und schreiben)
Alternative Datenströme sind eine erweiterte Funktion des NTFS-Dateisystems, die es erlaubt, beliebige Meta-Informationen über Dateien zusammen mit der Datei abzulegen. Windows verwendet z.B. einen Alternativen Datenstrom, um das MotW (Mark of the Web) zu speichern. Das MofW wird beim Download einer Datei automatisch gesetzt, damit Windows Sicherhe...
Geteilte und freigegebene Postfächer zum EMClient hinzufügen
EMClient ist ein Email-Client, der alle wesentlichen Funktionen von MS Outlook abdeckt, dabei aber deutlich flexibler konfigurierbar ist und ein zu MS Outlook sehr ähnliches Design hat, was die Migration von MS Outlook einfach macht. Im Gegensatz zu Outlook fügt EMClient geteilte Mailboxen allerdings nicht automatisch der Postfachansicht hinzu. Sta...
Text für reguläre Ausdrücke vorbereiten - Spezialzeichen ersetzen
Reguläre Ausdrücke sind in allen Programmier-Sprachen ein mächtiges Werkzeug, um Texte zu analysieren und aufzubrechen. In Powershell steht einem hierfür unter anderem der Vergleichsoperator -match zur Verfügung. Reguläre Ausdrücke reichen dabei von sehr einfach bis sehr kompliziert. Das folgende Beispiel fällt z.B. in die erste Kategorie: 'C:...
Aus einer Liste von Datumswerten jeweils x Sekunden überspringen
Um aus einer Liste von Datumswerten (z.B. aus einer Logdatei) nur einen Wert pro Zeiteinheit (also z.B. pro Sekunde) auszugeben, erstellt man sich zuerst einen Wert, der die Sprungweite speichert. Da Powershell Zeitwerte in 10.000.000stel Sekunden - den sogenannten Ticks - speichert, muss die Sprungweite mit den Ticks pro Zeiteinheit multipli...
E-mails in Joomla werden von Google als nicht zulässige Tags erkannt
Wenn die Google Search Console auf Ihrer Joomla-Website ungültige AMP-Seiten erkennt, könnte das an der Mail-Cloaking Funktion von Joomla liegen, die seit Version 4.10 standardmäßig aktiviert ist. Mail-Cloaking verschleiert E-Mail-Adressen automatisch mit JavaScript-Code, indem die Email-Adresse verschlüsselt in ein Tag <joomla-hidden-mail> e...
Symbole in der Windows-Taskleiste funktionieren nicht
Seit einiger Zeit habe ich auf mehreren Windows 11-Rechnern ein ziemlich merkwürdiges Problem - einige Icons in der Taskleiste werden mit einem Standard-Icon statt mit dem zugehörigen Programm-Icon angezeigt. Das Problem scheint ein Bug in Windows 11 zu sein, und die Ursache ist ein korrupter Icon Cache. Grundsätzlich kann man das Problem relativ e...