
„Record Patterns: Wie Record Patterns das Extrahieren von Komponenten vereinfachen (2)“ weiterlesen

Wenzlaff.de – Rund um die Programmierung
mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, KI, Statistik, Krypto und Blockchain
Anleitungen zu allen Themen.
Mit der Einführung von Records hat Java einen eleganten Weg geschaffen, um unveränderliche Datenobjekte effizient und ausdrucksstark zu modellieren. Records ersetzen den klassischen, oft umfangreichen Boilerplate-Code für Datenklassen durch eine kompakte, deklarative Syntax. Sie eignen sich hervorragend für Value Objects, Data Transfer Objects (DTOs) oder als Rückgabetypen in APIs.

Was sind Java Records?
Ein Record ist ein spezieller Klassentyp, der für die Speicherung von Daten entwickelt wurde. Die Felder eines Records sind automatisch private und final, der Zustand eines Record-Objekts kann nach der Erstellung nicht mehr verändert werden. Konstruktor, Getter-Methoden, sowie sinnvolle Implementierungen von equals(), hashCode() und toString() werden automatisch generiert. „Java Records zum Tag der Arbeit (1)“ weiterlesen
Der PPLNS-Algorithmus, was für Pay Per Last N Shares steht, ist eine Methode zur Berechnung der Auszahlung in Kryptowährungs-Mining-Pools. Im Gegensatz zu anderen Methoden wie PPS (Pay Per Share) oder Proportional, belohnt PPLNS Miner nur für die letzten N Shares, die zur Lösung eines Blocks beigetragen haben. Dadurch wird das Risiko von Pool-Hopping verringert, da Miner mehr Anreiz haben, kontinuierlich im gleichen Pool zu bleiben. Die Auszahlung richtet sich nach der Anzahl der gültigen Shares, die ein Miner in einem bestimmten Zeitraum beigetragen hat. Dies fördert Fairness und Effizienz im Mining-Prozess.

Das „Bezahlung für die letzten N Anteile“ wird von vielen Mining-Pools genutzt, um die Belohnungen unter den Minern zu verteilen.
So funktioniert das PPLNS-Verfahren „PPLNS-Algorithmus (Pay Per Last N Shares)“ weiterlesen

Die Benutzeroberfläche des TWRente 1.2.1 Programms (Event-Generator) kann nun ohne Neustart dynamisch in eine von zwölf Sprachen umgeschaltet werden. Alle statischen Texte, Menüs, Labels, Schaltflächen und Hinweise erscheinen sofort in der gewählten Sprache. „TWRente 1.2.1 (Event-Generator): Unterstützung für 12 Sprachen mit dynamischer Umschaltung zur Laufzeit“ weiterlesen
In diesem Sinne eine neue Version 1.1.4, siehe auch hier.

Installation: „Release am Freitag – weil Bugs auch Wochenende machen wollen. Neue Version vom Event-Kalender-Generator 1.1.4“ weiterlesen
Das Grok-2-Modell das im August 2024 veröffentlicht wurde, bietet eine Reihe von Verbesserungen und Funktionen, unter anderem ist das Kontextfenster von 131072 Tokens möglich. Also mal in Perplexity das Grok-2-Modell für ein Java Programm-Generierung verwenden. Hier mal das Endergebnis vorweg:

Ich hatte die Idee, mal für jeden Tag, bis zur Rente einen Eintrag in meinen Kalender mit Counter eintragen zu lassen. Also z.B, in der Form „Noch 33 Tage bis zur Rente“. Rausgekommen ist dann ein universelles Programm, das auch für alle anderen Ereignisse verwendet werden kann, also z.B. noch „55 Tage bis zum Urlaub“ usw.
Ganz zum Schluss, gibt es auch das Programm zum kostenlosen Download.
Hier mal alle Schritte bzw. Promps die an die KI gingen. „Java Programm mit KI in 1 Stunde erzeugen“ weiterlesen
Ein solches Material mit Nodes wollen wir nun erstellen. „Effiziente Materialgestaltung in Blender 4.4 : Ein Blick auf ein komplexes Node-Setup zum Wochenende“ weiterlesen
Das Maven Resources Plugin wird häufig zum Filtern von Dateien verwendet, wodurch Platzhalter in Ressourcendateien durch in der pom.xml definierte Werte ersetzt werden können. Im Kontext der Ausgabe der Versionsnummer kann dieses Plugin dynamische Projekteigenschaften (Version, artifactId, groupId) während des Build-Prozesses direkt in Ressourcendateien einfügen. Die Maven-Koordinaten bestehen aus groupId, artifactId und version.

