
Vor ein paar Tagen wurde Picocli 4.6.2 veröffentlicht. An meinem heutigen Urlaubstag habe ich nun Zeit für einen Quicktest. Wie oben zu sehen, ist alles im TWEtherScan Projekt ok. Da habe ich auch eine große Testabdeckung der CMD-Api mit Picocli. Dieses Release fix einige Fehler auch mit dem Encoding. Aber, „This release has no breaking changes„.
Membrane Reverse Service Proxy auf dem Raspberry Pi installieren
Wer einen Reverse Proxy mit Gui, für API-Gateway, Sicherheits Proxy und HTTP-Proxy oä. benötigt, kann den Java Service Proxy auf einem Raspberry Pi 4 (Zero geht nicht) wie folgt erstellen.

Es muss nur Java auf dem Raspberry Pi installiert sein. „Membrane Reverse Service Proxy auf dem Raspberry Pi installieren“ weiterlesen
Heute vor 20 Jahren – Eclipse 2021-09: Automatisch alle Importe in einer Java-Klasse auflösen

Am 7. November 2001 hat IBM den Quellcode für die Eclipse IDE freigegeben. Wenn das nicht mal ein Grund ist diese Tastenkombination vorzustellen. Das geht schnell mit der Tastenkombination: Command + Shift + O und unter Win Ctrl + Shift + O. Wenn der Cursor auf einer rot markierten Klasse steht, kann auch nur dieser eine Import gefixt werden mit Command + Shift + M
Twitter App crash nach Monterey update nun gefixt
Meine Twitter App läuft nach dem Update auf Monterey (12.0.1) nicht mehr.

Habe solange die Browser Version verwendet. Nach dem starten „blitzt“ sie nur kurz auf und beendet sich. Habe nun eine Lösung. Bei mir hat das Löschen des Verzeichnis com.twitter.TFSFeatureSwitches.config geholfen:
|
1 |
rm -rf ~/Library/Containers/maccatalyst.com.atebits.Tweetie2/Data/Documents/com.twitter.TFSFeatureSwitches.config |
Mac Ports auf MacOs Monterey läuft nun wieder
So es läuft nun auch wieder das MacPorts auf dem MacOS Monterey. Es gibt nun die v12, die mit dem Installationsprogramm installiert werden muss.

Und es läuft wieder mit … „Mac Ports auf MacOs Monterey läuft nun wieder“ weiterlesen
Impfzertifikat validierung mit dem Raspberry Pi und Python und das zu „Don’t Shut Me Down“

Seit dem 10. Juni 2021 werden Impf-Zertifikate (sogenannte Impfbescheinigungen) in Deutschland in Impfzentren ausgegeben. Den QR-Code kann man auch mit einem Raspberry Pi validieren (von lateinisch validus „kräftig, wirksam, fest“) und den Inhalt des QR-Codes im Klartext ausgeben. Am Beispiel eines Raspberry Pi Zero W sind folgende 6 Schritte nötig.
1. Wir brauchen das Impfzertifikat, also den QR-Code als PNG oder JPG-Bild in einer Datei z.B. max-mustermann.png.
Wie z.B.:

Aber nur den QR-Code, nicht die ganze Seite des Impfzertifikats. … „Impfzertifikat validierung mit dem Raspberry Pi und Python und das zu „Don’t Shut Me Down““ weiterlesen
Quarkus UI für die einfache Bearbeitung der applications.properties
In der neuen Quarkus Version 2.4.1.Final gib es nun eine schöne Gui für die Bearbeitung der applications.properties. Man kann dort gut Parameter suchen und die Funktionen werden dort auch beschrieben.
Wenn der Quarkus Server im dev Modus gestartet wird (via mvn quarkus:dev), kann über diese URL der Service erreicht werden http://localhost:8080/q/dev/, dann auf Config Editor

und schon ist diese Seite Online. Hier am Beispiel der CO2-Ampel mit MQTT und REST-Service… „Quarkus UI für die einfache Bearbeitung der applications.properties“ weiterlesen
Quicktest: ArchUnit 0.0.22 bei ETH 4355
Vor zwei Stunden wurde eine neue ArchUnit 0.0.22 veröffentlicht. Dann mal gleich ein Quicktest. Memory leak ist nun gefixt. Und es können Unterstriche durch Leerzeichen in Testnamen ersetzt werden:
|
1 2 3 |
@AnalyzeClasses(packages = "de.wenzlaff.package") @DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class) public class SomeTestClass { ... } |
Warum keine public Klassen im JUnit 5-Test mehr?
Warum wird in JUnit 5-Test kein public mehr verwendet? „Less is more“ sagt das JUnit-5 Team und die Testklassen liegen ja eh meistens im gleichen (Test) Package. Auch ist so eine besser Kapselung möglich.

