<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>INSPIRANT BLOG</title>
<subtitle></subtitle>
<link href="http://blog.inspirant.de/feed.php" rel="self" />
<id>http://blog.inspirant.de/feed.php</id>
<updated>2026-02-25T20:10:45+01:00</updated>
<entry>
<title type="html">Mein erstes Vibe-Coding-Projekt und was ich daraus gelernt habe</title>
<content type="html">&lt;p&gt;&lt;img class=&quot;nb-align-right&quot; style=&quot;margin-right: 10px; box-shadow: 3px 3px 10px 1px rgba(0,0,0,0.75); margin-bottom: 20px;&quot; src=&quot;http://blog.inspirant.de/content/public/upload/software_0_o.jpg&quot; alt=&quot;software am Bildschirm eines Programmierers&quot; width=&quot;231&quot; height=&quot;154&quot; /&gt;Schon seit mehreren Jahren nutzen wir auf der Arbeit KI-Tools. Aber meist für kleine oder spezifische Aufgaben. Also eine spezielle Funktion erstellen lassen, ein kurzes Bash-Script oder auch zu Recherche-Zwecken. Meist war es aber frustrierend, denn die KI hat sich ständig Funktionen ausgedacht, die es gar nicht gab (Halluzinationen) und nicht selten wurden wir durch die KI auch auf die falsche Spur geschickt. Erkennbar war aber auch, dass die Qualität von Code besser wird, je mehr Code es davon im Internet gibt. Bei der Hilfe zu einem WebExtension Add-On für Thunderbird, hat die KI extrem viel Halluziniert und war kaum zu gebrauchen. Es hat eher Zeit gekostet. Wenn man aber C, C++, JAVA oder go Code generieren lässt, ist es deutlich besser.&lt;/p&gt;
&lt;p&gt;Dennoch ist es eine interessante und faszinierende Technologie. Aus passendem Anlass heraus, weil die Projekte klein und die Sprache &lt;em&gt;go&lt;/em&gt; sein sollte, habe ich soeben mein erstes kleines Software-Projekt vollkommen mit KI-Unterstützung erstellt. Ich habe dabei viel über die Arbeit mit der KI gelernt und auch einen noch tieferen Einblick in die Materie erhalten.&lt;/p&gt;
&lt;p&gt;Hier die Randbedingungen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ich nutze &lt;strong&gt;Visual Studio Code&lt;/strong&gt; mit dem &lt;strong&gt;Blackbox AI&lt;/strong&gt; Coding-Assistenten.&lt;/li&gt;
&lt;li&gt;Das Projekt wurde in &lt;em&gt;&lt;strong&gt;go&lt;/strong&gt;&lt;/em&gt; (oder auch golang) geschrieben.&lt;/li&gt;
&lt;li&gt;Es verwendet die &lt;strong&gt;Cassandra&lt;/strong&gt;-Datenbank.&lt;/li&gt;
&lt;li&gt;Es ist im Prinzip ein einfacher &lt;strong&gt;REST API Endpunkt&lt;/strong&gt;, der im Netz verfügbar sein soll und dessen Verbindungen durch LetsEncrypt gesichert sein sollen (https).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ich kenne &lt;em&gt;go&lt;/em&gt; bereits&lt;/strong&gt; und habe bereits damit programmiert.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Weiter lesen? Klicke die Headline um den ganzen Artikel zu sehen!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- pagebreak --&gt;&lt;/p&gt;
&lt;h1&gt;Der initiale Prompt&lt;/h1&gt;
&lt;p&gt;Die Ausarbeitung des initialen Prompts war durchaus anspruchsvoll. Ich musste mir ja klar darüber werden, was ich haben möchte, welche Technologievorgaben ich mache und in welcher Sprache, an welchem Ort das Projekt abgelegt werden soll, ob und welche Konfig-Dateien verwendet werden sollen etc. Als besonders schwierig empfand ich, das so schreiben zu müssen als wenn ein Anfänger vor mir sitzt. Ich darf von kaum einer Sache erwarten, dass sie bereits bekannt ist. Also muss man sich gut sortieren und auch kleine Gedanken zum Aufbau oder der Struktur erfassen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mir fiel währenddessen sofort auf, dass ich diesen Prompt nur so schreiben konnte, weil ich bereits Ahnung von Softwareentwicklung habe und durch geschickte Vorgaben bereits viele Anfängerfehler vermeiden konnte. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich habe klare Vorgaben gemacht: Zur Struktur der API, der Konfig-Dateien und deren Werte, zur Verschlüsselung und dem Encoding, zu Prüfungen und Rückgabecodes und auch zu den Frameworks die in &lt;em&gt;go&lt;/em&gt; verwendet werden sollen (zB &lt;em&gt;echo&lt;/em&gt; als web framework und router). Ohne Erfahrung in diesem Gebiet wäre der erste Schuss deutlich wahrscheinlicher nach hinten los gegangen…&lt;/p&gt;
&lt;h1&gt;Nacharbeit&lt;/h1&gt;
&lt;p&gt;Nachdem der Prompt abgegeben wurde, hat die KI in wenigen Minuten das Projekt erstellt und auch gleich getestet. Aber einiges hat mir nicht gefallen und ich habe durch viele Prompts Dinge am Code korrigiert (Auszug):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Es wurden viele Parameter einzeln an Funktionen übergeben, statt einfach die Konfigurations-Struktur zu übergeben.&lt;/li&gt;
&lt;li&gt;Verschlüsselungs-Keys wurden unnötig komplex und verbose gespeichert.&lt;/li&gt;
&lt;li&gt;Die Software hatte keinen sauberen Shutdown und damit beim Beenden der Software (SIGKILL oder Ctrl+d) die Datenbank potentiell beschädigt oder Verbindungen verwaisen lassen.&lt;/li&gt;
&lt;li&gt;Entscheidungen zur API und den Rückmeldungen nahmen keine Rücksicht auf die anderen Komponenten, die später darauf zugreifen sollen.&lt;/li&gt;
&lt;li&gt;Funktionen waren teilweise sehr Lang und Umfangreich, statt diese in leichter zu wartende Teilfunktionen zu unterteilen.&lt;/li&gt;
&lt;li&gt;Es wurde keinerlei Debugging-Log Funktion eingebaut. Die Suche nach Problemen ohne Debugging-Logs würde sich unnötig schwierig erweisen und sehr lange dauern.&lt;/li&gt;
&lt;li&gt;Ständig hat mir die KI neue Abhängigkeiten erzeugt. Mal eben ein anderes Framework für Logs, ein Framework für Stringverarbeitung etc. Ich musste das über mehrere Chats aus dem Projekt entfernen um ein möglichst wartbares Projekt zu erhalten.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Fazit&lt;/h1&gt;
&lt;p&gt;Die benötigte Entwicklungs-Zeit bis zum lauffähigen Produkt war unschlagbar kurz. In nur wenigen Stunden wurde das Projekt lauffähig erzeugt und auch dokumentiert. Das wäre mir, durch traditionelles Programmieren, völlig unmöglich gewesen. Keine Chance. Das kann also durchaus eine echte Hilfe im Alltag von Programmierern sein. Vor allem Routineaufgaben wie Validierung von API- und Nutzer-Eingaben oder die Errichtung eines Grundgerüstes und der Datenbank-Verbindung hat mir sehr gut gefallen und wirkliche Erleichterung gebracht.&lt;/p&gt;
&lt;p&gt;Aber auch die Schattenseiten sind deutlich: Nur weil ich bereits programmieren kann und auch Erfahrung mit solchen Projekten habe, konnte ein brauchbares Konstrukt entstehen. Ohne mein Eingreifen und die bereits im Prompt, und dann später im Chat, erfolgten Korrekturen und Detailanweisungen, wäre es definitiv kein produktionsfähiges Softwareprodukt geworden. Also, es hätte schon irgendwie funktioniert, aber im Nachgang im Setup, im Betrieb, in der Weiterentwicklung und in der Wartung viele Probleme verursacht. Diese hätten die Zeitersparnis dann sicher zunichtegemacht und über lange Zeit für Probleme gesorgt.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;em&gt;Wir müssen in der nahen Zukunft wohl mit viel Software rechnen, die &quot;irgendwie funktioniert&quot;.&lt;br /&gt;Aber eben nicht gut, sicher oder performant arbeitet.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Es braucht also einen Senior-Entwickler, der Erfahrung hat und die Programmiersprache und die Tücken kennt. Aber woher lernt man das, wenn man nur Vibe-Coding macht? Ein Entwickler, der von Anfang an nur Vibe-Coding macht, wird diese Fertigkeiten und Erfahrung niemals aufbauen. Das bedeutet, wir bilden aus finanziellen Gründen, aber auch Bequemlichkeit, vermutlich bald keine Programmierer mehr aus. Solange es noch Senior-Programmierer gibt, welche die KI sinnvoll bedienen können, ist das eine nachvollziehbare Sache. Aber was ist in 10 bis 20 Jahren? Wenn die Entwickler mit Erfahrung in Rente gehen oder wegfallen? Hoffen wir mal, dass bis dahin diese Probleme keine Probleme mehr sind und die KI auch die Nebenschauplätze abdecken kann. Also den Kundenwunsch verstehen, in eine klare Definition und Anforderungs-Spezifikation umwandeln und dann auch Entwickeln und in Betrieb nehmen.&lt;/p&gt;
&lt;p&gt;Auf Dauer wird demnach der Job des Entwicklers oder Programmierers wegfallen. Bisher habe ich das bezweifelt, aber mit der Zeit wird das wohl so kommen.&lt;/p&gt;
&lt;p&gt;Für junge Leute mit Interesse am Programmieren gibt es, meines Erachtens, nur zwei mögliche Entscheidungen:&lt;/p&gt;
&lt;p&gt;1) Lerne das Programmieren mit konsequentem Verzicht auf KI, um ein guter Programmierer zu werden. Das geht nur so! Dann, später, kann man die größeren Software-Projekte verstehen und mit KI-Einsatz gutes ermöglichen. Das wird auch in Zukunft ein guter Job sein, und auch gefragt sein.&lt;/p&gt;
&lt;p&gt;oder&lt;/p&gt;
&lt;p&gt;2) Verzichte auf eine Karriere als Programmierer und mach das allenfalls zu deinem Hobby für private Projekte. Nutze KI und akzeptiere, dass du es möglicherweise nicht richten kannst, wenn die KI versagt.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</content>
<link href="http://blog.inspirant.de/index.php?controller=post&amp;amp;action=view&amp;amp;id_post=61" />
<id>http://blog.inspirant.de/index.php?controller=post&amp;amp;action=view&amp;amp;id_post=61</id>
<updated>2026-02-25T20:10:45+01:00</updated>
<category term="Programmieren"/>
</entry>
<entry>
<title type="html">Externe Software-Quellen machen dein Linux unsicher</title>
<content type="html">&lt;p&gt;&lt;img class=&quot;nb-align-right&quot; style=&quot;margin-right: 10px; box-shadow: 3px 3px 10px 1px rgba(0,0,0,0.75);&quot; src=&quot;http://blog.inspirant.de/content/public/upload/securitybad_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;180&quot; height=&quot;180&quot; /&gt;Ich nutze Linux schon seit vielen Jahren. Zuerst Kubuntu, Lubuntu. Dann später KDE Neon. Und seit ich bei OpenSUSE LEAP gelandet bin, habe ich die für mich ideale Distribution gefunden. Aber obwohl ich jetzt seit Jahren Linux nutze, ist mir erst jetzt bewusst gewesen, dass mein Linux-System von zB Microsoft jederzeit übernommen oder gekillt werden kann. Warum? Weil ich für dauernde Teams-Meeting-Einladungen gezwungen war, Microsoft Edge in der Linux-Version zu nutzen. Auch nutze ich gerne Visual Studio Code für die Entwicklung. Und beide Tools habe ich über die offiziellen Linux-Repositories von Microsoft in mein System eingebunden. Warum ich das so tat? Weil ich so immer die neuesten Updates bekomme.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ich war der Meinung, dass mich mein Linux auf angemessene Weise vor Missbrauch durch externe Repository-Maintainer schützt. Das ist aber nicht so!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Weiter lesen? Klicke die Headline um den ganzen Artikel zu sehen!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- pagebreak --&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hinweis:&lt;/strong&gt; Ich habe mir beim formulieren dieses Artikels von &lt;a href=&quot;https://chat.mistral.ai&quot; target=&quot;_blank&quot;&gt;Le Chat&lt;/a&gt; helfen lassen. Die Erkenntnisse und der gesamte Text wurden aber von mir überarbeitet und geprüft.&lt;/p&gt;
&lt;h1&gt;Das Problem&lt;/h1&gt;
&lt;p&gt;Linux gilt als sicher – doch &lt;strong&gt;diese Sicherheit hat einen blinden Fleck: externe Repositories&lt;/strong&gt;. Sobald du ein Repository eines Drittanbieters (z. B. für Microsoft Edge, Visual Studio Code, NVIDIA-Treiber oder Codecs) einbindest, gibst du de facto Administratorrechte an den Repository-Maintainer ab. Warum? Weil dieser beim nächsten Update folgende Dinge tun könnte:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Systemkomponenten überschreiben&lt;/strong&gt;&lt;br /&gt;Ein Repository kann beliebige Pakete anbieten – auch solche, die Systembibliotheken oder Kernel-Module ersetzen.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Beispiel:&lt;br /&gt;&lt;/strong&gt;Ein bösartiges Repository könnte eine manipulierte Version von glibc, openssl oder sogar dem Kernel anbieten.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Folge:&lt;br /&gt;&lt;/strong&gt;Dein System wird kompromittiert, sobald du &lt;em&gt;zypper up&lt;/em&gt; oder &lt;em&gt;apt&lt;/em&gt; &lt;em&gt;upgrade&lt;/em&gt; ausführst.&lt;br /&gt;&lt;br /&gt;Du fragst wie? Der Maintainer veröffentlicht ein Update für ein scheinbar harmloses Paket (z. B. codecs), das Abhängigkeiten zu Systempaketen hat. Dein &lt;em&gt;apt upgrade&lt;/em&gt; (oder &lt;em&gt;zypper up&lt;/em&gt; in OpenSUSE) schlägt vor, diese Abhängigkeiten zu installieren. Du sagst wie immer &quot;ja&quot; – und schon ist dein System infiziert.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatische Updates als Einfallstor&lt;/strong&gt;&lt;br /&gt;Viele Nutzer aktivieren automatische Updates – was praktisch ist, aber gefährlich, wenn externe Repositories eingebunden sind.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Szenario:&lt;/strong&gt;&lt;ol&gt;
&lt;li&gt;Du bindest ein Repository für eine tolle externe Software ein.&lt;/li&gt;
&lt;li&gt;Der Repository-Maintainer oder ein Angreifer, der das Repository kompromittiert, veröffentlicht ein bösartiges Update für libc6.&lt;/li&gt;
&lt;li&gt;Dein System installiert es automatisch, ohne dass du es merkst.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Social Engineering: Vertrauensmissbrauch&lt;/strong&gt;&lt;br /&gt;Repository-Maintainer können Pakete mit vertrauenswürdigen Namen anbieten (zB &quot;openssl-security-patch&quot;), die in Wahrheit Backdoors, Trojaner, Viren oder Spyware enthalten.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Beispiel:&lt;/strong&gt;&lt;br /&gt;Ein Repository bietet ein Paket namens &quot;nvidia-driver-fix&quot; an, das tatsächlich einen Rootkit installiert.&lt;br /&gt;Da der Name seriös klingt, installieren Nutzer es ohne Misstrauen.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Warum ist das ein strukturelles Problem?&lt;/h2&gt;
&lt;p&gt;Linux vertraut dem Nutzer. &lt;strong&gt;Paketmanager&lt;/strong&gt; wie &lt;em&gt;zypper&lt;/em&gt;, &lt;em&gt;apt&lt;/em&gt; oder &lt;em&gt;dnf&lt;/em&gt; &lt;strong&gt;gehen davon aus, dass der Nutzer weiß, was er tut&lt;/strong&gt;. In der Realität wählen die meisten Nutzer aber einfach &quot;Installieren&quot;, ohne die Quelle zu prüfen. Geschweige denn, dass jemand wüsste wie man eine Quelle prüft…&lt;/p&gt;
&lt;p&gt;Es gibt auch keine Standard-Warnungen. Auch wenn diese in der Wirkung zweifelhaft sind; im Gegensatz zu Windows un MacOS warnt Linux nicht aktiv vor den Risiken externer Repositories.&lt;/p&gt;
&lt;p&gt;Auch erzwingen manche Hersteller externe Repositories, wenn man immer aktuell sein möchte. Viele Programme (zB Microsoft Edge, NVIDIA-Treiber, Steam, Visual Studio Code) sind nur über externe Repositories verfügbar – Nutzer müssen sie einbinden oder mit Nachteilen leben (siehe später weiter unten).&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&lt;em&gt;&quot;Linux ist nur so sicher wie die Repositories, denen du vertraust.&lt;br /&gt;Sobald du ein externes Repository einbindest, öffnest du die Tür&lt;br /&gt;für potenzielle Angriffe durch diesen Anbieter – und &lt;br /&gt;die meisten Nutzer wissen das nicht.&quot;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Lösungsansätze&lt;/h1&gt;
&lt;p&gt;Es gibt mehrere Wege, das Problem zu entschärfen – aber keine perfekte Lösung. Hier sind die wichtigsten Ansätze mit ihren Vor- und Nachteilen:&lt;/p&gt;
&lt;h2&gt;Flatpak: Sandboxing für Anwendungen&lt;/h2&gt;
&lt;p&gt;Wie es funktioniert:&lt;/p&gt;
&lt;p&gt;Anwendungen laufen in einer isolierten Umgebung (Sandbox) und haben keinen Zugriff auf das System (außer auf explizit von Dir freigegebene Bereiche). Pakete kommen aus zentralen Stores (z. B. Flathub), die Signaturen und Reviews erzwingen.&lt;/p&gt;
&lt;p&gt;Vorteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hohe Sicherheit (keine Systemänderungen).&lt;/li&gt;
&lt;li&gt;Automatische Updates (über den Store).&lt;/li&gt;
&lt;li&gt;Keine externen Repositories nötig.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nachteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nicht alle Programme verfügbar (zB VS Code, Edge nur als Community-Versionen).&lt;/li&gt;
&lt;li&gt;Langsamer Start (durch Sandboxing).&lt;/li&gt;
&lt;li&gt;Ressourcenintensiv (jede App läuft in einem Container).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Für wen?&lt;/p&gt;
&lt;p&gt;Nutzer, die Sicherheit über Komfort stellen und auf offizielle Flatpaks setzen können. Aber Du musst darauf verztrauen, dass der Abbieter des Flatpaks dir nichts böses möchte und dass Du auch regelmässig wichtige Sicherheits-Updates bekommst. bei Community-Versionen sind zumindest Updates nicht selten nie oder nur sehr spät verfügbar.&lt;/p&gt;
&lt;h2&gt;AppImage: Portable Anwendungen ohne Installation&lt;/h2&gt;
&lt;p&gt;Wie es funktioniert:&lt;/p&gt;
&lt;p&gt;Anwendungen werden als einzelne ausführbare Datei heruntergeladen und ohne Installation gestartet. Keine Repository-Einbindung nötig.&lt;/p&gt;
&lt;p&gt;Vorteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keine Systemänderungen (läuft im User-Space).&lt;/li&gt;
&lt;li&gt;Keine Abhängigkeiten oder Repos nötig.&lt;/li&gt;
&lt;li&gt;Einfach zu nutzen (herunterladen, ausführbar machen, starten).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nachteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keine automatischen Updates (Nutzer muss manuell neue Versionen herunterladen).&lt;/li&gt;
&lt;li&gt;Keine Sandbox (AppImages können beliebigen Code ausführen).&lt;/li&gt;
&lt;li&gt;Nicht alle Programme verfügbar (z. B. Treiber, Systemtools).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Für wen?&lt;/p&gt;
&lt;p&gt;Nutzer, die keine Repositories einbinden wollen und manuelle Updates in Kauf nehmen.&lt;/p&gt;
&lt;h2&gt;Manuelle Installation von .rpm/.deb-Paketen&lt;/h2&gt;
&lt;p&gt;Wie es funktioniert:&lt;/p&gt;
&lt;p&gt;Statt ein Repository einzubinden, lädst du die offiziellen Pakete (zB .rpm von Microsoft) manuell herunter und installierst sie. Zum Beispiel so:&lt;/p&gt;
&lt;pre&gt;sudo dpkg -i /pfad/zur/datei.deb # Debian/Ubuntu&lt;br /&gt;sudo zypper in /pfad/zur/datei.rpm # openSUSE&lt;/pre&gt;
&lt;p&gt;Vorteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keine externen Repositories nötig.&lt;/li&gt;
&lt;li&gt;Offizielle Quelle → vertrauenswürdig.&lt;/li&gt;
&lt;li&gt;Volle Kontrolle über installierte Pakete.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nachteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keine automatischen Updates (muss manuell geprüft und gemacht werden).&lt;/li&gt;
&lt;li&gt;Umständlich (Nutzer muss selbst auf neue Versionen achten).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Für wen?&lt;/p&gt;
&lt;p&gt;Nutzer, die maximale Kontrolle wollen und keine externen Repositories einbinden möchten.&lt;/p&gt;
&lt;h2&gt;Immutable OS: Unveränderliche Systeme&lt;/h2&gt;
&lt;p&gt;Wie es funktioniert:&lt;/p&gt;
&lt;p&gt;Das gesamte Linux-System ist unveränderlich (Solche Linux-Distributionen sind zB Fedora Silverblue, openSUSE MicroOS). Änderungen werden nur über atomare Updates eingespielt (keine klassischen &lt;em&gt;apt&lt;/em&gt;, &lt;em&gt;dnf&lt;/em&gt; oder &lt;em&gt;zypper&lt;/em&gt; Installations-Befehle). Anwendungen werden als Flatpaks oder Container installiert.&lt;/p&gt;
&lt;p&gt;Vorteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maximale Sicherheit (keine externen Repositories nötig).&lt;/li&gt;
&lt;li&gt;Atomare Updates (keine &quot;kaputten&quot; Systeme nach Updates).&lt;/li&gt;
&lt;li&gt;Isolation (Anwendungen laufen in Containern).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nachteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Radikale Umstellung (kein klassisches Paketmanagement mehr).&lt;/li&gt;
&lt;li&gt;Nicht alle Programme verfügbar (z. B. proprietäre Treiber).&lt;/li&gt;
&lt;li&gt;Komplex für Einsteiger.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Für wen?&lt;/p&gt;
&lt;p&gt;Sicherheitsbewusste Nutzer, die bereit sind, neue Workflows zu lernen.&lt;/p&gt;
&lt;h2&gt;Distrobox/Toolbx: Containerisierte Distributionen&lt;/h2&gt;
&lt;p&gt;Wie es funktioniert:&lt;/p&gt;
&lt;p&gt;Du erstellst einen Container mit einer vollständigen Distribution (z. B. Ubuntu, Arch) und installierst dort die Software. Die Anwendungen werden im Host-System integriert, laufen aber isoliert im Container.&lt;/p&gt;
&lt;p&gt;Vorteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Volle Isolation (externe Repositories bleiben im Container).&lt;/li&gt;
&lt;li&gt;Keine Änderungen am Host-System.&lt;/li&gt;
&lt;li&gt;Volle Kompatibilität (alle Pakete verfügbar).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nachteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Komplex einzurichten (X11-Weiterleitung, Berechtigungen).&lt;/li&gt;
&lt;li&gt;Ressourcenintensiv (jeder Container ist eine Mini-Distribution).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Für wen?&lt;/p&gt;
&lt;p&gt;Fortgeschrittene Nutzer, die externe Software sicher testen wollen.&lt;/p&gt;
&lt;h2&gt;SIGStore &amp;amp; Cosign: Signaturprüfung für Pakete&lt;/h2&gt;
&lt;p&gt;Wie es funktioniert:&lt;/p&gt;
&lt;p&gt;SIGStore ermöglicht kryptografische Signaturprüfung für Software-Artefakte (inkl. RPM/DEB-Pakete). Cosign prüft Signaturen vor der Installation.&lt;/p&gt;
&lt;p&gt;Vorteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Zukunftssicher (wird von der Linux Foundation gepusht).&lt;/li&gt;
&lt;li&gt;Automatisierte Signaturprüfung.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nachteile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Noch nicht flächendeckend eingesetzt.&lt;/li&gt;
&lt;li&gt;Nutzt nichts, wenn Nutzer Signaturen ignorieren.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Für wen?&lt;/p&gt;
&lt;p&gt;Zukunftsorientierte Nutzer, die auf neue Sicherheitsstandards setzen wollen.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;Die har&lt;em&gt;te Wahrheit ist:&lt;br /&gt;&quot;Es gibt keine perfekte Lösung. Du musst Kompromisse eingehen – entweder&lt;br /&gt;bei der Sicherheit, beim Komfort oder beim Aufwand.&quot;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Zusammenfassung: Was kannst du heute tun?&lt;/h2&gt;
&lt;p&gt;Wenn ein externes Repository für Dich jetzt nicht mehr in Frage kommt, hast Du diese Optionen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Flatpak/Snap&lt;/strong&gt; nutzen, wo möglich (z. B. TeamViewer, Spotify).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Offizielle .rpm/.deb-Pakete&lt;/strong&gt; manuell installieren (z. B. VS Code, Edge).&lt;/li&gt;
&lt;li&gt;Externe &lt;strong&gt;Repositories strikt beschränken&lt;/strong&gt; (nur bestimmte Pakete erlauben).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Immutable OS&lt;/strong&gt; testen (z. B. Fedora Silverblue), falls du experimentierfreudig bist.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distrobox&lt;/strong&gt; für unsichere Software nutzen (z. B. AnyDesk in einem Container).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Die bittere Wahrheit&lt;/h1&gt;
&lt;p&gt;Linux ist nicht unsicher – aber es erfordert Wissen und Disziplin. Sobald du externe Repositories einbindest, gibst du Sicherheit für Komfort auf. Es gibt aktuell keine Lösung, die beides vereint: Maximale Sicherheit und automatische Updates ohne manuellen Aufwand.&lt;/p&gt;
&lt;p&gt;Natürlich gibt es die Vision der optimalen Lösung. Vor allem, wenn Linux jetzt durch mehr Leute genutzt wird, weil Microsoft sich ja größte Mühe gibt den Leuten Windows auszutreiben. Also, was wäre die ideale Lösung?&lt;/p&gt;
&lt;p&gt;Vielleicht eine Kombination aus:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Strikten Sandboxing-Standards (wie Flatpak) für alle Anwendungen.&lt;/li&gt;
&lt;li&gt;Signaturprüfung per Default (wie SIGStore) für alle Pakete.&lt;/li&gt;
&lt;li&gt;Bessere Nutzeraufklärung (Warnungen bei externen Repositories).&lt;/li&gt;
&lt;li&gt;Hersteller-Unterstützung für sichere Distribution (z. B. offizielle Flatpaks von Microsoft, NVIDIA etc.).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bis dahin bleibt es dabei:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entweder du verzichtest auf automatische Updates (manuelle .rpm-Installation).&lt;/li&gt;
&lt;li&gt;Oder du akzeptierst ein Sicherheitsrisiko (externe Repositories).&lt;/li&gt;
&lt;li&gt;Oder du gehst den häufig unbequemen Weg (Flatpak, Immutable OS, Container).&lt;/li&gt;
&lt;/ul&gt;</content>
<link href="http://blog.inspirant.de/index.php?controller=post&amp;amp;action=view&amp;amp;id_post=60" />
<id>http://blog.inspirant.de/index.php?controller=post&amp;amp;action=view&amp;amp;id_post=60</id>
<updated>2026-02-16T21:36:16+01:00</updated>
<category term="Security und Kryptografie"/>
</entry>
<entry>
<title type="html">Radio-Wecker V2</title>
<content type="html">&lt;p&gt;&lt;img class=&quot;nb-align-right&quot; style=&quot;margin-right: 10px; box-shadow: 3px 3px 10px 1px rgba(0,0,0,0.75); border-radius: 10px;&quot; src=&quot;http://blog.inspirant.de/content/public/upload/wecker20257_0_o.png&quot; alt=&quot;undefined&quot; width=&quot;180&quot; /&gt;Schon vor einigen Jahren habe ich mir selbst &lt;a href=&quot;/index.php?controller=post&amp;amp;action=view&amp;amp;id_post=20&quot; target=&quot;_blank&quot;&gt;einen Wecker gebaut&lt;/a&gt;, der bis heute in Benutzung ist und mit dem ich sehr zufrieden bin.&lt;/p&gt;
&lt;p&gt;Für dieses Weihnachten war die Idee, meiner Mutter einen neuen Radio-Wecker zu kaufen. Aber die Auswahl ist alles andere als Seniorengerecht und die Anforderungen waren doch so einfach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Großes Display&lt;/li&gt;
&lt;li&gt;Display-Helligkeit passt sich der Umgebung an&lt;/li&gt;
&lt;li&gt;Eine(!) Weckzeit&lt;/li&gt;
&lt;li&gt;Einfachste Bedienung ohne Hürden&lt;/li&gt;
&lt;li&gt;Wecken mit Radio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Stellt sich raus, dass es Oft mit USB, Internet, zwei Weckzeiten und 6 bis 10 Knöpfen einhergeht. Dazu alles in Englisch und Mini-Taster oder schwergängige Schieber. Dazu zeigen die wenigsten Seniorengerecht die aktuelle Weckzeit an (nur winziges Wecker-Symbol etc). Scheinbar scheint bei allen ein großes Display ausreichend um das Senioren- oder Demenz-Radio nennen zu dürfen.&lt;/p&gt;
&lt;p&gt;Also muss ein neuer Wecker selbst gebaut werden! Ein durchaus anspruchsvolles Projekt und ein strammer Zeitplan. Ich bin sehr gespannt, ob ich das bis Weihnachten hinbekomme oder ob das Geschenk am Ende Zeitverzug hat.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Weiter lesen? Klicke die Headline um den ganzen Artikel zu sehen!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- pagebreak --&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #0000ff; font-size: 150%;&quot;&gt;&lt;strong&gt;Achtung, Nachbau auf eigene Gefahr!&lt;br /&gt; Keine Haftung!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;09.11.2025&lt;/h2&gt;
&lt;p&gt;Ich bin gestartet mit einer Einkaufsliste (inzwischen mehrfach aktualisiert und ergänzt):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Display 4 Zoll TFT mit SPI-Schnittstelle&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-decoration: line-through;&quot;&gt;Teensy 3.2&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;ESP-32 Dev Kit C V4&lt;/li&gt;
&lt;li&gt;Real Time Clock RTC-Modul DS3231 I2C Echtzeituhr&lt;/li&gt;
&lt;li&gt;Rotary Encoder (aus dem Fundus)&lt;/li&gt;
&lt;li&gt;Große farbige Drucktastenschalter (Edelstahl, RUNCCI-YUN)&lt;/li&gt;
&lt;li&gt;Mini Kippschalter (aus dem Fundus)&lt;/li&gt;
&lt;li&gt;Verstärker-Modul (PAM8406)&lt;/li&gt;
&lt;li&gt;Radio-Modul (TEA5767 mit i2c-Schnittstelle)&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;text-decoration: line-through;&quot;&gt;Lautsprecher (Zerone, 5 W 8 Ohm TV-Lautsprecher)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;VISATON Breitbandlautsprecher FR 7, 5W an 4Ω&lt;/li&gt;
&lt;li&gt;USB-C Buchse zur Stromversorgung (RUNCCI-YUN)&lt;/li&gt;
&lt;li&gt;3.3 DC Spannungsregler Step Down Netzteilmodul 4.75V-12V bis 3.3V 800mA&lt;/li&gt;
&lt;li&gt;Pegelwandler (Logic Level Shifter), 4 Kanal, BiDirektional, 5V~3.3V (i2c)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alles was fehlt, muss also immer wieder nachbestellt werden...&lt;/p&gt;
&lt;h2&gt;10.11.2025&lt;/h2&gt;
&lt;p&gt;Erste Tests am CAD. Da ich die meisten Bauteile noch nicht habe, sind das erst mal nur Versuche um eine Design-Idee zu finden. Möglichst kurze Druckzeit am 3D-Drucker soll es auch haben etc. Aber eigentlich kenne ich noch nicht einmal die finalen Abmessungen. Ich breche also wieder ab...&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/wecker20251_0_o.png&quot; alt=&quot;undefined&quot; width=&quot;274&quot; height=&quot;213&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;12.11.2025&lt;/h2&gt;
&lt;p&gt;Okay, der Teensy, den ich als Plattform wollte, ist mir zu Teuer. Kaum unter 30,- EUR zu bekommen. Daher soll es jetzt ein ESP32 sein. Die WLAN- und Bluetooth-Funktionen brauche ich nicht. Dazu noch ein Uhrenmodul mit Batterie als Echtzeit-Uhr (RTC). Auch eine USB-C-Buchse soll als Stromversorgung noch rein.&lt;/p&gt;
&lt;h2&gt;14.11.2025&lt;/h2&gt;
&lt;p&gt;Erste Teile sind eingetroffen, daher geht es wieder an das CAD. Den ersten Entwurf für den Deckel habe ich nach Rücksprache mit einem Bekannten neu designt und statt Ihn &quot;Aufzusetzen&quot; werde ich Ihn lieber &quot;Einsetzen&quot;. Die Abmessungen sind jetzt vermutlich 140 x 80 x 70 (Breite, Tiefe, Höhe). Dann vier Gummi-Füße aufkleben und fertig.&lt;/p&gt;
&lt;p&gt;So schaut der Entwurf jetzt aus. Um zu erkennen wo was hin muss und wo Löcher benötigt werden und ob es Platzprobleme gibt, habe ich das Display, den Lautsprecher und andere Teile konstruiert. So kann ich Ein- und Ausblenden wann immer ich etwas benötige:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/wecker20252_0_o.png&quot; alt=&quot;undefined&quot; width=&quot;513&quot; height=&quot;335&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/wecker20253_0_o.png&quot; alt=&quot;undefined&quot; width=&quot;513&quot; height=&quot;329&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Auch das Lautstärkerad ist jetzt eingeplant und sichtbar sowie &quot;Böcke&quot; für das Radio-Modul (oben links im Bild) und das Verstärker-Modul (Rechts in Bild).&lt;/p&gt;
&lt;p&gt;Falls es jemand interessiert, ich nutze &lt;strong&gt;&lt;a href=&quot;https://www.plasticity.xyz/&quot; target=&quot;_blank&quot;&gt;Plasticity&lt;/a&gt;&lt;/strong&gt; als CAD-Software unter OpenSUSE LEAP 15.6 (Linux). Dieses CAD ist Fantastisch und ich liebe es. Klar, die Einarbeitungszeit muss man einrechnen. Aber vieles ist intuitiv und gut gelöst. Daher hat man schnell Erfolge. Klare Empfehlung! In Plasticity exportiere ich dann als STL und slice das dann für den 3D-Druck mit CUDA.&lt;/p&gt;
&lt;h2&gt;15.11.2025&lt;/h2&gt;
&lt;p&gt;Weitere Testdrucke mit dem Deckel. Löcher sind zu klein und die Idee, Schrift auf den Deckel direkt zu drucken, wird verworfen. Das wird weder schön noch lesbar :-( Aber Aufkleber oder mit Stift aufgemalte Symbole oder Text werden nicht haltbar genug sein. Daher versuche ich 0,4mm hohe Symbole aufzudrucken.&lt;/p&gt;
&lt;p&gt;Neuester Stand am CAD:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/wecker20254_0_o.png&quot; alt=&quot;undefined&quot; width=&quot;513&quot; height=&quot;324&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Testdrucke des Deckels sind hoffentlich bald erledigt. Das Gehäuse wird im Druck nochmal Anspruchsvoll. Eine erste Schätzung ergibt, dass das Gehäuse über 10 Stunden drucken wird. Ich denke darüber nach, das ganze Gehäuse bei einem Profi drucken zu lassen.&lt;/p&gt;
&lt;p&gt;Nachtrag: Hab es selbst gedruckt. War einfach zu Neugierig :-)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/pxl20251120125018592_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;513&quot; height=&quot;289&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;06.12.2025&lt;/h2&gt;
&lt;p&gt;Ja, es hat eine Weile gedauert bis ich die Zeit finde wieder etwas hier aufzuschreiben. Ich fasse die letzten Tage daher hier zusammen.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Erster 3D-Testdruck&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ich habe das Gehäuse und den Deckel selbst gedruckt und bin erst mal sehr zufrieden. Bis auf wenige Probleme am Gehäuse war es größtenteils Super. Probleme waren vereinzelte Durchmesser mit ein paar Zehntel mm zu wenig aber auch die Tatsache, dass das TFT-Display gar nicht auf der gesamten Glasfläche anzeigt sondern unterschiedliche Ränder aufzeigt. Also wurde der Ausschnitt für das TFT-Display und einige Durchmesser korrigiert. Auch die Lage des Bocks für das Radio-Modul wurde verändert (nach rechts geschoben), denn nur so passt der zugehörige Stecker zwischen die Taster im Deckel.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Lautsprecher&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bei einem ersten Test der Endstufe mit den kleinen Lautsprechern kam schnell Ernüchterung. &lt;strong&gt;Die sind viel zu leise!&lt;/strong&gt; Auch wenn der Klang für die Größe beeindruckend ist, sind sie doch viel zu Leise für einen Senior. Da ich die Endstufe nicht wechseln möchte, musste ich bessere (größere) Lautsprecher suchen die zur Endstufe und in mein Gehäuse passen. Am Ende bin ich bei Pollin Fündig geworden und habe VISATON Lautsprecher mit 5W an 4Ω gekauft. Tatsächlich, diese haben deutlich mehr &quot;Wumms&quot; und klingen auch gut. Allerdings passen die so nicht in der geplante Gehäuse. Ich habe mich entschlossen, den Lautsprecher auf Grund der optimalen Lautstärke und Klang nach vorne gerichtet einzubauen. Das Gehäuse musste also wachsen:&lt;/p&gt;
&lt;p&gt; &lt;img src=&quot;http://blog.inspirant.de/content/public/upload/wecker20257_0_o.png&quot; alt=&quot;undefined&quot; width=&quot;509&quot; height=&quot;325&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Zweiter Testdruck&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Eine Abdeckung für den Lautsprecher werde ich bestimmt finden und verschiebe diese Frage in die Zukunft. Diesen Gehäuse-Entwurf hab ich dann auch gedruckt (über 12 Stunden) und zweimal schwarz lackiert (Acryl-Farbdose mit Matt-Schwarz):&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/pxl20251205063226638_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;515&quot; height=&quot;290&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/pxl20251205063234832_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;515&quot; height=&quot;290&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Man kann hinten links bei der Kabelklemme sehen, dass ich eine Vorrichtung zur Aufnahme eines Fotowiderstandes eingedruckt habe. Der Wecker soll seine Display-Helligkeit ja dem Umgebungslicht anpassen.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;ESP32&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Da das Gehäuse jetzt größtenteils fertig war, ging es an den Aufbau. Ich hatte noch nie zuvor ein ESP32-Projekt durchgeführt und hatte einiges an Lernkurve zu diesem speziellen Mikrocontroller. Das WLAN und Bluetooth werde ich vorerst nicht nutzen, aber ein ESP32 ist deutlich günstiger als der ursprünglich angedachte Teensy. Das sind die bisherigen Lernerfahrungen, ganz kurz zusammengefasst:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Der ESP32 hat einen 3,3V Spannungswandler, der aber nur begrenzt Leistungsfähig ist. Eine echte Doku mit dem gesicherten Wert hab ich nicht gefunden, aber in verschiedenen Foren war immer wieder ein Maximum von 200mA genannt. Da das TFT so um den Dreh benötigt (bei Aktivität) wollte ich es nicht strapazieren und habe noch einen separaten 5V zu 3,3V Spannungsregler besorgt.&lt;/li&gt;
&lt;li&gt;Viele PINs sind nicht für alle Aufgaben geeignet. Das offizielle PIN-Sheet verschweigt die meisten davon und nur intensives Forschen hat mir dann offenbart, welche PINs tatsächlich nutzbar sind. Vermeiden sollte man 0,1, 3, 6, 7, 8, 9, 10, 11, 12, 15, 21 + 22 (i2c), 5+23+18+19 (SPI). Weiterhin sind 34, 35, 36 und 39 nur als Eingänge ohne eingebaute Pull-Up oder Pull-Down nutzbar. Das schränkt die Sache deutlich ein und verursacht unnötigen Aufwand und Fehler. Da war der Teensy deutlich besser!&lt;/li&gt;
&lt;li&gt;Der ESP32 ist nicht 5V-tolerant. Daher kann das Radio-Modul, welches 5V benötigt, nicht einfach per i2c-Bus direkt an den ESP32 angeschlossen werden. Es braucht einen Pegelwandler (Logic Level Shifter 5V~3.3V) am i2c. Das verkompliziert nochmal alles.&lt;/li&gt;
&lt;li&gt;Den ESP32 unbedingt auf einen Sockel oder Sockelleisten drücken. So kann man später viel leichter Probleme durchmessen! Siehe Bericht weiter unten.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Planung&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Diese zwei Blätter hab ich mir in der Planungsphase als Anhaltspunkt gemacht. Sie sind aber inzwischen bereits teilweise überholt:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/pxl20251208064716807_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;646&quot; height=&quot;424&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ich hab dann die Lochraster-Platine benutzt um den ESP32, den Spannungswandler und einige Stiftleisten aufzubauen. Auch den Deckel hab ich mit den Tastern und Elementen verschraubt und verlötet (an Stiftleiste). Ich möchte alle Teile einfach an- und abstecken können, damit der Aufbau und das Testen etwas leichter fallen.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Programmierung&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Dann ging es an die Programmierung, die zuerst einmal das TFT ansteuern soll. Ich hab mir eine menge Dinge zusammen-gegoogelt und benutze Visual Studio Code mit PlatformIO als Grundlage für das Projekt.&lt;/p&gt;
&lt;p&gt;Das größte Problem ist aktuell die benötigte große Schriftart für die Uhr-Anzeige. Ich finde viele Fonts für Arduino- und ESP32-Projekte, aber keiner ist Groß genug für mein Display. Am Ende entscheide ich mich dafür, die Ziffern 0-9 und den Doppelpunkt als 1 Bit Bitmaps zu nutzen. Dafür hab ich mir einen Lizenzfreien Monospaced Font auf fonts.google.com gesucht und die Zeichenfolge &quot;0123456789:&quot; als Test mit 180px ausgeben lassen. Davon dann einen Screenshot gemacht und mit &lt;strong&gt;GIMP&lt;/strong&gt; das passende Schnitt-Raster gesucht (Bild -&amp;gt; Raster konfigurieren). Dann mit diesen Zahlen das &lt;strong&gt;imagemagick&lt;/strong&gt; &quot;convert&quot; tool verwendet um die Ziffern auszuschneiden (&lt;em&gt;convert Numbers_Fragment-Mono-200px.png -shave 12x0 -crop 123x149 +repage +adjoin Numbers-Mono-200px_%02d.png&lt;/em&gt;). Am Ende hab ich die Bildchen dann mit einem Online-Tool wie &lt;a href=&quot;https://javl.github.io/image2cpp/&quot; target=&quot;_blank&quot;&gt;image2cpp&lt;/a&gt; in Arduino-Kompatiblen Code konvertiert.&lt;/p&gt;
&lt;p&gt;Als Grafik-Library für das TFT-Display habe ich mich für &lt;a href=&quot;https://github.com/lovyan03/LovyanGFX&quot; target=&quot;_blank&quot;&gt;LovyanGFX&lt;/a&gt; entschieden. Die originale Arduino-Lib war mit ihrer SPI-Implementation einfach viel zu langsam. Außerdem hat LovyanGFX noch weitere praktische Funktionen wie Text zentriert auszugeben oder mehr eingebaute Fonts. Ich nutzte das also um einen ersten Entwurf zur Oberfläche zu gestalten und einen ersten Loop für die Steuerung zu gestalten. Das Programmgerüst ist sogar schon recht brauchbar.&lt;/p&gt;
&lt;p&gt;Nach weiteren 10 Stunden dann die ersten Erfolge!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/pxl20251205063127956_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;516&quot; height=&quot;369&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Erster Rückschlag&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Am folgenden Tag hab ich dann noch den Spannungsteiler aufgelötet und dann kam beim Anschluss ein herber Rückschlag:&lt;/p&gt;
&lt;p&gt;Die i2c Kommunikation war plötzlich total kaputt. Die RTC Uhr lieferte nicht mehr 0:00 und den 01.01.2000 sondern total verrückte Zahlen wie 165:233 und auch das Datum sprang wie Wild umher. Im Serial-Monitor wurde dann ein i2c Fehler 263 angezeigt, der irgend einen Timeout darstellt. Am Ende sprangen die Zahlen sogar dann, wenn die i2c Kabel wieder weg-gelötet hab. Ich war total frustriert. Und weil ich sowohl das RTC als auch den ESP32 direkt auf die Platine gelötet hab (ich Vollpfosten) konnte ich nur schwer bis gar nicht nach den Fehlern suchen.&lt;/p&gt;
&lt;p&gt;Ich hab mich nach mehreren Stunden Fehlersuche schweren Herzens dazu entschieden, einen zweiten ESP32 und ein neues RTC-Modul zu nutzen um alles neu aufzubauen. Zum Glück hab ich gleich jeweils zwei bestellt. Also wieder stundenlanges löten...&lt;/p&gt;
&lt;p&gt;Die Version 2 hat den ESP32 und auch das RTC-Modul jetzt steckbar und ich hab mit größter Sorgfalt gearbeitet. Ein erster Test hat dann sogar wieder funktioniert.&lt;/p&gt;
&lt;p&gt;Doch einen Tag später kommt plötzlich das i2c-Problem wieder! Das selbe Phänomen, der selbe Fehler im Serial-Monitor. &lt;strong&gt;WTF&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Und dazu kommt noch, dass das TFT-Display manchmal weiß bleibt. Und manchmal startet der Serial-Monitor nicht und re-startet den ESP32 die ganze Zeit. Ich kann meinen Frust kaum in Worte fassen. Meine Teensy-Pojekte hatten solche Probleme selten.&lt;/p&gt;
&lt;p&gt;Ich untersuche alles, ziehe den ESP32 und messe alle Leitungen. Am späten Abend einen kleinen Erfolg. Ich finde einen Kurzschluss zwischen zwei PINs auf meiner Platine. Zwar kann ich den mit den Augen nicht sehen, aber definitiv messen. Also nehme ich Isopropanol und eine alte Zahnbürste und schrubbe meine Lötkontakte und zumindest die seltsamen Re-Boots und das weiße Display kann ich damit reparieren. Es ist aber auch ein Hinweis, dass es evtl. weitere PINs sind, die da eine Rolle spielen.&lt;/p&gt;
&lt;p&gt;Am Abend später stelle ich fest, dass der PIN 12, den ich für den Taster am Rotary-Encoder nutzen wollte, Probleme macht wenn man den mit Pull-Up-Widerstand programmiert. Er hat wohl eine Rolle beim Flashen und definiert die Flash-Spannung beim Re-Boot (oder so ähnlich). Der darf also auch nicht verwendet werden. Ich tausche den gegen den noch freien PIN 26 und dann geht es mit funktionierendem Serial-Monitor weiter. Langsam werden die nutzbaren PINs knapp. Fast 21 PINs sind nicht nutzbar oder nur für bestimmte Zwecke. Die offizielle Pin-Grafik erweckt den Eindruck, dass man mit vielen PINs basteln darf. Das stimmt aber nicht! &lt;br /&gt;&lt;strong&gt;Tipp:&lt;/strong&gt; Die KI von blackbox.ai hat mir bei der Suche nach Problem-Pins ganz gut weitergeholfen.&lt;/p&gt;
&lt;h2&gt;07.12.2025&lt;/h2&gt;
&lt;p&gt;Heute messe ich meine Platine nochmal durch um die restlichen Probleme zu identifizieren. Und tatsächlich finde ich noch weitere Fehler. Die 4K7 Terminator-Wiederstände am i2c-Bus hab ich versehentlich gegen 3,3V verbunden statt gegen GND. Bin beim abzählen im Raster wohl um eins verkommen. Autsch, das ist doof. Und ich finde noch ein kleines Masse-Kabel das ich von oben durch die Leiterplatine geführt hab welches sich per Pinzette raus-ziehen lässt. Auch das muss ich neu verlöten. Und siehe da, ich hab endlich das RTC am i2c-Bus und das TFT-Display wieder am funktionieren! Uff, das erleichtert ungemein.&lt;/p&gt;
&lt;p&gt;Auch die seltsame Fehlermeldung zum i2c-Bus ging weg, nachdem ich ein Downgrade der ESP32 Basis-Library auf die Version 5.0.0 durchgeführt hab. Darauf hat mich ein Forums-Post gebracht. Scheinbar ist neuer nicht besser...&lt;/p&gt;
&lt;p&gt;Also schließe ich den Pegelwandler an den i2c-Bus und klemme das Radio-Modul an. Dazu auch gleich den Verstärker und einen Lautsprecher. Man will das ja mal testen.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Zweiter Rückschlag&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Leider &lt;strong&gt;rauscht&lt;/strong&gt; der Lautsprecher laut und dazu kommt ein penetranter &lt;strong&gt;Pfeifton&lt;/strong&gt;. Ich steppe alle FM-Frequenzen durch und trotz eingesteckter Antenne finde ich &lt;strong&gt;nur zwei Sender&lt;/strong&gt; im Rauschen. Als Ursache für den Ton kann ich das TFT-Display ausmachen. Sobald ich es abstecke ist der Ton weg. Stecke ich es wieder an, pfeift es wieder. Ich beende den Abend mit der Erkenntnis, dass ich Kondensatoren (106, 104), Drosseln und Abschirmung brauche. Amazon-Bestellung ist getätigt. Ich bin aber skeptisch, ob das ausreichen wird :-( Und laut einer KI-Frage ist die Antenne mit ca 30cm zu kurz und sollte eher so 75cm betragen? Warum liefern die dann eine 30cm Antenne mit?&lt;/p&gt;
&lt;h2&gt;10.12.2025&lt;/h2&gt;
&lt;p&gt;Ich habe weitere Stunden mit der Suche nach einer Lösung für das Rausch- und Pfeifproblem verbracht. Auch Kondensatoren in der Spannungsversorgung des Radio-Moduls, und eine Drossel mit 47 mH Induktivität haben das Problem nicht gelöst. Scheinbar hab ich bei meinen Tests sogar das Radio-Modul zerstört, denn seit neuestem liefert es nur noch Rauschen und findet keinerlei Sender mehr. Es reagiert und ich bekomme Callbacks etc, aber alle Frequenzen haben jetzt eine Signal-Strength von 0. I2c läuft demnach noch, aber das Radio-Modul selbst irgendwie nicht mehr.&lt;/p&gt;
&lt;p&gt;Nach aktuellem Stand habe ich jetzt folgende Möglichkeiten:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ein neues Radio-Modul kaufen und das rauschen weiter untersuchen.&lt;/li&gt;
&lt;li&gt;Ein anderes Radio-Modul kaufen, welches &quot;angeblich&quot; störungsresistenter sei.&lt;/li&gt;
&lt;li&gt;Ein separates Radio-Modul kaufen, welches nur Taster für Sendersuchlauf und laut/leise hat. Die Taster dann über den ESP32 steuern.&lt;/li&gt;
&lt;li&gt;Statt Radio nur piepen oder pfeifen als Weckton einbauen.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ich hab auch mal überlegt, ob ich das Radio-Modul und die Endstufe über Akkus (4 x 1,2V) betreiben soll um die von den Störquellen (SPI, I2C, Microcontroller) abzuklemmen. Aber eine gemeinsame Masse wäre wegen i2c dennoch nötig, laden müsste ich über die selbe Spannungsquelle und ich bräuchte eine gute Ladelogik damit das klappt. Ich hab da Zweifel...&lt;/p&gt;
&lt;p&gt;Allerdings habe ich dann Zeit gefunden am Interface zu arbeiten und aktuell schaut es so aus:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/pxl20251210171145892_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;518&quot; height=&quot;291&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Man sieht links über dem ESP32 den Stecker für das Radio-Modul (aktuell abgesteckt) und unter dem RTC-Modul den braunen Stecker für die Stromversorgung der Endstufe. Beide bekommen 5V und das Radio-Modul läuft noch durch den level Shifter oben rechts auf der Platine. Ganz oben rechts im Bild sieht man den Lichtwiederstand, der aktuell die Display-Helligkeit steuert. Auch das läuft bereits (geglätteter Durchschnitt der letzten 10 Messungen alle 500ms).&lt;/p&gt;
&lt;p&gt;Das Display zeigt aktuell die Uhrzeit und unten den aktiven Alarm (Schalter auf dem Deckel ist aktiv).&lt;/p&gt;
&lt;p&gt;Inzwischen habe ich auch ein Menü-System programmiert mit dem man bereits jetzt per Drehencoder die Uhrzeit und das Datum setzen kann. Das setzt dann die Zeit und das Datum auf der RTC. Die Uhrzeit übersteht jetzt also auch Stromverlust.&lt;/p&gt;
&lt;h2&gt;23.12.2025&lt;/h2&gt;
&lt;p&gt;Ich habe mich entschieden ein neues Radio-Modul zu kaufen und das funktioniert tatsächlich wieder. Keine Ahnung woran das erste Modul kaputt gegangen ist? Soweit funktioniert jetzt alles, bis auf die Störgeräusche im Radio. Die Programmierung habe ich fertig gestellt. Es lässt sich jetzt auch der Alarm einfach einstellen und er funktioniert auch. Das einzige was jetzt noch fehlt sind Kleinigkeiten. Ich möchte noch einen Menüpunkt zum einstellen der Dimmer-Funktion einbauen. Und wenn der Alarm losgeht, sollte das Display noch heller werden. Aktuell wird es nur kurz heller und dann wieder Dunkler. Da muss ich noch was machen.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;em&gt;&lt;strong&gt;Aber ich kann es so nicht verschenken. Die Mission ist also gescheitert :-(&lt;/strong&gt; &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Das Radio surrt und fiept inakzeptabel und ich kann nicht herausfinden, woher es überhaupt kommt. Ist es auf der Spannungsversorgung? Oder &quot;Over the Air&quot;? Oder liegt das Störsignal auf der i2c-Leitung? Da muss ich noch viel Tests machen. Da ich kein Oszilloskop besitze, muss ich viele Tests &quot;auf die harte Tour&quot; machen. Also Leitungen abklemmen, zweites Netzteil parallel nutzen etc. Eventuell meld eich mich auch mal in einem Forum. Eventuell haben die Experten da ja gute Hilfe für mich?&lt;/p&gt;
&lt;p&gt;Dazu sollte ich mit dem Radio auch die Endstufe ein- und ausschalten. Auch wenn das Radio-Modul auf Standby steht, ist ein leises surren zu hören weil die Endstufe ja immer aktiv ist. Die hat aber Pins für MUTE und die sollte ich wohl nutzen um bei ausgeschaltetem Radio auch die Endstufe auszuschalten.&lt;/p&gt;
&lt;p&gt;Es gibt also noch viel zu tun. Ich versuche den Wecker bis im April funktionsfähig zu haben. Denn im Mai hat meine Mutter dann Geburtstag. Das wäre ja eine gute Gelegenheit :-)&lt;/p&gt;
&lt;p&gt;Anbei ein paar Bilder vom aktuellen Stand:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/pxl202512271019287332_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;519&quot; height=&quot;317&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/pxl202512271016153682_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;517&quot; height=&quot;317&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.inspirant.de/content/public/upload/schaltplanv1_0_o.png&quot; alt=&quot;undefined&quot; width=&quot;821&quot; height=&quot;519&quot; /&gt;&lt;/p&gt;</content>
<link href="http://blog.inspirant.de/index.php?controller=post&amp;amp;action=view&amp;amp;id_post=59" />
<id>http://blog.inspirant.de/index.php?controller=post&amp;amp;action=view&amp;amp;id_post=59</id>
<updated>2025-11-09T19:01:57+01:00</updated>
<category term="Basteln"/>
</entry>
<entry>
<title type="html">Spart Euch jede Google-Rezension!</title>
<content type="html">&lt;p&gt;&lt;img class=&quot;nb-align-right&quot; style=&quot;margin-right: 10px; box-shadow: 3px 3px 10px 1px rgba(0,0,0,0.75); border-radius: 10px;&quot; src=&quot;http://blog.inspirant.de/content/public/upload/stoprating_0_o.jpg&quot; alt=&quot;undefined&quot; width=&quot;180&quot; height=&quot;180&quot; /&gt;Ich habe vor einigen Jahren auf Google Maps ein Restaurant in Donaueschingen mit nur drei von fünf Sternen bewertet. Das war der Text der Rezension:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;strong&gt;&lt;em&gt;&lt;img style=&quot;border: 1px solid #333333;&quot; src=&quot;http://blog.inspirant.de/content/public/upload/rezensiondoublesixdiner_0_o.png&quot; alt=&quot;undefined&quot; width=&quot;358&quot; height=&quot;285&quot; /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Am 20. Juni 2025 habe ich dann diese E-Mail von Google erhalten:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Sehr geehrte Damen und Herren,&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Google hat eine Beschwerde über die nachfolgende(n) URL(s) aus den folgenden rechtlichen Gründen erhalten: Diffamierung&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Nach einer Überprüfung informieren wir Sie hiermit darüber, dass wir folgende Entscheidungen getroffen haben:&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Betroffene Inhalte: Beitrag&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Rechtsprechung: Deutschland&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Verstößt anscheinend gegen: &lt;strong&gt;Diffamierung&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Folge: Zugriffsbeschränkung&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Das bedeutet, das Restaurant in Donaueschingen hat meine Rezension löschen lassen weil sie angeblich Diffamierend sei. Das ist sie ganz offensichtlich nicht (&lt;a href=&quot;https://de.wikipedia.org/wiki/Diffamierung&quot; target=&quot;_blank&quot;&gt;siehe Wikipedia zur Begriffsdefinition&lt;/a&gt;) und ich habe das am 23. Juni 2025 in meiner Antwort so begründet:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Ich stehe dazu. Als ich die Bewertung abgegeben habe, war das der genaue Sachverhalt zu diesem Zeitpunkt. Wenn Sie unangenehme Bewertungen sowieso entfernen, dann können Sie das mit den Bewertungen auch gleich sein lassen.&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Ihre Ablehnung meiner Bewertung stellt meine Integrität in Frage! Sie, oder das bewertete Unternehmen, unterstellen mir eine Fehlangabe oder sogar Verleumdung. Das ist unverschämt! Sie(!) müssten das begründen, nicht ich! Ich habe sogar Zeugen dafür, dass das der Richtigkeit entspricht!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Daraufhin bekam ich dann von Google am 25. Juni 2025 diese Auskunft:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Sie können sich auch an eine zertifizierte außergerichtliche Schlichtungsstelle oder an ein Gericht wenden. Hier finden Sie weitere Informationen zu den verfügbaren Optionen. Wenn Sie rechtliche Fragen haben oder die anderen Rechtsmittel prüfen möchten, die Sie möglicherweise nutzen können, sollten Sie sich an Ihren eigenen Anwalt wenden.&lt;/em&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;Ich müsste mir einen Anwalt suchen und potentiell Geld investieren, um die korrekte und nicht diffamierende Bewertung sichtbar zu halten!&lt;/h3&gt;
&lt;p&gt;Das werde ich natürlich keinesfalls tun, denn ich hab ja noch was anderes zu tun. Und genau das ist der Grund, warum das ganze System der Bewertungen keinen Sinn mehr macht!&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;Mit dieser Taktik bleiben dem Unternehmen nur die besten Bewertungen erhalten.&lt;br /&gt; Alle kritischen Stimmen werden getilgt.&lt;br /&gt;Dadurch verliert das gesamte System der Rezensionen seine Daseinsberechtigung!&lt;/h3&gt;
&lt;p&gt;Ich kann also nur raten sich die Zeit für Bewertungen bei Google zu sparen. Macht was besseres mit Eurer Freizeit.&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;Traut den Bewertungen nicht. Sie haben keine Aussagekraft mehr.&lt;/h3&gt;
&lt;p&gt;Im schlimmsten Fall werdet ihr vorsätzlich getäuscht!&lt;/p&gt;</content>
<link href="http://blog.inspirant.de/index.php?controller=post&amp;amp;action=view&amp;amp;id_post=57" />
<id>http://blog.inspirant.de/index.php?controller=post&amp;amp;action=view&amp;amp;id_post=57</id>
<updated>2025-06-25T11:18:07+02:00</updated>
<category term="Genervt"/>
</entry>
</feed>