Maven verwendet Konventionen für die Namensgebung von Koordinaten. Die groupId identifiziert eindeutig eine Projektgruppe über alle anderen Gruppen hinweg. Sie sollte den Java-Paketnamensregeln folgen, beginnend mit einem umgekehrten Domainnamen, den Sie kontrollieren. Die artifactId ist der Name, unter dem das Projekt bekannt ist. Zusammen mit der groupId erzeugt sie einen Schlüssel, der dieses Projekt von allen anderen Projekten unterscheidet. Die version gibt an, um welche Version es sich handelt. „Dynamische Projekteigenschaften mit Maven Resources Plugin und Filter“ weiterlesen
Stressberry ist ein Python-Paket, das zum Testen der Kerntemperatur eines Raspberry Pi unter verschiedenen Belastungen verwendet wird und vergleichbare Diagramme erstellt. Es ist ein Tool, um zu überprüfen, ob ein Raspberry Pi unter voller CPU-Last in seiner Umgebung ohne Überhitzung und Verlangsamung laufen kann.
Stressberry check für den Raspberry Pi Zero W.

Nach der Installation, starten des Tests und erzeugen der Grafik: „Stressberry mit dem Raspberry Pi Zero W und Ergebnisse visualisieren“ weiterlesen

Mal ein Test, wie lange es dauert bis der Raspberry Pi Zero 2 W seine maximale Betriebstemperatur erreicht hat. Wie ist denn seine maximale Temperatur bzw. sein Arbeitsbereich. In der Spec vom Hersteller Datenblatt vom Pi steht: „Test bis zur maximal Temperatur des Raspberry Pi Zero 2 W oder was sind Shares“ weiterlesen
Heute ist die neue 4.4 von Blender veröffentlicht worden. Dann mal gleich geladen und für dieses Jahr das erste Bild gerendert. Quicktest: Ok, gefühlt langsamer, später mehr …

LangChain4j ist ein Open-Source-Framework, das speziell für die Integration von Large Language Models (LLMs) in Java-Anwendungen entwickelt wurde. Es bietet eine vereinheitlichte API, die den Zugriff auf verschiedene LLM-Anbieter wie OpenAI oder Google Vertex AI erleichtert. Mit LangChain4j können Entwickler Aufgaben wie das Erstellen von Embeddings, semantische Suchen, Chatbot-Implementierungen und Retrieval-Augmented-Generation (RAG) effizient umsetzen.

Um LangChain4j in einem Java-Projekt zu nutzen, müssen die entsprechenden Maven-Abhängigkeiten hinzugefügt werden und zwar so in der pom.xml: „Get Started OpenAiChatModel mit LangChain4j in Java“ weiterlesen

ESP32: Wetterdaten wie Temperatur, Luftfeuchte, Luftdruck und Kursdaten in Dollar (Euro auch möglich) von BTC, ETC, SOL, DOGE, NANO und DUINO mit User-Wallet und auch die Zeit anzeigen. Auch gibt es Benachrichtigungen per WhatsApp, Code siehe hier. „ESP32 Ticker mit WhatsApp Benachrichtigung“ weiterlesen
Ein Kühlkörper auf einem Raspberry Pi dient dazu, Wärme von den Prozessoren und anderen Komponenten abzuleiten, um Überhitzung zu vermeiden und die Stabilität zu gewährleisten. Besonders bei intensiver Nutzung wie das CPU-Mining oder Übertaktung ist eine zusätzliche Kühlung sinnvoll, da sie die Leistung stabilisiert und die Lebensdauer der Hardware verlängert. Soeben eingetroffen und montiert:

Gleicher Quicktest wie hier, auch wieder über 80 Grad: „Kühlkörper für den Pi Zero 2 W mit Quicktest: Pool-Mining von Dogecoin (DOGE)“ weiterlesen
Vor ein paar Tagen ist mein neuer Raspberry Pi Zero 2 W eingetoffen:

Bisher hatte ich jahrelang den Zero W mit 32-Bit am laufen. Dann mal gleich ein Debian in 64-Bit installiert, das habe ich hier dokumentiert. Nun mal der erste Leistungstest. Der Testfall soll sein, eine cpuminer-multi Miner installieren und Dogecoins über der ZPool zu minen. „Quicktest: Raspberry Pi Zero 2 W mit 64-Bit mit Pool-Mining von Dogecoin (DOGE)“ weiterlesen
Das aktuelle bookworm läuft auch auf einem Pi Zero 2 W, in der 64-Bit Version. Welche Schritte sind nun noch nötig für die Installation?