Twitter Intelligence Tool (TWINT) mit Web-Scraping-Technologie auf dem Raspberry Pi Zero nicht Pi Zero 2 W mit ARM-SoC Broadcom BCM2837 vier ARM Cortex-A53 und 64-Bit-taugliche ARMv8-Kerne
Das Twitter Intelligence Tool (TWINT) mit Web-Scraping-Technologie kann auch auf einem Raspberry Pi installiert werden.

Mit dem Web Scraper für Twitter, mit dem man Tweets von Usern des Kurznachrichtendienstes einholen kann, ohne dabei vom Twitter API eingeschränkt zu werden läuft unter der MIT-Lizenz (Anleitung Twitter-Intelligence-Tool.pdf). TWINT wurde in Python geschrieben, ist am April 2020 in Version 2.1.20 erschienen. Alle Funktionen gehen aber nicht mehr, weil sich die Twitter API geändert hat. Z.b. wirft ein twint -u programmierung –following diesen Fehler:
CRITICAL:root:twint.feed:Follow:IndexError
Aber einiges geht doch noch. Also mal installieren mit:
pip3 install twint
wenn dann nicht alles geht, hat bei mir geholfen:
|
1 2 |
sudo apt-get install libatlas-base-dev pip3 install --upgrade -e git+https://github.com/twintproject/twint.git@origin/master#egg=twint |
So ein erster Test, alle Befehle ausgeben mit twint -h …: „Twitter Intelligence Tool (TWINT) mit Web-Scraping-Technologie auf dem Raspberry Pi Zero nicht Pi Zero 2 W mit ARM-SoC Broadcom BCM2837 vier ARM Cortex-A53 und 64-Bit-taugliche ARMv8-Kerne“ weiterlesen
ua-parser-js updates garantieren keine Sicherheit und installiert Krypto-Miner auch auf Raspberry Pi? – allow a remote attacker to obtain sensitive information or take control of the system.
ETH-Kontostand via Web3j und Infura mit Java in 5 Schritten abfragen
Am 11. November letzten Jahres fürte der Ausfall von Infura dazu, dass viele zentrale Börsen die Abhebung von ETH und ERC20-Token gestoppt hatten. Zudem ließen sich Metamask, Uniswap und auch andere Anwendungen auf Ethereum nicht mehr nutzen. Infura scheint ein beliebter Dienstleister für Ethereum Nodes zu sein, auf den sich nicht nur kleinere Unternehmen und Projekte verlassen, sondern auch milliardenschwere Börsen wie Binance.
Für dieses Projekt soll dennoch mal die Infura-API verwendet werden, um den Kontostand einer ETH-Adresse zu ermitteln. Mit dem web3j Framework ist das auch in Java realisierbar. Hier der Architektur Aufbau:
Wir starten (wie immer) mit einem JUnit 5 Test: „ETH-Kontostand via Web3j und Infura mit Java in 5 Schritten abfragen“ weiterlesen
SSH Brute-Force mit Java, picocli und TWHackSSH jetzt auf Java 11 umgestellt
SSH Brute-Force mit Java. Gar nicht so schwierig wie hier beschrieben.

Die neue Version läuft jetzt nur noch mit Java 11. „SSH Brute-Force mit Java, picocli und TWHackSSH jetzt auf Java 11 umgestellt“ weiterlesen
Smart-Contract Wrapper für Java mit web3j-maven-plugin erstellen

