Eine neue Version der Eclipse IDE veröffentlicht. Die Installation und Neuerungen sind ja bei Heise beschrieben. Dann mal ein Quicktest:
60 Sekunden Video: Wie können JUnit-Tests in Eclipse gestartet werden?
Raspberry Pi: No FireMotD ExportFile detected
Was kann man tun bei einem:
FireMotD: Info: No FireMotD ExportFile detected. Please generate with „sudo .\/FireMotD -S“ Fehler?
Einfach:
cd /opt/FireMotD/
sudo ./FireMotD -I -v
[sudo] Passwort für openhabian: xxxx
…
… nach ein paar Sekunden… „Raspberry Pi: No FireMotD ExportFile detected“ weiterlesen
Endlich auch in der FritzBox 7490 alle LEDs ausschaltbar (przełączalny, переключаемый, 切换)
Java 8 Quickie: Kein PermSize und MaxPermSize – by by java.lang.OutOfMemoryError: PermGen error
Ab Java 8 werden die PermSize und MaxPermSize Kommandozeilen Parameter nicht mehr verwendet. Es wird eine Warnung in der Art:
|
1 2 3 |
Java HotSpot(TM) Server VM warning: ignoring option PermSize=32m; support was removed in 8.0 Java HotSpot(TM) Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0 |
ausgegeben. Also tschüss java.lang.OutOfMemoryError: PermGen error.
Quelle: Oracle.com
Wie kann mit Java die Anzahl der Flugzeuge in der jeweiligen Höhe weltweit in real time ermittelt und mit OpenStreetMap via uMap visualisiert werden?
Wie vor zwei Jahren hier schon mal beschrieben hat sich nicht viel geändert.
Aber es gibt eine neue Version (1.3.0) der Rest API, die wir verwenden wollen. Dazu die Maven pom.xml updaten:
|
1 2 3 |
<groupId>org.opensky</groupId> <artifactId>opensky-api</artifactId> <version>1.3.0</version> |
Hier der aktuelle Lauf:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Flugbereich in Meter ; Flughöhe in Meter Parken 0 ; 303 1-500 ; 320 500-1000 ; 355 1000-2000 ; 410 2000-3000 ; 321 3000-4000 ; 310 4000-5000 ; 233 5000-6000 ; 234 6000-7000 ; 237 7000-8000 ; 306 8000-9000 ; 340 9000-10000 ; 538 10000-10500 ; 558 10500-11000 ; 897 11000-11500 ; 440 11500-12000 ; 486 12000-13000 ; 201 über 13000 ; 78 Summme ; 6559 Zeitpunkt ; Sun May 19 16:20:17 CEST 2019 Quelle ; The OpenSky Network, http://www.opensky-network.org |
Es sind also 6559 Flugzeuge weltweit in der Luft! Hier die paar Zeilen Java Code die dafür nötig sind: „Wie kann mit Java die Anzahl der Flugzeuge in der jeweiligen Höhe weltweit in real time ermittelt und mit OpenStreetMap via uMap visualisiert werden?“ weiterlesen
Java: Rätsel des Tages
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package de.wenzlaff.twpdftagger; public class RätselDesTages implements Runnable { public static void main(String[] args) { Thread t = new Thread(new RätselDesTages()); t.start(); } @Override public void run() { double d = 3.51f; float f = 1.99f; int i = (int) d + (int) f; System.out.println("Ergebnis: " + i); } } |
Was ist das Ergebnis? „Java: Rätsel des Tages“ weiterlesen
Java Sicherheits Quickie: final
Excel-Quickie: Wie wird die Anzahl Zeilen und Spalten gezählt?
Manchmal will man in Excel nur wissen wieviele Zeilen bzw. Spalten markiert sind. Früher wurde das unten rechts angezeigt. Jetzt nur noch wenn der Bereich mit der Maus markiert ist (Taste unten lassen, sonst verschwindet es wieder) und dann oben links schauen:
10z x 2S heißt so viel wie 10 Zeilen x 2 Spalten. Ganz einfach, wenn man weiß wie 😉
JUnit 5 Quickie: @CsvSource
Mit der @CsvSource Annotation in JUnit 5 kann man mit Kommaseparierte Parameter leicht und übersichtliche Tests schreiben. Die API ist aber noch im EXPERIMENTAL Status.
Hier mal ein Beispiel. Für jeden Kommandozeilen Parameter eine Testmethode schreiben:
„JUnit 5 Quickie: @CsvSource“ weiterlesen
Java Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen
Seit März 2017 gibt es noch kein neues Release von den Commons CLI. Aber warum die Commandline nicht auch damit auswerten? Macht alles viel übersichtlicher.
Das geht mit ein paar Zeilen Java Code und einen Eintrag in der pom.xml:
|
1 2 3 4 5 |
<dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.4</version> </dependency> |
Hier ein Beispiel snippets: „Java Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen“ weiterlesen
Wie wird ein Java Programm im JAR in einem Docker Kontainer mit Maven aufgerufen? Und wie werden die Docker Tools in Eclipse installiert?
Mit dem io.fabric8 Plugin kann ein Maven Projekt mit Java in Docker laufen. Dazu z.B. das Plugin wie folgt in der pom.xml eintragen.
|
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 |
<plugins> <!-- https://dmp.fabric8.io/ 0. Docker starten 1. mvn docker:build 2 mvn docker:run --> <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.27.2</version> <configuration> <images> <image> <name>${project.name}:${project.version}</name> <build> <from>openjdk:9</from> <assembly> <descriptorRef>artifact</descriptorRef> </assembly> <cmd>java -jar maven/${project.name}-${project.version}.jar -v</cmd> </build> <run> </run> </image> </images> </configuration> <executions> <execution> <id>docker:build</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> </plugin> |
Damit ein mvn install läuft muss erst die Docker.App gestartet werden:
In Eclipse läuft es dann:
Java 8 Quickie: Wie können alle bestimmten Dateien eines Verzeichnis in einer Zeile ermittelt werden?
Mit der static Methode Files.newDirectoryStream. Diese Methode gibt es schon seit Java 1.7. Hier mal ein Beispiel für alle PDF Datein im aktuellen Verzeichnis:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
List<Path> pdfDateien = new ArrayList<Path>(); String eingabeVerzeichnis = "."; try { Files.newDirectoryStream(Paths.get(eingabeVerzeichnis), path -> path.toString().endsWith(".pdf")) .forEach(path -> pdfDateien.add(path)); } catch (IOException e) { System.err.println(e); } |
Was kann man gegen eine NoClassDefFoundError (org/bouncycastel.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?
Was kann man gegen eine NoClassDefFoundError (org.bouncycastele.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?
|
1 2 3 4 5 |
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> |
Zur Laufzeit wird die Klasse benötig. Es kommt diese Exc:
Linux Quickie: Wie können alle aktive Ports mit netstat angezeigt werden?
Manchmal will man wissen, welche Ports alle auf dem Raspberry Pi verwendet werden. Das geht z.B. mit
sudo netstat -tulpen
Das kann sich auch gut merken. Einfach an die Blumen „Tulpen“ denken.
oder auch nur alle aktiven mit „Linux Quickie: Wie können alle aktive Ports mit netstat angezeigt werden?“ weiterlesen
Für den Urlaub: Free WLAN Wifi-Scanner mit LED anzeige mit Wemo (ESP8266)
Wer noch für den Urlaub einen freien Wifi-Finder braucht, kann einen Wemo (ESP8266) verwenden, es muss ja nicht immer ein Raspberry Pi sein. Einfach dieses kleinen c Programm mit der Arduino IDO in den Wemo flashen, und mit 5 Volt an einem USB Port mit Strom versorgen.
|
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
/* * Wifi Finder der alle fünf Sekunden die Wifis scannt und für jedes freie WLan einmal kurz die LED anschaltet. * * Thomas Wenzlaff (c) 2019 www.wenzlaff.info */ #include "ESP8266WiFi.h" void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); pinMode(LED_BUILTIN, OUTPUT); Serial.println("Setup durchgeführt"); printMacAddress(); } void loop() { Serial.println("Starte den Scann nach WIFI ..."); digitalWrite(LED_BUILTIN, LOW); const int n = WiFi.scanNetworks(); Serial.println("OK, Scann durchgeführt"); if (n == 0) Serial.println("Keine Netzwerke gefunden"); else { Serial.print(n); Serial.println(" Netzwerk gefunden"); for (int i = 0; i < n; ++i) { Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(" dBm)"); Serial.print(" Verschlüsselung: "); printEncryptionType(WiFi.encryptionType(i)); delay(10); } } Serial.println(""); digitalWrite(LED_BUILTIN, HIGH); delay(5000); } void printEncryptionType(int thisType) { switch (thisType) { case ENC_TYPE_WEP: Serial.println("WEP"); break; case ENC_TYPE_TKIP: Serial.println("WPA"); break; case ENC_TYPE_CCMP: Serial.println("WPA2"); break; case ENC_TYPE_NONE: Serial.println("Keine"); digitalWrite(LED_BUILTIN, HIGH); delay(500); digitalWrite(LED_BUILTIN, LOW); break; case ENC_TYPE_AUTO: Serial.println("Auto"); break; } } void printMacAddress() { byte mac[6]; WiFi.macAddress(mac); Serial.print("MAC: "); Serial.print(mac[5], HEX); Serial.print(":"); Serial.print(mac[4], HEX); Serial.print(":"); Serial.print(mac[3], HEX); Serial.print(":"); Serial.print(mac[2], HEX); Serial.print(":"); Serial.print(mac[1], HEX); Serial.print(":"); Serial.println(mac[0], HEX); } |
Der Sketch verwendet nur 266424 Bytes (25%) des Programmspeicherplatzes. Das Maximum sind 1044464 Bytes. Globale Variablen verwenden 27124 Bytes (33%) des dynamischen Speichers, 54796 Bytes für lokale Variablen verbleiben. Das Maximum sind 81920 Bytes.
Hier noch ein kleines 26 Sekunden Video um zu sehen wie der Scanner mit dem obigen Programm läuft:
Auf der Seriellen Konsolen werden übrigens die Daten auch ausgegeben, z.B.
JUnit 5 Quickie: @nested 入れ子 und public optional
Wie weit kann der Empfang von Transpondersignalen von Flugzeugen maximal gehen?
In einen Beitrag Raspberry Pi: Höhenunterschiede mit heywhatsthat.com visualisieren hatte ich vor 4 Jahren schon mal über die visualisierung der Höhenunterschiede berichtet. Mit der Seite kann aber auch die maximal mögliche Empfangsreichweite visualisiert werden. Also: Wie weit kann der Empfang von Transpondersignalen von Flugzeugen maximal gehen, wenn wir berücksichtigen das die Erde eine Kugel ist?

Das hängt ja von der Höhe der Antenne, dem Empfangsort, die Flughöhe der Flugzeuge, dem Wetter und auch der Landschaft ab. Wer direkt vor einem Berg seine Antenne hat, empfängt halt auch nicht viel. Dann gibt es auch noch andere Parameter, wie Antennenart, Empfindlichkeit, stärke des Sendesignals und andere Dinge, die wir heute hier nicht berücksichtigen wollen.
Folgende vier Schritte sind nötig:
1. Auf die Seite heywhatsthat.com gehen
2. Auf den Reiter „New panorama“ klicken:
3. Auf der Maske 1. die Latitude z.B. 52.438837 2. die Longitude z.B. 9.742816 des Antennenortes eingeben. 3. die Höhe der Antenne z.B. 54 m und „above sea level“ markieren 4. einen Titel z.B. Langenhagen www.wenzlaff.info und 5. nicht vergessen auf Metric zu schalten, dann abschließend auf 6. Submit request klicken. Dann eine Minute wegschauen, da Werbung eingeblendet wird:
4. Auf der Seite dann oben Rechts auf den Reiter „Up in the Air“ klicken „Wie weit kann der Empfang von Transpondersignalen von Flugzeugen maximal gehen?“ weiterlesen
Update PDF-Formulare automatisch auswerten – PDF-Formulare to CSV (Excel) – Version 0.0.2 veröffentlicht – nun auch für Windows!
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
Rätsel des Tages: Warum läuft der JUnit 5 Test nicht und zeigt eine Message Box an?
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























