Gruß aus HAJ „Das war eine Woche: to spot mit DUMP 1090 in EDDV mit dem Raspberry Pi“ weiterlesen
Jenkins Pipeline: Auch im Fehlerfall eine E-Mail versenden mit try und catch
Manchmal will man in einer Jenkins Pipeline nicht nur im Erfolgsfall eine E-Mail bekommen sondern auch im Fehlerfall. Dazu kann man wie in Java auch ein try und catch im Groovy-Script verwenden. Z.B.
So bekommt man, wenn ein Server nicht erreichbar ist auch eine E-Mail und die Pipe ist grün 😉
Groovy Programm zum abfragen pytanie der Maven Central Repository API vom Raspberry Pi (Mac, Linux, Windows) aus
Habe mal ein kleines Groovy Programm zum abfragen der Maven Central Repository API vom Raspberry Pi aus erstellt. Dann braucht man nicht extra die Web-GUI von Maven Central.
Einfach das MavenApi.groovy Programm in ein Verzeichnis des Raspberry Pi kopieren. Was Groovy mit ein paar Zeilen macht, ist schon cool. Java braucht wohl ein paar Zeilen mehr, oder? Auch an die fehlenden Semikolons kann man sich gewöhnen.
Und in der Konsole ausführen. Zum Beispiel: „Groovy Programm zum abfragen pytanie der Maven Central Repository API vom Raspberry Pi (Mac, Linux, Windows) aus“ weiterlesen
Wie kann ein Raspberry Pi Debian Image via Docker auf dem Mac OS X und unter Eclipse Oxygen laufen?
Mit Docker ist es ganz einfach möglich, auf Mac OS X (oder auch Windows und Linux) ein Raspberry Pi oder andere Betriebssysteme laufen zu lassen. Dann braucht man keinen echten Raspberry Pi mehr 😉
Hier mal das Beispiel unter Mac OS X wie Docker installiert und Ubuntu, Alpine Linux und zu guter letzt ein Raspbian Debian Linux für Raspberry Pi installiert wird unter Eclipse Oxygen. Die 4.7 Version von Eclipse hat eine coole Docker Unterstüzung. Also allen Grund, auf die aktuelle Eclipse Version zu wechseln.
Docker auf dem Mac OS X ist schnell eingerichtet. Wir nehmen den Stable channel von docker.com, hier der direkt link. Das docker.dmg nach dem Download doppel klicken und in den Application Ordner ziehen.
Dann im Applicatons Ordner die Docker.app starten. Oben in der Menüleiste erscheint dann das Docker Icon für die Einstellungen. „Wie kann ein Raspberry Pi Debian Image via Docker auf dem Mac OS X und unter Eclipse Oxygen laufen?“ weiterlesen
Jenkins Syntax Generator für Pipelines nicht nur für Raspberry Pi’s
Die neuen 2.x Versionen von Jenkins haben einen guten Syntax Generator. So braucht man sich die Syntax der Befehle nicht zu merken. Man klickt einfach auf „Pipeline Syntax“:
Und schon kann man in der Combobox einen Befehl aussuchen für den man ein Snippet generieren möchte. „Jenkins Syntax Generator für Pipelines nicht nur für Raspberry Pi’s“ weiterlesen
Wie läuft Groovy auf dem Raspberry Pi, Mac OS X und Eclipse Oxygene? Super!
Als Java Entwickler verwendet man als Scriptsprache gern Groovy da sie auf der Java Virtual Machine ausgeführt wird. Groovy läuft auf fast allen Betriebssystemen und ist auch wie Java objektorientiert. Man kann die Klassen und Scripte auch leicht von Java aus aufrufen und umgekehrt.

