Get Started OpenAiChatModel mit LangChain4j in Java

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

Sierpinski-Dreieck: Mal was anderes als der Mega-Hack der Bybit Exchange mit ca. 401000 ETH ( ca. 1,4 Milliarden Dollar ) Verlust

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

Duino-Coin Hashrate im Tacho anzeigen

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:

TWHashRate

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

Wahrscheinlichkeit, Standardabweichung, Varianz und Erwartungswert mit Java und Python Baumdiagramm

Wir wollen mal den Erwartungswert die Varianz und die Standardabweichung bei diesen Werten 10 Euro mit 0,25 und -5 Euro mit 0,75 berechnen und mit einem Baumdiagramm darstellen. Die Berechnung soll auch in einem Java Programm mit einfacher GUI enden.

Also los, gegeben ist: „Wahrscheinlichkeit, Standardabweichung, Varianz und Erwartungswert mit Java und Python Baumdiagramm“ weiterlesen

Wahrscheinlichkeitsrechnung mit dem Satz von Bayes nicht nur für Versicherungen und Medizin

Der Satz von Bayes ist ein grundlegendes Theorem in der Wahrscheinlichkeitsrechnung, das den Zusammenhang zwischen bedingten Wahrscheinlichkeiten beschreibt.

Der Satz von Bayes ist ein spannendes Werkzeug aus der Welt der Mathematik, das uns hilft, Wahrscheinlichkeiten zu verstehen und zu berechnen. Er wird in vielen Bereichen angewendet, von der Medizin über Künstliche Intelligenz bis hin zu Alltagssituationen. Aber was genau besagt dieser Satz, und warum ist er so nützlich?

Was ist der Satz von Bayes? „Wahrscheinlichkeitsrechnung mit dem Satz von Bayes nicht nur für Versicherungen und Medizin“ weiterlesen

Der Brier-Score (Brier-Wert) nicht nur für Prognostiker

Der Brier-Wert ist ein effizientes und einfaches Maß zur Bewertung der Genauigkeit probabilistischer Vorhersagen. Durch die Kombination aus einfacher Berechnung und aussagekräftiger Analyse ist er ein weit verbreitetes Werkzeug in der Statistik und im maschinellen Lernen.

In der Praxis hilft er, die Qualität von Vorhersagen quantitativ zu bewerten und kann zur Verbesserung von Modellen und Algorithmen beitragen. Die Bezeichnung „Brier-Wert“ stammt von dem amerikanischen Meteorologen Glenn W. Brier, der das Maß (1950 – VERIFICATION OF FORECASTS EXPRESSED IN TERMS OF PROBABILITY) entwickelte und damit die Grundlage legte.

Der Brier-Wert wird häufig in Bereichen wie Meteorologie, Medizin, Finanzwesen, Wahlprognosen und maschinellem Lernen verwendet, um die Genauigkeit von Prognosen zu bewerten. Er ist besonders nützlich bei binären Klassifikationsproblemen, bei denen das Modell Wahrscheinlichkeiten für die Zugehörigkeit zu einer von zwei Klassen liefert (z. B. Regenwahrscheinlichkeit).

Wir erstellen zur Verdeutlichung mal ein JSon Datei mit ein paar Daten von der Reserve Bank of Australia, die bei ihren monatlichen Sitzungen Zinssätze beschließt. Die RBA lässt die Zinssätze im Allgemeinen unverändert, erhöht sie jedoch manchmal und senkt sie manchmal, je nach wirtschaftlicher Lage. Die Daten stammen aus diesem Artikel und wurden von mir in das JSon-Format überführt. „Der Brier-Score (Brier-Wert) nicht nur für Prognostiker“ weiterlesen

Hochladen von Java-Artefakten nach Maven Central

Maven Central ist das wichtigste öffentliche Repository im Java-Ökosystem und ermöglicht es Entwicklern, wiederverwendbare Komponenten einfach in ihre Projekte einzubinden.

Das Hochladen von Java-Artefakten in das Maven Central Repository ist ein essentieller Schritt, um Java-Bibliotheken und -Anwendungen einer breiten Entwickler-Community zur Verfügung zu stellen. Vor 8 Jahren hatte ich das schon mal beschrieben. Ein paar Änderungen gibt es inzwischen.

