Gerade 28 Flugzeuge in EDDV (HAJ) bzw. rund um Langenhagen:
Und so sah das letzte Jahr aus:

mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, KI, Statistik, Krypto und Blockchain
Wie hier ausführlich beschrieben, hier nun die Version 0.0.2 für den Raspberry Pi als DEB Archive aber auch als RPM für RedHat und für Windows nur die JAR Datei zum kostenlosen Download twpdfformulartocsv-0.0.2.zip
Einige Funktionen sind nun NEU z.b. die Hilfe, die mit -h aufgerufen werden kann, hier aber erst einmal das BPMN zum Programmablauf:
Die Versions Ausgabe mit -v „Update PDF-Formulare automatisch auswerten – PDF-Formulare to CSV (Excel) – Version 0.0.2 veröffentlicht – nun auch für Windows!“ weiterlesen
Warum wird beim ausführen dieses JUnit 5 Tests die Fehlermeldung angezeigt, das kein Test vorhanden ist?
Es ist nicht die fehlende @Test Annotation, die wird bei einem @ParameterizedTest nicht gebraucht.
Die Lösung …
„Rätsel des Tages: Warum läuft der JUnit 5 Test nicht und zeigt eine Message Box an?“ weiterlesen
In Eclipse kann man leicht die Testabdeckung visualisieren.
Wenn man z.B. einen JUnit Test über den Menüpunkt „Coverage As – JUnit Test“ ausführt:
Alle Zeilen die grün sind, wurden durchlaufen: „Eclipse Quickie: Testabdeckung anzeigen mit „Coverage As““ weiterlesen
Installiert man mono mit sudo apt install mono-complete ist mono zwar in 30 Minuten installiert, aber nicht in der aktuellsten Version, sondern in Version 4.6.2.
Aktuell ist aber 5.18.1 wie auf der mono Seite zu sehen. Die Installation ist aber auch schnell gemacht, Key, Certificate und Repo laden: „Aktuellste Version mono auf dem Raspberry Pi installieren für C# Programme (Visual C#)“ weiterlesen
Manchmal möchte man mehrere PDF-Formulare automatisch auswerten. Z.B. von einer Umfrage. Also wie bekommt man die im PDF-Formular eingegebenen Felder aller PDF Dateien eines Verzeichnises in eine Excel CSV Datei für die Auswertung? Wie man PDF-Formulare kostenlos erstellt, hatte ich ja schon hier beschrieben.
Das geht mit dem Raspberry Pi (oder auch Mac und Windows) ganz einfach mit dem Java Tool twpdfformulartocsv das ich implementiert habe. Es muss mind. Java 8 auf dem Pi installiert sein. Das kann man mit java -version überprüfen. Es kommt auf dem Pi Zero bei mir
|
1 2 3 |
openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13) OpenJDK Client VM (build 25.181-b13, mixed mode) |
Hier nun die Schritte, um es zu installieren.
„PDF-Formulare automatisch auswerten – PDF-Formulare to CSV“ weiterlesen
Und nicht vergessen die Uhr auf dem Raspberry Pi umstellen, wie hier (MESZ, MEZ, UT, UTC, GMT – Raspberry Pi: Wie kann die Sommerzeit bzw. Winterzeit überprüft und die Zeitzone gestellt werden?) beschrieben.

