Java 8 Quickie: Zeitzonen Umwandlung mit ZonedDateTime: UTC nach Europas Zeitzone

Zeitzonen

Manchmal hat man Zeitangaben z.B. aus IOT Geräten in der Form eines Strings „2018-12-10 12:14:15 UTC“. Nun müssen die Zeitangaben die in UTC verwendet werden in die lokale Zeitzone für Europa/Berlin umgewandelt werden. Das ist in der Regel eine Stunde plus. Wie geht das aber mit der Java 8 API?

„Java 8 Quickie: Zeitzonen Umwandlung mit ZonedDateTime: UTC nach Europas Zeitzone“ weiterlesen

Java 8 Quickie: Alle Zeitzonen mit getAvailableZoneIds mit Java ermitteln

Zeitzonen?

Wie können alle Zeitzonen mit Java ermittelt werden? Das geht mit der Methode getAvailableZoneIds der Klasse ZoneId. Die Methode ist thread save und der Set kann zukünftig noch erweitert werden. Bei mir ist er heute 600 Einträge (IDs) groß, wie dieser JUnit Test zeigt:

@Test
public void testGetAlleZeitzonen(){
List zeitZonen = new ArrayList<>(ZoneId.getAvailableZoneIds()); zeitZonen.stream().sorted().forEach(zone -> System.out.println(zone)); assertEquals(600, zeitZonen.size());
}

Das sind die Zeitzonen IDs:

„Java 8 Quickie: Alle Zeitzonen mit getAvailableZoneIds mit Java ermitteln“ weiterlesen

Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions und Filter

Wenn man mit Lambda über eine Collection iteriert, kann man auch gleich einen Filter verwenden. Was das mit der 20 zu tun hat, kommt am 1.12.2018 hier auf dem Blog 😉

Jetzt aber hier erst mal ein Beispiel zum Filter:

Und die nötige Mindmap BE Klasse: „Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions und Filter“ weiterlesen

Wie kann eine Vaadin Spring Boot Anwendung in 15 Minuten auf JUnit 5 umgestellt werden?

Wie kann eine Vaadin Spring Boot mit Hibernate Anwendung auf JUnit 5 für Eclipse Oxygene 3A umgestellt werden?

1. Deaktivieren wir die JUnit (4.12) Libs in der pom.xml:

2. Fügen wir die nötigen JUnit 5 Libs in der pom.xml hinzu:

3. Wir fügen JUnit 5 dem Buildpfad hinzu:

Es sieht dann so aus:
„Wie kann eine Vaadin Spring Boot Anwendung in 15 Minuten auf JUnit 5 umgestellt werden?“ weiterlesen

Wie können UML 2.0 Klassen-Diagramme mit Spring STS (Spring Tool Suite 3.9.4) erstellt werden?

Auch in der aktuellen STS Version, der Spring IDE kann das kostenlose UML Plugin installiert werden.

Es ist super fürs Reverse Engineering, um schnell einen Überblick zu erhalten.

Das Eclipse-Plugin ObjectAid installieren über die Install URL

http://www.objectaid.com/update/current

Dann einfach ein neues Objectaid Diagramm erstellen:

Auf dem Dialog ein paar Einstellungen oder die default belassen: „Wie können UML 2.0 Klassen-Diagramme mit Spring STS (Spring Tool Suite 3.9.4) erstellt werden?“ weiterlesen

One to One mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML

Manchmal braucht man eine „One to One“ Verbindung zweier BEs mit JPA (Java Persistence API) für Spring Boot (2.0.2) (JEE mit EJB 3.0 ist ähnlich, nur andere Annotationen).

Z.b. arbeiten ein Arzt in der Regel in einem Krankenhaus. Wenn sie nicht gerade als Belegärzte tätig sind. Also „One to One„:

Hier nun eine Kopiervorlage um diese wiederkehrende Verbindung anzulegen: „One to One mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML“ weiterlesen

Monitoring: Wie laufen Linux Performance Messungen mit vmstat auf dem Raspberry Pi? Es muss ja nicht immer top sein!

Mit vmstat (virtual memory statistics) können leicht folgende Werte fast in Echtzeit angzeigt werden:
Anzeige der Prozesse, Speicher, Paging, Block IO und CPU Aktivität …

Hier die Anleitung, die mit vmstat -h angezeigt werden kann:

„Monitoring: Wie laufen Linux Performance Messungen mit vmstat auf dem Raspberry Pi? Es muss ja nicht immer top sein!“ weiterlesen

Glances, es muss ja nicht immer nmon oder top sein also „An Eye on your system“

Um die Systemprozesse zu überwachen gibt es auch für den Raspberry Pi eine Menge Tools. Die Features Liste von Glances ist umfangreich:

Das Glances kann schnell installiert werden mit:

Dann starten mit glances und schon erscheint das Monitoring Tool:


„Glances, es muss ja nicht immer nmon oder top sein also „An Eye on your system““ weiterlesen

9. Jubiläum (lat. annus jubilaeus: Jubeljahr: Plural: Jubiläen): Wie werden in Excel (mit Mac) Spalten verbunden, so das der Wert und nicht die Formel in der Zielspalte vorliegt?

Am 28.03.2009, also genau heute vor 9 Jahren ist dieser Blog entstanden. Wie die Zeit vergeht. Jubiläum leitet sich ursprünglich aus dem alttestamentlichen „Jubeljahr“ (auf Hebräisch „Yovel“) her.

Dies ist heute der 1053. Beitrag. Vielen Dank an alle Leser.

Als Bonus, mal kein Raspberry Pi Thema, sondern mein Freund Excel.

Manchmal will man z.B. zwei Spalten wie die Vorwahl und die Telefonnummer in einer neuen Spalte zusammen verbunden haben.

Das geht in zwei Schritten, erst die beiden Spalten mit der Funktion „verketten“ verbinden und dann den Bereich kopieren und wieder als Wert einfügen.

Hier nun ein Beispiel, wir haben eine Tabelle mit Vorwahl und Tel. Nr.:


„9. Jubiläum (lat. annus jubilaeus: Jubeljahr: Plural: Jubiläen): Wie werden in Excel (mit Mac) Spalten verbunden, so das der Wert und nicht die Formel in der Zielspalte vorliegt?“ weiterlesen

In 15 Minuten zum eigenen C++ Programm zum ausgeben der Systemtemperatur des Raspberry Pi Zero W – Teil 2

In der ersten Lektion haben wir in 15 Minuten gesehen wie wir checken können ob C++ auf dem Raspberry Pi installiert ist und haben unser 1. eigenes C++ Programm auf dem Pi mit der Kommandozeile erstellt, compiliert und ausgeführt.

Nun wollen wir auf dem Pi, in 15 Minuten die erste Klasse erstellen, da wir ja Objektorientiert programmieren wollen. Dazu erstellen wir mit dem vi ein einfache Klasse zum ausgeben der Temperatur des Pi.

Wir nennen die Klasse Temperatur. Damit wir nicht alles in einer Datei haben, erstellen wir für jedes Objekt eine eigene Datei. Also zuerst die Deklaration in der Temperatur.h:
„In 15 Minuten zum eigenen C++ Programm zum ausgeben der Systemtemperatur des Raspberry Pi Zero W – Teil 2“ weiterlesen

QI-Standard (induktive Energieübertragung) – Low Power – für Handys usw.

Nun ist mein erstes QI-Ladegerät aus China angekommen. Dann kann ja jetzt drahtlos geladen werden! Den Qi-Standard gibt es ja schon länger. Und für 2,39 Euro inkl. Versand und CE Zeichen kann man nicht meckern.

Funktion ldt. Hersteller ua:

for iPhone: for iPhone 8, for iphone 8 plus, iphone x
for Samsung: for Note 8 Note 7 Note 5, for S6, for S6edge, for S6 edge Plus, for S7
for Nokia: for Lumia 822 830 920 928 929930 1020 1520
for HTC: for Droid DNA, for Butterfly, forInceredible 4G LTE, for 8XT 8X
for LG: for D1L, for LTE2, for G Pro
for Google: for Nexus 4 5 6, for Nexus 7 HD

Spezifikation:

1, the input voltage: DC4.3V ~ 5.5V / 1.5 ~2A, beyond this range voltage alarm and stop charging
2, the output voltage: 5V ± 0.1V,
3, the charging current: 500mAh-1000mAh
4, charging power: 5W Max
5, the conversion efficiency: more than 73%
6, the transmission distance: 10mm,recommended transceiver pitch 2mm ~ 4mm
7, standby power consumption: Average power consumption is less than 50mW
8, size:69*10mm (Diameter*Height)
9, color: Black/ White with black base/ Red with black base/ Blue with black base/ Orange with black base

Package Including:
1* Qi Wireless Charger Pad
1* USB Charging Cable

Ok, mal eben nachmessen, im Leerlauf:

Ok, das ist nichts, und kann immer am Netz bleiben. Und unter Last mit Handy: „QI-Standard (induktive Energieübertragung) – Low Power – für Handys usw.“ weiterlesen

ESP-32S NodeMCU Development Board 2.4GHz WiFi+Bluetooth

Aus der Bucht eingetroffen, ESP32 ESP-32S NodeMCU Development Board 2.4GHz WiFi+Bluetooth Dual Mode.

Der ESP32 hat 2,4-GHz-WLAN und Bluetooth in Low Power 40-nm-Technologie.