1. Den aktuelle Imager installieren und starten, und das 64-Bit System wählen. „Debian bookworm 64-Bit auf einem Raspberry Pi Zero 2 W installieren“ weiterlesen
Vor 8 Jahren hatte ich schon mal über das OLED Display „Don’t give up! berichtet. Und während der Pandemie diente es als CO2 Anzeige. Das habe ich nun abgebaut und durch ein paar Abfragen per REST-Api von OpenWeatherMap und Coingecko umprogrammiert. Das Ergebnis sieht man in diesem Video:
Es werden mit dem ESP32: Wetterdaten wie Temperatur, Luftfeuchte, Luftdruck und Kursdaten von BTC, ETC, SOL, DOGE, NANO mit DUINO User-Wallet angezeigt. Das Programm sieht ungefähr so aus: „ESP32: Wetterdaten wie Temperatur, Luftfeuchte, Luftdruck und Kursdaten von BTC, ETC, SOL, DOGE, NANO und DUINO mit User-Wallet anzeigen“ weiterlesen
Der Crypto-Bereich ist in Aufregung, weil Bybit von einem Ethereum-Cold-Wallet ca. 1,4 Milliarden Dollar geklaut wurden. Wie war das technisch möglich? Hier eine Erklärungsmöglichkeit:

Aber kommen wir nun zu etwas einfacheren und auch sehr interessanten Thema: Das Sierpinski-Dreieck. „Sierpinski-Dreieck: Mal was anderes als der Mega-Hack der Bybit Exchange mit ca. 401000 ETH ( ca. 1,4 Milliarden Dollar ) Verlust“ weiterlesen

Leonardo Fibonacci, auch bekannt als Leonardo von Pisa, war ein bedeutender Mathematiker des Mittelalters, der um 1170 in Pisa geboren wurde und nach 1240 verstarb.
Er ist vor allem für die Einführung des indisch-arabischen Zahlensystems in Europa und die nach ihm benannte Fibonacci-Folge bekannt. „Fibonacci-Folge mit Java“ weiterlesen
Der Status receivable transactions bei Nano-Transaktionen bedeutet, dass eine Transaktion vom Sender abgeschlossen und vom Netzwerk bestätigt wurde, die empfangenen Mittel jedoch noch nicht vom Empfänger in dessen Konto eingebucht wurden. Dies ist ein einzigartiger Aspekt des Nano-Protokolls, das auf der Block-Lattice-Architektur (gerichteten azyklischen Graphen (DAG)) basiert.
Die Block-Lattice-Architektur ist eine Datenstruktur, die Nano von klassischen Blockchain-Systemen unterscheidet. Sie ermöglicht schnelle, effiziente und gebührenfreie Transaktionen, indem sie jedem Nutzer eine eigene Blockchain zuweist. Also anders als bei Bitcoin oder Solana.

Die Funktionsweise läuft in drei Schritten: „Warum sind Nano (XNO)Transaktionen im Status „receivable transactions“ (Abholbar) oder wie läuft die Block-Lattice-Architektur“ weiterlesen

Das Mining von Dogecoin (DOGE) auf einem Raspberry Pi ist eine interessante Möglichkeit, die Grundlagen des Kryptowährungs-Minings zu erlernen. Obwohl der Raspberry Pi aufgrund seiner begrenzten Rechenleistung nicht für profitables Mining geeignet ist, bietet er eine kostengünstige und energieeffiziente Plattform für Experimente und Bildung. „Dogecoin (DOGE) auf dem Raspberry Pi im Pool minen“ weiterlesen
Vor ein paar Tagen hatte ich berichtet, das unMinerable Device wie ESPs mit geringer Hashrate sperrt. Nun gibt es eine Meldung von unmineable.com das der Support für geringe Hashrate wieder gehen soll:

Das habe ich mal mit dem Nano (XNO) Coin ausgeteste, der eine Marktkapitalisierung von über 200 Millionen Euro hat.
Es wird jetzt tatsächlich alle 5 Minuten „unMinerable nun wieder für geringe Hashrate mit ESP32 offen“ weiterlesen