Warum sollte man überhaupt Artefakte nach Maven Central hochladen? „Hochladen von Java-Artefakten nach Maven Central“ weiterlesen

Wie können alle Flugzeuge im Umkreis von 20 km ermittelt werden?

Währe es nicht schön, wenn man auf einem Display (eines Raspberry Pi oä.), ähnlich wie am Flughafen alle Flugzeuge die in der Nähe sind, angezeigt bekommt. Dazu müsste erst ermittelt werden, welch Flugzeuge im Umkreis (Rechteck) vom Flughafen Hannover (oder jeder andere Ort) von ca. 20 km in der Luft und am Boden sind.

„Wie können alle Flugzeuge im Umkreis von 20 km ermittelt werden?“ weiterlesen

Lieben Dank für die neue ArchUnit 1.3.0 Version mit Support für Java 23

Das Java Framework ArchUnit ist ein leistungsstarkes Werkzeug für die Gewährleistung von Softwarearchitektur und Code-Qualität in Java-Projekten. Die Entwicklung von Softwareanwendungen wird immer komplexer und anspruchsvoller. Um sicherzustellen, dass Softwareprojekte effizient, skalierbar und wartbar sind, ist die Einhaltung einer soliden Softwarearchitektur und Code-Qualität von entscheidender Bedeutung. Hier kommt das Java Framework ArchUnit ins Spiel, das sich als unverzichtbares Werkzeug für die Überprüfung und Aufrechterhaltung dieser Standards etabliert hat.

ArchUnit ist ein Open-Source-Framework für statische Codeanalyse in Java-Anwendungen. Es wurde entwickelt, um Entwicklern und Architekten dabei zu helfen, die Einhaltung von vordefinierten Architekturrichtlinien und -regeln in ihrem Java-Code sicherzustellen. Das Framework ermöglicht es, Architekturvorgaben in Form von Java-Codeausdrücken zu definieren und automatisierte Tests zu schreiben, um sicherzustellen, dass diese Vorgaben im gesamten Projekt eingehalten werden. Die neue Version die vor ein paar Wochen veröffentlicht worden mal eben einem Quicktest unterziehen. „Lieben Dank für die neue ArchUnit 1.3.0 Version mit Support für Java 23“ weiterlesen

Schlüsselverwendungszwecke aus X509 Zertifikaten im PEM Format mit Java auslesen und im Klartext ausgeben

Jedes Jahr am ersten Donnerstag im Mai ist Welt-Passwort-Tag. Er dient dazu, das Bewusstsein für die Bedeutung starker Passwörter zu schärfen. Also gestern. Dann mal heute ein kleines Javaprogramm zu Entspannung das den Verwendungszweck eine Zertifikats ausgibt. Schlüsselverwendungszwecke sind wichtig für die ordnungsgemäße Verwendung und Interpretation von Zertifikaten und spielen eine entscheidende Rolle bei der Sicherstellung der Sicherheit und Integrität von Kommunikationen und Daten. In ASN.1 („Abstract Syntax Notation One“) ist das beschrieben. ASN.1 ist eine formale Sprache zur Beschreibung von Datenstrukturen und -inhalten, die unabhängig von einer bestimmten Programmiersprache oder Hardwareplattform ist. ASN.1 wird häufig in der Telekommunikations- und Netzwerktechnik sowie in der Kryptografie verwendet.

Hier ein kleines Programm, das ein JUnit-Testzertifikat (Public, PEM Format) aus dem Dateisystem einliest, und die meisten Parameter des Zertifikats auf der Konsole ausgibt. „Schlüsselverwendungszwecke aus X509 Zertifikaten im PEM Format mit Java auslesen und im Klartext ausgeben“ weiterlesen

25 Jahre Innovation: Ein Blick auf die Reise unseres Programmierblogs – mit Jubiläumsumfrage

Liebe Leserinnen und Leser,

wir stehen Heute am beeindruckenden Meilenstein des 25-jährigen Bestehens unseres Blogs – ein Vierteljahrhundert, in dem wir die Welt der Programmierung gemeinsam erkundet haben. Würde mich über die Beantwortung von nur 3 Fragen freuen. Dafür habe ich diese kurze Umfage gemacht.

Es scheint wie gestern, dass wir unsere digitale Reise begannen, und doch haben wir zusammen eine Ewigkeit an Wissen und Erfahrungen gesammelt.

