Nach meinem letzten Artikel zum Thema dWb+ habe ich dieses Jahr wieder einmal die Dokumentation kritisch gelesen und festgestellt, dass ein in den letzten Jahren immer mehr ausgebautes Feature dort noch nicht auftauchte.
Prinzipiell ist es ja so, dass es dWb+ erlaubt, beliebige bereits bestehende JavaBeans als Module benutzen zu können, ohne an ihnen Änderungen durchführen zu müssen - das ist einer der großen Vorteile der Lösung. Allerdings sind diese Module dann nicht für Parallelität oder Nebenläufigkeit optimiert - sie laufen alle im selben Thread und das kann zu Performanceengpässen führen.
Nun könnte man diese Module alle mühsam in ein Korsett wie das in diesem Kapitel beschriebene zwängen und immer den gleichen Boilerplate Code schreiben, um aus einer vorliegenden Implementierung eine threaded Variante zu erstellen. Genau vor dieser Art von fehleranfälliger, langwieriger Arbeit möchte aber dWb+ den Anwender schützen - was also ist zu tun?
Man kann feststellen, dass sich manche Funktionalitäten als semantische Kategorien begreifen lassen - so existieren etwa Generatormodule - Module, die auf ein beliebiges Eingangssignal hin ein Datum eines festgelegten Datentyp entsprechend ihrer internen Konfiguration als Ausgabe erzeugen. Eine weitere Kategorie sind Filter: Diese verfügen über einen Eingang, der Daten eines bestimmten Typs empfängt und diese einer - der inneren Konfiguration folgenden - Verarbeitung unterzieht und das Reultat (vom selben Fatentyp wie der Input) am Ausgang zur Verfügung stellt. Eine weitere solche Kategorie sind eindimensionale Funktionen - Diese Kategorie bildet klassische mathematische Funktionen ab und ist somit ein Spezialfall der Filtermodule. Und schließlich sei hier noch die aktell letzte solche Kategorie erwähnt: Validatoren nehmen einen oder mehrere Inputs spezifischer Datentypen und führt darauf eine - der inneren Parametrierung folgende - Validierung der Eingangsdaten aus - Ergebnis ist ein boolescher Wert abhängig davon, ob die Validierung erfolgreich war.
Für solche Kategorien existieren Annotations und entsprechende AnnotationProcessor-Klassen. Der Anwender muss lediglich die Java-Klassen, für die er threaded Module wünscht mit einer entsprechenden Annotation versehen und diese noch mit einigen wenigen Argumenten parametrisieren. Alles weitere übernimmt der AnnotationProcessor: Er erstellt automatisch eine entsprechende Wrapper-Klasse, die dann als Modul in dWb+ genutzt werden kann.
Die ausführliche Dokumentation mit Beispielen findet man wie immer im Dokumentationsprojekt als PDF oder EPUB.
07.02.2025
Da ich mich in den letzten Wochen wieder einmal mit Javas Sicherheitsmechanismen und dem Erzeugen von Animationen beschäftigt habe, habe ich den Entschluss gefasst, die bisher mittels JMF AVIs in dWb+ zu erstetzen - nur wodurch?
07.02.2025
Ich hatte neulich hier einen Link zu Multi-Scale Truchet Patterns und habe seitdem den Algorithmus mit java umgesetzt und ihn als Teil meines Projekts zur Testdatengenerierung veröffentlicht.
Open Source Switch Firmware
05.09.2020
Einige Links zum Thema...
WeiterlesenAndroid Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Java Java. Komponenten Jupyter JupyterBinder Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Präsentationen Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Im vorhergehenden Artikel zum Thema Inventarisierung habe ich beschrieben, wie ich Rechner und deren Komponenten für meinen Haushalt/Labor mit einer sehr schnellen Lösung umfassend dokumentiert habe. Diese Beschränkung auf Rechner reicht natürlich nicht aus.
WeiterlesenIch habe wieder einmal einige Änderungen und Verbesserungen an den Komponenten ausgeführt, die Anwendungen wie der sQLshell oder dWb+ zugrundeliegen.
WeiterlesenIch habe bereits seit einiger Zeit immer mal wieder vor, die in meinen Bastelschränken und auf meinem Schreibtisch vorhandenen Hardwarekomponenten sauber zu inventarisieren. Alle meine bisherigen Versuche schlugen jedoch fehl, da ich mich bisher darauf fokussierte, eine self-hosted Anwendung dafür zu finden. Allerdings sind mir die üblichen Verdächtigen entweder zu schwergewichtig oder zu unflexibel. Ich kam aber auf eine (für mich) neue Idee:
WeiterlesenManche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen Codeberg-Repositories findet man hier.