Manchmal will man auf den Raspberry Pi ein rpm von Red Hat auf einem Debian installieren. Wenn es auch selten vorkommt.
Man kann dann mit alien das Package Format konvertieren. Auf dem Raspberry Pi installieren wir die aktuelle Version aus dem Jahre 2016 mit einem sudo apt-get install alien und schon ist die 8.95 Version installiert.
Wie kann nun ein rpm in das deb Format konvertiert oder auch gleich installiert werden? Dazu einfach mit sudo das rpm Archive aufrufen. Hier mal ein Beispiel mit dem twpdfformulartocsv-0.0.1-1.noarch.rpm „Mit alien von rpm nach deb und zurück“ weiterlesen
Vor 20 Jahren ging wenzlaff.de ans Netz, wie hier schon mal berichtet.
Aber genau heute am 28.3.2009 also vor 10 Jahren wurde der erste WordPress Blog Eintrag hier auf wenzlaff.info veröffentlicht.
Wie die Zeit vergeht.
1226 Beiträge sind hier zu finden.
Zu Themen wie Java, Eclipse, Raspberry Pi, ESP32, SDR, Linux, Arduino und Planespotting … „20 Jahre vs. 10 Jahre WordPress Blog – wenzlaff.de – 1226 Beiträge“ weiterlesen
Vor einiger Zeit hatte ich schon mal beschrieben, wie PDF-Formulare mit dem kostenlosen OpenOffice erzeugt werden können. Wie kann nun aber eine solche Auswahlbox mit Werten in einem PDF-Formular eingefügt werden?
Der Trick ist im Bearbeitungsmodus mit einem Doppelklick den Eigenschaften Dialog öffnen: „OpenOffice Quickie: Wie können Auswahlboxen für PDF-Formulare mit mehreren Werten erstellt werden?“ weiterlesen
PDF Formulare sind oft sehr nützlich. Man braucht nicht das kostenpflichtige Adobe Tool dafür. Das geht gut mit dem kostenlosen OpenOffice. Mit Word geht es bisher nicht.
Wenn das OpenOffice installiert ist, ein neues Dokument öffnen und zuerst die beiden Symbolleisten über das Menü Ansicht – Symbolleisten – Formular-Entwurf und Formular-Navigation einblenden:
Diese Leisten erscheinen dann unten im Dokument. „Wie können kostenlos PDF Formulare schnell mit OpenOffice erstellt werden?“ weiterlesen
Das Update auf die aktuelle Version geht auch über den Menüpunkt „Help“ -> „Check for Updates …“:
Das ganze läuft aber nur, wenn auch die Update Site aktiviert ist: „Eclipse update in 15 Min auf 2019-03 -> ohne Neuinstallation“ weiterlesen
Was ist neu?
-Polyglot language support
-First class support for Java, JavaScript, C/C++, PHP, Rust, and others Latest Java™ versions
-Support for building Java™ 11 and Java EE™ 8 based applications
-Improved performance
-Startup time has received a boost this release
-Language Server support
-Solid infrastructure to support integration of language servers
-Proven extensibility
-A huge variety of platform plug-ins
–Free and open source
-Free and open source released under the terms of the Eclipse Public License 2.0
Download hier oder eine schöne Zusammenfassung mit Videos.
Manchmal will man Verzeichnisse und Dateien vergleichen. Wie kann auf einem Raspberry Pi eine sortierte Komma separierte Liste (CSV, Excel) aller Dateien und Verzeichnisse erstellt werden?