Deshalb installieren wir mal Groovy mit sdkman.io und schreiben ein Groovy Script mit drei Zeilen welches einen Server startet und die Systemumgebung im Browser ausgibt:
Hier die TestServer.groovy Datei:
| 1 2 3 4 5 6 7 8 9 10 11 12 | /**  * Testserver der die Systemumgebung ausgibt.  *   * Aufruf:  *   * http://localhost:4567/info  */ @Grab(group = 'com.sparkjava', module = 'spark-core', version = '2.1') import static spark.Spark.* get '/info', { req, res -> 'Groovy läuft auf dem Raspberry Pi! Mit dieser Umgebung: '  + System.getenv() } | 
„Wie läuft Groovy auf dem Raspberry Pi, Mac OS X und Eclipse Oxygene? Super!“ weiterlesen
Jenkins Pipeline optimieren mit parallele Ausführung auf dem Raspberry Pi
In diesem Blog Beitrag hatte ich gezeigt, wie man auf einem Raspberry Pi einen aktuellen Jenkins installieren kann.
Nun möchte ich mal zeigen, wie Aufgabe parallelisiert werden können.
Ein Jenkins Jobs der folgendes macht, soll mal als Beispiel dienen, um parallele Pipeline zu demonstrieren.
Ein einfacher Job der
- Flugdaten aus Hannover abfragt
- mein Kaffee verbrauch ermittelt
- Temperatur und Luftfeuchte in HAJ abfragt
- Umweltdaten des Lufthygienisches Überwachungssystem Niedersachsen abfragt
- meine drei Server per Ping 10 mal checkt
- und das Ergebnis aller Abfragen per E-Mail versendet
Dazu das kleine Groovy Script, das die öffentlichen Daten abfragt, in den Job eintragen: „Jenkins Pipeline optimieren mit parallele Ausführung auf dem Raspberry Pi“ weiterlesen
Quicktest billigstes Mulitmeter: WHDZ DT832 Portable Digital Multimeter für 3,64 Euro – Beginners only look for the cheapest offer.
Heute mal wieder ein neues Gadget aus China für 3,64 inkl. Versand eingetroffen!
WHDZ DT832 Portable Digital Multimeter mit zwei Messkabel aber ohne 9V Batterie 😉
Ideal um den Stromverbrauch oder die Spannung eines Raspberry Pi oder Arduino zu messen.
Innenansicht nach dem lösen von zwei Kreuzschlitzschrauben:
Naja, kalte Lötstellen für die NPN oder PNP Messungen sind auf den ersten Blick erkennbar. Die Funktion zum testen von Transitoren braucht wohl eh keiner.
Anleitung als PDF.
Techn. Daten mit CE Zeichen:
– DC voltage, AC voltage, DC current, AC current and resistance
– It is convenient to adjust what you need with button
– It is clear to operate with the text identifications
– The alarm will ring when detecting electric circuit on
– Small size, easy to carry
– Powered by 1 x 9V 6F22 battery ( not included )
Supply Voltage: 200-1000V
Product weight: 0.1100 kg
Package weight: 0.1870 kg
Product Size(L x W x H): 12.00 x 6.80 x 2.50 cm / 4.72 x 2.68 x 0.98 inches
Package Size(L x W x H): 13.50 x 10.00 x 3.60 cm / 5.31 x 3.94 x 1.42 inches
Package Contents: 1 x WHDZ DT832 Digital Multimeter, 1 x Table Pen, 1 x English User Manual
Projektvorschlag: Im Gehäuse ist noch Platz für einen ESP wie der WeMos. Damit können dann die gemessenen Werte drahtlos übertragen werden. Hat das schon jemand gemacht? Gern auch Link im Kommentar. Oder ist das mal ein Projekt für einen Samstag nachmittag, wenn die NOx oder Feinstaub Wert zu hoch sind 😉
Wie können mit Jenkins 2.72 Pipelines rurociągi auf einen Raspberry Pi Zero W angelegt werden?
Frei nach Tim Bendzko (Jenkins):
         „Ich bin doch eine Maschine!
          Ich bin eine Maschine aus Bits und Bytes
          Und ich will leben, bis zum letzten Zug
          Ich bin eine Maschine mit all meinen Fehlern
          Meiner Wut und der Euphorie
          Bin eine Maschine,
          ich leb‘ von Volt und Spannung“
          – (c) Thomas Wenzlaff