Der Stromverbrauch ist mit 56 mA sehr gering. Die Leistungsaufnahme mit dem Blink Testprogramm liegt bei 283 mW. Die Vorderansicht mit der Antenne oben und dem USB Anschluss unten: „ESP-32S NodeMCU Development Board 2.4GHz WiFi+Bluetooth“ weiterlesen

Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)

Wollte mal mein REST Testprogramm auf JUnit 5 umstellen. Die neuen JUnit 5 Feature sind schon sehr interessant. Vor ein paar Tagen ist der neue M6 veröffentlicht worden (JUnit 5.0.0-M6 = Platform 1.0.0-M6 + Jupiter 5.0.0-M6 + Vintage 4.12.0-M6). Auch ist die Architektur nun grundlegend geändert. Und evl. will man schon mal die Neuen Features testen. Es gilt nicht: „Wer testet ist Feige ;-)“

Was ist da so nötig?

JUnit 5 braucht zur Laufzeit Java 8.

Versionen setzen

Die neuen Abhängigkeiten hinzu: „Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)“ weiterlesen

Fluglärm Visualisierung in Hannover und Frankfurt

Es gibt vom Flughafen Hannover (HAJ, EDDV) eine sehr gute Seite um den Fluglärm anzuschauen. Es gibt acht Messstationen die den Lärm in db(A) anzeigen. Auch mit guter History die man bis zu 25 Mal schneller abspielen kann. Die aktuellen Werte sind 20 Minuten zeitversetzt. Die Grünen Punkte sind die Messstationen:

Das jeweilige Diagramm wird oben links angezeigt, wenn man ein Flugzeug mit der Maus selektiert hat.

Hier noch ein paar Einstellungen: „Fluglärm Visualisierung in Hannover und Frankfurt“ weiterlesen

Suche alle Dateien rekursive mit Umlaute im Dateiname auf Win, Mac, Linux und Raspberry Pi und liefere die Anzahl

Manchmal will man oder muss man alle Dateien, die einen Umlaut im Dateinamen haben ermitteln. Mir ging es so, als in der Dropbox Dateien mit Umlauten bei einem Programm bei der Synchronisation Probleme machte.

Dann sollte das auch noch auf Mac OS X, Windows, Linux und auf einen Raspberry Pi mit Debian laufen. Also mal ein kleines Java Programm geschrieben, das alle Dateien mit Umlaute (äöüÖÄÜ) im Dateinamen und auch die Anzahl ausgibt.

Das Programm läuft unter Java, da es ab Version 1.7 eine neue Klasse SimpleFileVisitor gibt, von der man leicht erben kann habe ich die mal verwendet. Man kann aber auch selbst das Interface FileVisitor implementieren.

Einfach die Datei laden und das Zip-Archive entpacken. „Suche alle Dateien rekursive mit Umlaute im Dateiname auf Win, Mac, Linux und Raspberry Pi und liefere die Anzahl“ weiterlesen

Raspberry Pi Kaffeezeit oder der „Kaffee (قهوة) ist fertig“

Peter Cornelius singt:
„Der Kaffee ist fertig,
klingt das net unheimlich zärtlich.
Der Kaffee ist fertig,
klingt das net unglaublich lieb.“

In diesem Sinne. Wenn ein Kaffee (кофе) gekocht wurde, werde ich von meinen Raspberry Pi informiert, wie hier schon mal beschrieben. Nun generiere ich noch in Echtzeit, einmal am Tag eine Grafik mit MATLAB Visualization wieviele Tassen pro Tag gekocht wurden, hier das Diagramm:

Diese paar Zeilen Quellcode erzeugen das Diagramm:

Oder findet ihr die besser? „Raspberry Pi Kaffeezeit oder der „Kaffee (قهوة) ist fertig““ weiterlesen

Mit dem Raspberry Pi den Java Class File Disassembler (javap) aufrufen

Manchmal will man sehen, was alles so in einer compilierten Java Datei steckt. Nicht immer hat man den Quelltext. Auch für die Fehlersuche ist ein Disassembler mal ganz gut.

In jedem JDK ist auch ein Disassembler javap dabei. Denn wollen wir nun einmal auf eine unbekannte Java Class Datei loslassen, um zu sehen, was es so zu sehen gibt.

Zuerst loggen wir uns auf die Kommandozeile eines Raspberry Pi ein, auf dem ein Java JDK installiert ist. Ob Java installiert ist kann mit

getestet werden. Wenn dort eine Versionsangabe geliefert wird, ist alles ok.

Dann legen wir erst mal ein Testverzeichnis an und wechsel in das Verzeichnis:

Dann holen wir uns in das Verzeichnis eine unbekannte Flugzeug.class Datei (der Quellcode ist hier zu finden):

Diese Datei wollen wir nun disassemblieren, mit