Das geht auf der Komandozeile mit find, stat, format und sort:
|
1 |
find . -exec stat --format='%n,%a,%U,%G,' {} \; | sort > dateiliste.csv |
Wir suchen also mit find in dem Wurzelverzeichnis (.) und führen für jede Datei und jedes Verzeichnis ein Systemstatus abfrage mit stat aus. Dann geben wir die Parameter formartiert mit , aus n=Dateiname, a=Rechte, U=User, G=Gruppe. Das alles wird dann sortiert in die dateiliste.csv geschrieben.
Wir erhalten dann z.B. eine solche Liste: „Linux Quickie: Wie kann eine sortierte CSV Datei mit Dateinamen, Rechten und Gruppe erzeugt werden?“ weiterlesen
Wie hier beschrieben kann das rtl_map Programm für die Darstellung der Frequenz verwendet werden.
Jetzt gibt es in dem Programm rtl_map seit ein paar Tagen einen neuen Parameter -n. Mit diesem kann nun die Anzahl der lese Vorgänge angegeben werden. Ok, dann mal eine Messung 10 Wiederholen (ca. 5000 Werte) und in eine Datei schreiben:
rtl_map -f 1090000000 -D -C -n 10 – > capture.dat
und dann die Grafik wie oben mit Gnuplot erzeugen.
|
1 2 3 4 5 6 7 |
set title "Frequenzdiagramm 5000 Messungen mit 1090 MHz mit rtl-map (www.wenzlaff.de)" set ylabel "Amplitude (dB)" set xlabel "Anzahl Messungen (x10) mit Frequenz 1090 MHz" set terminal png set xrange [0:500] set output "capture-1090.png" plot "capture.dat" using 1:2 title "DVB-T rtl Sensor" with lines |
Hier noch alle Parameter von rtl_map:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
rtl_map, a FFT-based visualizer for RTL-SDR devices. (RTL2832/DVB-T) Usage: [-d device index (default: 0)] [-s sample rate (default: 2048000 Hz)] [-f center frequency (Hz)] * [-g gain (0 for auto) (default: ~1-3)] [-n number of reads (default: int_max.)] [-r refresh rate for -C read (default: 500ms)] [-D don't show gnuplot graph (default: show)] [-C continuously read samples (default: off)] [-M show magnitude graph (default graph: dB)] [-O disable offset tuning (default: on)] [-T turn off log colors (default: on)] [-h show this help message and exit] [filename (a '-' dumps samples to stdout)] |
Wie können die Testmethoden einer Klasse automatisch in zufälliger Reihenfolge ausgeführt werden? Ab JUnit 5.4 geht das mit der Annotation @TestMethodOrder. Es wird nur die @TestMethodOrder(MethodOrderer.Random.class) Annotation an der jeweiligen Test-Klasse benötigt. Die Zufallsfunktion wird mit Hilfe der System.nanoTime() Funktion erzeugt. Also ein Pseudozufall. Aber für Test reicht es.
Wir verwenden diese Testklasse: „JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in zufälliger Reihenfolge (Pseudozufall) ausgeführt werden?“ weiterlesen
Wie können die Testmethoden einer Klasse automatisch in alphabetischer Reihenfolge ausgeführt werden? Ab JUnit 5.4 geht das mit der Annotation @TestMethodOrder
Es wird nur die @TestMethodOrder(MethodOrderer.Alphanumeric.class) Annotation an der jeweiligen Test-Klasse benötigt. Mit dem Alphanumeric wird die Reihenfolge auf alphabetischer gesetzt. „JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in alphabetischer Reihenfolge ausgeführt werden?“ weiterlesen
Wir wollen so ein Darstellung von 500 Messungen bei 1090 MHz mit einer Sample-Rate von 2048000 Hz erstellen (Messung 2.3.2019, 12:05 Uhr in Langenhagen):
Zuerst holen wir uns den Quellcode des rtl_map und bauen uns die Anwendung. Dann installieren wir das Programm.
Entweder diese Befehl ausführen oder aber laden und das Script ausführen. „Graphische Darstellung des 1090 MHz Frequenzspektrum mit SDR auf einem Raspberry Pi mit rtl_map und Gnuplot in EDDV“ weiterlesen
Wie werden automatische Inhaltsverzeichnisse erstellt, wie z.B. in diesem Raspberry Pi Beitrag hier. An die Stelle wo das Verzeichnis hinkommen soll einfach das TOC Kommando mit eckigen Klammern angeben:
|
1 |
[TOC] |
Dann werden automatisch alle Überschriften die mit
|
1 |
<h1> und </h1> |
usw. formatiert werden ergänzt.
Voraussetzung ist aber das installierte Plugin Table of Contents:
Das kann dann über den Menüpunkt toc+ aufgerufen werden:
Hier dann noch ein paar Einstellungen: „WordPress Quickie: Wie werden automatische Inhaltsverzeichnisse erstellt?“ weiterlesen
Wie hier beschrieben, in Kurzfassung mit ein paar weiteren Details.
Es werden aber ein paar Stunden für Download und erstellen der SD-Karte benötigt. Auch die erste init. für NodeRed usw. benötigt etwas Zeit (ca. 2-4 Stunden). Aber man kann in der meisten Zeit ja auch andere Dinge machen … :
Normal sollte die Testreihenfolge ja nicht festgelegt werden. Da eine Test-Methode nicht von einer anderen abhängig sein sollte.
Manchmal wird das aber dennoch benötigt. Das geht jetzt ab JUnit 5.4 ganz einfach mit der @Order Annotation.
Hier eine Beispiel Klasse. „JUnit Tests nun mit Methoden Reihenfolge via @Order Annotation möglich“ weiterlesen
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@Test public void ermittleJavaVersion() { assertEquals("1.8.0_131", System.getProperties().get("java.version")); } @Test public void ermittleJavaHome() { assertEquals("/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre", System.getProperties().get("java.home")); } |
Früher konnte man sich die VPN.mobileconfig Datei einfach (aber unsicher) per E-Mail zusenden und installieren. Das geht nun nicht mehr.
Jetzt kann die Datei z.B. auf die Cloud (verschlüsselt) geladen und von dort mit dem Safari Browser per Web-Dav geöffnet werden. Das geht so:
1. Die VPN.mobileconfig (xml Textdatei) mit den kostenlosen Apple Configurator 2 oder per Hand erstellen (siehe hier auf dem Blog).
2. An die Cloud mit Webdav zugang anmelden (mit User und Passwort) und die VPN.mobileconfig kopieren z.B. nach https://webdav.mediencenter.t-online.de

„Wie kann ein VPN-on-Demand Profil auf das neuen IPhone X bzw. IPad Pro mit webdav installiert werden?“ weiterlesen
Beim Raspberry Pi und anderen Rechnern reicht ein:
|
1 |
curl wttr.in |
von der Kommandozeile oder im Browser:
Mit Excel kann schnell ein Netz oder Radardiagram erzeugt werden. Hier mal ein Beispiel Diagramm.
Wir nehmen mal von Wikipedia (https://de.wikipedia.org/wiki/Deutsches_H%C3%A4mophilieregister) ein paar Beispiel Daten für eine Beispieltabelle (Hämophilie Mindmap).
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Gesamtzahl aller gemeldeter Patienten in Deutschland Jahr Hämophilie A Hämophilie B Willebrand-Jürgens-Syndrom 2008 2995 537 984 2009 3156 567 1094 2010 3400 620 1231 2011 3483 612 1659 2012 3706 711 2124 2013 3823 707 2296 2014 3991 709 3515 2015 3690 673 3930 2016 2228 413 3532 2016 Vorläufig |
Die Tabellen-Daten fügen wir in ein Excel Blatt ein „Excel Quickie: Wie kann ein Netzdiagramm oder Radardiagramm mit Excel erzeugt werden?“ weiterlesen
Das geht nicht nur in der aktuellen Eclipse Version, sondern schon etwas länger.
Einfach die folgenden drei Tasten drücken: Alt + Cmd + Pfeil nach unten und schon wird die Zeile wo der Cursor steht kopiert.
Das geht für Java

und auch für XML usw. „Wie kann eine Zeile in Eclipse schnell dupliziert werden?“ weiterlesen
Also mal testen ob alle läuft? Kleine Änderung in der pom.xml
|
1 2 3 4 |
<junit.version>4.12</junit.version> <junit.jupiter.version>5.4.0</junit.jupiter.version> <junit.vintage.version>5.4.0</junit.vintage.version> <junit.platform.version>1.4.0</junit.platform.version> |
Dann mal zwei Projekt umstellen. Siehe da, die Buildpipeline laufen auch noch wie erwartet:
und die auch „Letzte Woche wurde das JUnit 5.4.0 Release veröffentlicht“ weiterlesen
Wir wollen nun mal auf dem Raspberry Pi ein C Programm mit dem Make-Tool cmake auf dem Pi compilieren und linken.
Gemäß Wikipedia ist CMake (cross-platform make) eine plattformunabhängiges Programmierwerkzeug für die Entwicklung und Erstellung von Software.
Dazu erstellen wir ein neues Verzeichnis und legen dort die Builddatei CMakeLists.txt an und führen cmake aus.
Also 1. ein Verzeichnis anlegen und dahin wechseln
|
1 2 |
mkdir cmake-beispiel cd cmake-beispiel |
2. Erstellen einer C Beispiel Datei start.c mit folgenden Inhalt:
|
1 2 3 4 5 6 |
#include <stdio.h> int main() { printf("Hallo Thomas, cmake ist cool!"); return 0; } |
3. Erstellen einer CMakeLists.txt Datei. Achtung Groß und Kleinschreibung genau so. Mit folgenden Inhalt:
|
1 |
add_executable(startthomas start.c) |
Diese Anweisung besagt, das die start.c compiliert werden soll und das das Programm dann startthomas heißen soll.
4. Nun können wir das Projekt konfigurieren mit cmake .
5. Das Projekt übersetzen mit make
6. Nun können wir das erzeugte Programm startthomas ausführen ./startthomas
Hier das Ergebnis: „Quick-Howto: Erzeugung von Makefiles mit cmake auf dem Raspberry Pi“ weiterlesen
Im Debian Repo liegt für cmake nicht die neueste Version. Für ein Projekt brauche ich aber cmake mind. 3.13. Deshalb hier eine Anleitung wie die neueste Version von cmake selbst erstellt und installiert werden kann.
Deshalb erst mal die evl. installierte Version von cmake ausgeben:
|
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 |
cmake --version # Ergebnis cmake version 3.7.2 # Ok, wir müssen uns die aktuelle Version holen und selbest compilieren. # Das dauert auf dem Pi aber ca. eine Stunde. mkdir Download-cmake cd Download-cmake # Gewünschte Version von https://cmake.org/files/ holen, in diesem Beispiel 3.13.4 wget https://cmake.org/files/v3.4/cmake-3.13.4.tar.gz # Archive entpacken tar -xvzf cmake-3.13.4.tar.gz # In das Verz. wechseln cd cmake-3.13.4/ # Konfigurieren sudo ./bootstrap # make und install ... eine Stunde später ... sudo make sudo make install # Nun checken wir die Intallation cmake --version # Ergebnis # cmake version 3.13.4 |