Von den ersten Zeilen Code in Java bis hin zu den komplexen Netzwerken der Blockchain haben wir jede Entwicklung nicht nur beobachtet, sondern auch aktiv gestaltet. Unsere Plattform hat sich zu einem Treffpunkt für Gleichgesinnte entwickelt, die eine Leidenschaft für Technologie teilen und den unersättlichen Drang haben, Neues zu lernen und zu erschaffen. „25 Jahre Innovation: Ein Blick auf die Reise unseres Programmierblogs – mit Jubiläumsumfrage“ weiterlesen

ArchUnit Version 1.2.1 veröffentlicht für eine kontinuierliche Überwachung der Architekturstandards

Das Java Framework ArchUnit ist ein leistungsstarkes Werkzeug für die Gewährleistung von Softwarearchitektur und Code-Qualität in Java-Projekten.

Durch die Möglichkeit, deklarative Regeln zu erstellen und automatisierte Tests zu schreiben, hilft ArchUnit, konsistente und hochwertige Software zu entwickeln. „ArchUnit Version 1.2.1 veröffentlicht für eine kontinuierliche Überwachung der Architekturstandards“ weiterlesen

Warum Leerzeichen im Source-Code von Eclipse entfernen?

Die Möglichkeit, Quellcode in der Eclipse IDE zu vergleichen, ist äußerst nützlich, um Änderungen in Ihrem Code nachzuvollziehen. Das Ausschalten von Leerzeichen während des Vergleichs kann dazu beitragen, Code-Konsistenz zu gewährleisten und Platz zu sparen. Das geht jetzt ganz einfach über die Toolbar über diesen Button:

Die Eclipse Integrated Development Environment (IDE) ist eine der beliebtesten Entwicklungsplattformen für Programmierer weltweit. „Warum Leerzeichen im Source-Code von Eclipse entfernen?“ weiterlesen

Königsberger Brückenproblem oder etwas Graphentheorie mit jgrapht in Java

Das Königsberger Brückenproblem ist eine klassische mathematische Herausforderung, die im 18. Jahrhundert entstand und einen wichtigen Einfluss auf die Entwicklung der Graphentheorie hatte. Es handelt sich um eine Fragestellung bezüglich der Überquerung von Brücken über den Flüssen Pregel und seinen Inseln in der Stadt Königsberg (heute Kaliningrad, Russland). Das Problem wurde erstmals von dem Schweizer Mathematiker Leonhard Euler im Jahr 1735 gelöst und legte den Grundstein für die moderne Graphentheorie.

In Königsberg gab es sieben Brücken, die die Flüsse Pregel und die beiden Inseln verbunden haben. Die Frage war, ob es möglich war, die Stadt zu durchqueren, indem man jede Brücke nur einmal überquerte und schließlich an einem beliebigen Punkt endete.

Euler bewies, dass es keine Möglichkeit gibt, das Königsberger Brückenproblem zu lösen. Er zeigte, dass mindestens zwei der vier Landpunkte eine ungerade Anzahl von Brücken haben müssten, um eine Lösung unmöglich zu machen. Dies führte zur Entwicklung der Graphentheorie, bei der das Problem als ein Graph dargestellt werden kann, wobei die Landpunkte die Knoten und die Brücken die Kanten des Graphen sind.

Da kommt nun die Implementierung mit JGraphT in Java ins Spiel. „Königsberger Brückenproblem oder etwas Graphentheorie mit jgrapht in Java“ weiterlesen

Every main method deserves picocli!

Picocli: Eine leistungsstarke Bibliothek für die Erstellung von Befehlszeilenanwendungen. Hier habe ich schon oft davon berichtet. Da es im Juni die Version 4.7.4 gab, mal hier ein Beispiel dazu.

Die Entwicklung von Software, sei es in Form von Anwendungen oder Tools, erfordert oft die Integration von Befehlszeilenfunktionalität, um Benutzern eine effiziente Interaktion mit der Software zu ermöglichen. Eine der bemerkenswertesten Bibliotheken, die diese Aufgabe erleichtert, ist „Picocli„. Picocli ist eine Java-basierte Open-Source-Bibliothek, die Entwicklern dabei hilft, robuste und benutzerfreundliche Befehlszeilenanwendungen zu erstellen.

Was ist Picocli? „Every main method deserves picocli!“ weiterlesen