Es muss ja nicht immer remix sein, um ein Smart-Contract zu compilieren. Es geht auch wie oben dargestellt mit einem Maven-Plugin (oder Gradle) um mit Ethereum-Netzwerk zu interagieren. Also wie können Solidity Smart Contracts kompiliert und dafür eine Java-Wrapper-Klassen dafür generiert werden?
Wir nehmen als Beispiel mein bekannter Smart-Contract Gehirn.sol der den IQ auf der Blockchain festhalten kann und mit Solidity programmiert ist und speichern in in dem src/main/resources Verzeichnis.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /** * @title Gehirn von Thomas Wenzlaff * @dev Mein Smart Contract mit solidity zum Speichern von IQ auf der Blockchain */ contract Gehirn { uint256 iq; constructor() public { // Mittelwert des IQ setzen iq = 100; } function setIQ(uint256 neuerIQ) public payable { iq = neuerIQ; } function getIQ() public view returns (uint256) { return iq; } function getBedeutung() public view returns (string memory) { if (iq <= 40) return "Keine Aussagekraft"; if (iq >= 41 && iq <= 70) return "Weit unterdurchschnittlich – Geistige Behinderung"; if (iq >= 71 && iq <= 79) return "unterdurchschnittlich"; if (iq >= 80 && iq <= 89) return "etwas unterdurchschnittlich"; if (iq >= 90 && iq <=109) return "Durchschnitt"; if (iq >= 110 && iq <=119) return "hoch"; if (iq >= 120 && iq <= 129) return "sehr hoch"; if (iq >= 130 && iq <= 159) return "hochbegabt"; if (iq > 160) return "Keine Aussagekraft"; } } |
Das Plugin wird mit mvn web3j:generate-sources gestartet und wie folgt in der pom.xml eingebunden: „Smart-Contract Wrapper für Java mit web3j-maven-plugin erstellen“ weiterlesen
de.wenzlaff.command.maven.plugin: Neue Version auf Maven Central für Java 11 veröffentlicht und das bei BTC >60k$ (Block 705403)
Das Maven Plugin zum ausführen von Linux Befehlen wurde nun auf Java 11 umgestellt und die Version nach Maven Central hochgeladen.

Wie hier beschrieben noch ein Quicktest mit der neuen Version und ein ls:
|
1 |
mvn de.wenzlaff.command.maven.plugin:de.wenzlaff.command.maven.plugin:0.0.5:info -Dcommand="ls -ll" |
Ergebnis, sieht gut aus: „de.wenzlaff.command.maven.plugin: Neue Version auf Maven Central für Java 11 veröffentlicht und das bei BTC >60k$ (Block 705403)“ weiterlesen
Neue Version 0.0.8 auf Maven Central: Internet Adressen bzw. Links in Excel-Dateien überprüfen mit dem de.wenzlaff.linkchecker
Manchmal hat man in einer Excel-Tabelle eine oder mehrere Spalten mit Internet-Adressen (URLs) deren Gültigkeit man überprüfen will, da viele Adressen sich doch schnell ändern. Dh. ist die Adresse noch erreichbar oder ist eine ungültige Adresse (Broken Links) eingegeben.
So, dann heute mal ein paar updates für den TW Excel Linkchecker. Es läuft nun unter Java 11.
Man bekommt ja beim hochladen von Maven Central einen Report. Die 100% wollte ich mal senken. „Neue Version 0.0.8 auf Maven Central: Internet Adressen bzw. Links in Excel-Dateien überprüfen mit dem de.wenzlaff.linkchecker“ weiterlesen
Rekord: 1000 Mindmaps auf kleinhirn.eu
Glückwunsch an Dr.Kleinhirn.eu für die 1000 Mindmaps. Wenn das kein Grund zum Feiern ist. Mir gefallen sie immer 😉
TWBlockchain 0.0.3 auf Maven Central mit Java 11 ohne Vulnerabilities veröffentlicht

Auf Maven Central publiziert und das bei diesen Pflegepersonalquotienten in Hannover und umzu …
Java Ethereum Wallet mit Web3j erstellen
Web3j ist ein sehr modularer und typsichere Library für Java und Android. Viele Module und Funktionen für das einfache arbeiten mit Smart-Contracts und Wallets auf der Ethereum-Blockchain (ETH), stehen bereit.

Hier nun ein kleines Beispiel, wie mit nur einer Java-Klasse und ein paar Zeilen Code ein eigenes File-Wallet im Json-Format erstellt werden kann. In einem weiteren Beitrag zeige ich dann, wie dieses File-Wallet in MetaMask importiert werden kann.
Folgende Abhängigkeiten sind in der pom.xml einzutragen, Web3j und die „alte“ (alt aber Apache) Json-Lib von Google, obwohl Web3j auch die Jackson Json Lib als transitive Abhängigkeit mitbringt. Es muss ja nicht immer Jackson sein 😉 „Java Ethereum Wallet mit Web3j erstellen“ weiterlesen