Ein Dashboard für Miner wie z.B. „Duino-Coin Dashboard für Miner auf Raspberry Pi ua.“ weiterlesen
Um die Hashrate vom Duino-Coin-Mining schön auf einem Tachometer ähnlichen Diagram anzuzeigen, habe ich ein Java-Programm erstellt. Nach dem Start wird die Hashrate so angezeigt:

Das Diagramm dient dazu, die Hashrate in Echtzeit zu überwachen, in Bezug auf die Berechnungsgeschwindigkeit von Hashwerten. Es handelt sich um eine anschauliche und benutzerfreundliche Visualisierung, die den Benutzer schnell über die Leistung informiert. Intern wird auf einem REST-Service zurückgegriffen. Das ganze Projekt ist in meinem Gitlab-Repo zu finden.
Nun zur Installation und Start. „Duino-Coin Hashrate im Tacho anzeigen“ weiterlesen

FastHash-Accelerations sind Optimierungen, die die Leistung von Hashfunktionen durch spezialisierte Implementierungen und Hardwarebeschleunigung steigern. Sie werden oft in Bereichen wie Blockchain, Datenverarbeitung und Netzwerkanwendungen eingesetzt, um hohe Datenraten effizient zu bewältigen. Zudem ermöglicht die Integration von Technologien wie Rust und Python eine einfache Kompilierung und Nutzung solcher Beschleunigungen, wie bei dem Duino-Coin Minig Projekte.
Der Hauptunterschied zwischen FastHash-Accelerations und AES-256 liegt in ihrer Funktionalität und Leistung: „Duino-Coin Miner mit FastHash-Accelerations auf einem Raspberry Pi installieren“ weiterlesen

Vor etwa acht Jahren habe ich schon einmal über den ESP-32 im Zusammenhang mit NodeMCU berichtet. Vor ein paar Tagen ist mir dieses kleine, aber leistungsfähige Teil (Computer) wieder in die Hände gefallen. Dabei habe ich herausgefunden, dass man mit dem ESP-32 sogar Bitcoin minen kann! Mal was anderes als Monero. Gesagt, getan – ich habe es ausprobiert. Hier möchte ich auch einen Vergleich von drei Mining-Pools vorstellen und einen REST-Service in Java.
Habe alles mit dem MacOS geflasht, geht aber auch analog mit Windows. Also erst den Treiber installieren.
Starten der CP210x Driver App und beim Mac unter Allgemein- Anmeldeobjekte & Erweiterungen unter Treibererweiterungen aktivieren nicht vergessen. „Bitcoin Solo Lottery Mining auf einem ESP-32 mit Nerdminer und drei Miner-Pools“ weiterlesen

Die Hashrate ist ein zentraler Begriff in der Welt der Kryptowährungen und Blockchain-Technologie, insbesondere bei Netzwerken, die auf dem Proof-of-Work (PoW)-Mechanismus basieren, wie Bitcoin. Sie bezeichnet die Rechenleistung, die von Minern aufgebracht wird, um kryptografische Berechnungen durchzuführen und Transaktionen zu verifizieren. „Es muss nicht immer ein Raspberry Pi sein, auch mit ESP-8266 kann man auf der Blockchain minen oder was ist eine Hashrate“ weiterlesen
Der Scope sollte in der dependencyManagement-Sektion der pom.xml nicht angegeben werden, außer in bestimmten Ausnahmefällen.

Was ist die Funktion von dependencyManagement?
Die dependencyManagement-Sektion dient dazu, Abhängigkeiten zentral zu verwalten, insbesondere in Multi-Modul-Projekten. Sie ermöglicht: „Muss in der pom.xml von Maven in der dependencyManagement-Sektion eigentlich ein Scope wie z.b. test angegeben werden?“ weiterlesen

In einem Maven-Projekt ist es wichtig, transitive Abhängigkeiten explizit in der pom.xml zu deklarieren, wenn sie direkt im Code verwendet werden. Dies ist eine Best Practice, die aus mehreren Gründen empfohlen wird: „TOP 3: Warum transitive Abhängigkeiten im Maven explizit deklarieren?“ weiterlesen

Da wie hier schon berichtet, es keine iThoughts Mindmap Anwendung mehr gibt, habe ich noch eine Gui für die einfache Transformation von itmz-Mindmaps nach Mermaid erstellt, die nach dem starten so wie oben aussieht. „Neue Gui für TWItmzTransfomer zum Start von 2025“ weiterlesen