Wenn man Jenkins schnell installieren will, und die Version keine Rolle spielt, dann geht es mit
| 1 | sudo apt-get install jenkins | 
wie hier schon mal beschrieben.
Wer aber eine neue Version 2.7 mit Pipelines testen will, muss wie folgt vorgehen. „Wie können mit Jenkins 2.72 Pipelines rurociągi auf einen Raspberry Pi Zero W angelegt werden?“ weiterlesen
WeMos D1 Quicktest: ESP-8266EX D1 Mini WIFI Board mit Arduino
Mal heute kein Raspberry Pi. Der ist für viele Aufgaben auch oversize. Hier der Quicktest: WeMos ESP-8266EX D1 Mini WIFI Board mit Micro USB für Arduino

Hier die Beschreibung des WeMos: „WeMos D1 Quicktest: ESP-8266EX D1 Mini WIFI Board mit Arduino“ weiterlesen
Wie wird die Beitragsbreite vergrößert زيادات in WordPress Thema θέμα Twenty Seventeen?
Mancher hat auf seinen Raspberry Pi auch WordPress laufen, wie hier schon mal beschrieben und fragt sich evl. wie man die Breite der Beiträge vergrößern. Wie wird die Beitragsbreite vergrößern in WordPress Thema Twenty Seventeen (Version: 1.3) und ähliche?
Wie zum Beispiel auf dieser Seite oder auch hier.
Dann auf dem Menüpunkt „Zusätzliches CSS“ gehen:
Nach einem klick, öffnet sich dieser Editor: „Wie wird die Beitragsbreite vergrößert زيادات in WordPress Thema θέμα Twenty Seventeen?“ weiterlesen
Cooler CSV Reader in JUnit 5
Will man Testfälle aus einer CSV-Datei verwenden, geht das mit JUnit 5 Super einfach. Es gibt da eine neue Annotation @CsvFileSource der nur der Dateiname der CSV-Datei übergeben werden muss, und schon wird für jede Zeile der Test ausgeführt. Die Datei muss im Classpath liegen und mit Komma (,) getrennt sein. Sie darf keine Überschrift haben.
Als Beispiel soll mal die flug-data.csv dienen, die ua. die Summe aller erfassten Flugzeuge enthält.
Hier ein Auszug:
| 1 2 3 4 5 6 7 8 9 10 | aed4022e-c6e9-45b1-96c1-14270c68a036,3550,Fri Jun 30 07:37:25 CEST 2017,287,148,115,200,139,150,110,122,129,157,155,250,347,531,293,302,99,16 8695a419-e76a-46f4-9a97-3ba7f0d06999,3514,Fri Jun 30 08:17:07 CEST 2017,206,138,126,181,137,151,126,119,117,142,172,214,338,576,353,292,103,23 ee29ce4a-4b9c-4491-ab6c-e888ccbbf4fa,3612,Fri Jun 30 08:29:03 CEST 2017,289,136,121,178,171,144,134,117,132,145,166,223,323,573,360,284,94,22 a95c25b5-8b3d-4922-9ce3-2d22269b32e8,3555,Fri Jun 30 09:23:14 CEST 2017,213,135,120,191,130,178,113,141,123,158,150,241,337,549,383,289,87,17 874494b7-4824-40b2-8660-d9acec56f837,4121,Fri Jun 30 11:27:51 CEST 2017,220,142,129,209,165,158,137,153,141,174,191,339,395,672,364,369,139,24 562e4c98-98bd-472c-9e9b-fc919c2260aa,5055,Fri Jun 30 16:00:44 CEST 2017,237,195,218,308,260,250,172,158,210,270,248,424,493,696,365,372,127,52 898c57c1-88c2-436d-b49a-a2db85ddc1fb,3277,Sun Jul 02 08:35:18 CEST 2017,211,116,92,156,118,129,102,126,99,125,134,198,308,592,393,289,77,12 6e3663bf-19c1-49fe-8260-3aa4e237b198,5084,Thu Jul 06 15:57:54 CEST 2017,292,206,216,318,259,221,149,150,179,211,230,364,474,781,421,390,160,63 ac38b07f-3aa6-4908-a7d7-bae630916f99,5296,Wed Jul 19 17:34:38 CEST 2017,259,237,214,347,272,237,181,174,186,237,202,332,440,821,439,480,183,55 b7f9487e-dd29-4095-a064-d401192ce9ad,4904,Sun Jul 23 20:32:03 CEST 2017,227,275,221,331,264,209,165,147,171,190,218,329,379,726,434,394,157,67 | 
Wir wollen jetzt jede Zeile überprüfen, ob die Summe über 3000 Flugzeuge liegt und ob die UID vorhanden ist. Auch wollen wir die Testergebnisse um eine laufende Nr. ergänzen. „Cooler CSV Reader in JUnit 5“ weiterlesen
Quicktest: JDeps (Java Dependency Analysis Tool)
Mit Java 8 wird im bin Verzeichnis auch das JDeps Tool ausgeliefert. Dieses Tool ermöglicht eine statische Kodeanalyse von der Kommandozeile. Es kann die statischen Abhängigkeiten von Klassen und Jars aufzeigen und auch eine Abhängigkeitsgraphen generieren. So ist man dann für Java 9 vorbereitet.
Das wollen wir einmal ausprobieren. Dazu hole ich mir für mein Testprojekt erst einmal alle Jars und untersuche dann das JUnit 4.12.
Also in der pom.xml folgendes Plugin ergänze und ein „mvn package“ ausführen: „Quicktest: JDeps (Java Dependency Analysis Tool)“ weiterlesen
JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!
In JUnit 5 gibt es nun die Möglichkeit, Testmethoden mit Parametern ausszuführen. Anstatt der @Test Annnotation verwendet man die @ParameterizedTest. Nun braucht man noch eine Datenquelle mit @ValueSource.
Diese Klassen liegen in: „JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!“ 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
| 1 2 3 4 5 6 7 8 9 10 11 12 | <properties> 	        <java.version>1.8</java.version> 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 		<restlet-version>2.3.10</restlet-version> 		<maven.compiler.source>1.8</maven.compiler.source> 		<maven.compiler.target>1.8</maven.compiler.target> 		<junit.version>4.12</junit.version> 		<junit.jupiter.version>5.0.0-M6</junit.jupiter.version> 		<junit.vintage.version>${junit.version}.0-M6</junit.vintage.version> 		<junit.platform.version>1.0.0-M6</junit.platform.version> </properties> | 
Die neuen Abhängigkeiten hinzu: „Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)“ weiterlesen
חזרות Wiederholungen mit JUnit 5: @RepeatedTest
Manchmal will man eine Testmethode öfter ausführen. Das ist ja leicht mit einer Schleife möglich.
JUnit 5 bietet nun aber eine schöne Annotation an @RepeatedTest. Mit der kann leicht die Anzahl der Wiederholungen angegeben werden. Über die Methodenparameter TestInfo und RepetitionInfo kann zur Laufzeit auf die Klassennamen, Methodennamen und aktuellen runden Wert zugegriffen werden. Hier mal ein Beispiel:

 „חזרות Wiederholungen mit JUnit 5: @RepeatedTest“ weiterlesen