Schon bekommen wir alle gewünschten Informationen:

Nun schauen wir uns mal alle Möglichkeiten an: „Mit dem Raspberry Pi den Java Class File Disassembler (javap) aufrufen“ weiterlesen

USB Gadget mit OLED auch für den Raspberry Pi eingetroffen

Vorgestern ist mein neues Gadget, das man für 7,40 Euro inkl. Versand aus China bekommen kann eingetroffen. Hier mal die Daten von der Ladung eines iPadMini:

Gadget

Das ist ja schon interessant, wie unterschiedlich meine USB Ladegerät den Strom liefern. Kein wunder das mache doppelt solange laden. Ich bin nun gespannt, wie es mit dem Raspberry Pi aussieht. Nur heute will ich keinen vom Netz trenne, es ist ja kein Cubi, der jeden Tag gebootet werden muss 😉

MP3 und WAV Dateien mit einem Raspberry Pi über Bluetooth (Drahtlos) abspielen

Für meinen Raspberry Pi brauche ich nun eine Sprachausgabe da Karotz gestorben ist. Ich habe noch einen < 5 Euro Bluetooth Speaker aus der China-Bucht liegen. So ein Teil:

Denn wollte ich nun drahtlos anbinden.

Dazu verwende ich für den Raspberry Pi den folgenden Bluethooth USB-Adapter, denn ich schon mal mit Fhem angebunden hatte.

Das ist schnell gemacht! „MP3 und WAV Dateien mit einem Raspberry Pi über Bluetooth (Drahtlos) abspielen“ weiterlesen

Pushover Nachricht mit dem Raspberry Pi versenden wenn ein Kaffee (قهوة) gekocht wurde via OpenHab

Mein heutiges Raspberry Pi Projekt soll einfach eine Pushover Nachricht auf alle Handys und iPads versenden, wenn ein Kaffee gekocht wurde. So kann ich immer sehen, wieviele Kaffee ich so am Tag getrunken habe und wann.

Hier der Aufbau in der Küche.

Es wird ein Homematik „Pushover Nachricht mit dem Raspberry Pi versenden wenn ein Kaffee (قهوة) gekocht wurde via OpenHab“ weiterlesen

Wie werden Seitenzahlen in einem Serienbrief mit OpenOffice eingefügt wenn mehrere Datensätze auf einer Seite sind?

Das geht nicht mit der Funktion Einfügen – Feldbefehlt – Seitennummer wie eigentlich erwartet, sondern über die Funktion:

Einfügen – Feldbefehlt – Andere – Variablen – Nummernkreis

einfügen in die Kopfzeile:

bildschirmfoto-2016-12-04-um-22-42-56

bildschirmfoto-2016-12-04-um-22-43-11

Wenn der Seriendruck-Assistent gestartet wird, muss das generierte Dokument als ein Dokument gespeichert werden.

bildschirmfoto-2016-12-04-um-23-07-14

Nach der Info musst ich aber schon etwas suchen 😉 Aber es geht zumindestens 🙂

Für 1,99 Euro inkl. Versand aus China eingetroffen: DC-DC Spannungsregler LM2596 Step-Down Regler einstellbar mit LED Voltmeter

Cooler Step-Down Regle aus China eingetroffen. Was man so für 1,99 Euro inkl. Versand aus der Bucht bekommt! Hier mal das erste Foto:

fullsizerender

Hier die angegebenen Daten:
1. Input Voltage range:4~40 VDC
2. Output voltage range:1.25-37 VDC adjustable
3. Output current:2A
4. Voltmeter range: 0 to 40V, error ±0.1V
5. Input reverse polarity protection
6. Built in output short protection function
7. Built in thermal shutdown function
8. L x W x H = 6.1*3.4*12 cm
9. Weight: 22g
10. LEDdigital voltmeter tube, the accuracy is adjustable function, can be aimed at your multimeteradjustable accurate.
11. Press the rightkey to let the display show the input or output voltage. when the right “OUT” led light, it shows output, the left “IN” led show input.

Ok, dann mal der erste Test. Mal als Eingangsspannung eine 9 Volt Batterie angeklempt, die Eingangsspannung kann auch angezeigt werden:

fullsizerender-2

Wahlweise wird auch die Ausgangsspannung angezeigt. Die kann über das Poti verändert werden. Cool!

fullsizerender-1

Dann werde ich mal einen Raspberry Pi anschließen oder was anderes …

Auf der Platine ist ein LM2596 verbaut, das Datenblatt von TI gibt es hier.

Hier noch die Anleitung und ein Hinweis wenn es nicht „geht“: „Für 1,99 Euro inkl. Versand aus China eingetroffen: DC-DC Spannungsregler LM2596 Step-Down Regler einstellbar mit LED Voltmeter“ weiterlesen