Bluetooth Lampe mit Lautsprecher für ein paar Euro – 需要世界?
Quicktest einer Bluetooth Lampe mit Lautsprecher für ein paar Euro. Mit حكيم LED
es können per Fernbedinung alle Farben ausgewählt werden, z.B. Rot
Aber auch blinken usw. ist möglich. „Bluetooth Lampe mit Lautsprecher für ein paar Euro – 需要世界?“ weiterlesen
Neue Annotationen الشروح in JUnit 5 (= JUnit Platform + JUnit Jupiter + JUnit Vintage) für Java 8
Einige Namen von Annotationen wurden in JUnit 5 gändert, also von @Ignore nach @Disabled und …
 
 
Weitere Details „Neue Annotationen الشروح in JUnit 5 (= JUnit Platform + JUnit Jupiter + JUnit Vintage) für Java 8“ weiterlesen
30 Grad in EDDV – Hannover – HAJ – هانوفر
Mein Raspberry Pi sendet ja auch Temperatur Daten in die Cloud, wie hier schon öfter beschrieben.
Jetzt ist es hier 30 Grad!
Mac OS X: Installation von Java 1.8.141,15 nicht nötig, da schon 9.0.0.0.176 vorhanden!
Es gibt eine neue Java Version die zig Sicherheitslücken fixt. Download und …
Ok, stimmt, habe schon Java 9 installiert. „Mac OS X: Installation von Java 1.8.141,15 nicht nötig, da schon 9.0.0.0.176 vorhanden!“ weiterlesen
















