Seit ein paar Tagen gib es eine neue Version von Freemarker 2.3.29. Was gibt es da Neues? Fünf Änderungen auf FTL Seite und neun auf Java-Seite. Dann mal ein Projekt Testweise updaten. Dazu nehme ich mal den TWMindmapgenerator.
Quicktest ok! Mehr im Handbuch.
Raspberry Pi: Bibelleseplan im ics Kalender Format mit 1189 Termine
Hier hatte ich gestern ja schon die Biblellesepläne im EXCEL, TXT und PDF Format erzeugt.
Nun habe ich mit dem Generator auch für jeden Tag einen Termin im ics-Kalender Format erzeugt (Google, Apple, Outlock …). Und zwar 1189 Termine die jeweils um 6 Uhr morgens in der Woche 3 und am Wochenende 4 Kapitel angeben. Starten tut alles am 1.9.2019. Die ics-Datei kann hier geladen, und dann in dem Kaleder deiner Wahl importiert werden. Vorher wie immer ein backup (export) des Kalenders machen.
bibelleseplan_2019-08-17-ganze-Bibel.ics
Wer nich gleich mit der ganzen Bible starten will, kann auch mit einem Bibelbuch anfangen, mit Mathäus:
bibelleseplan_2019-08-17-mathaeus.ics
Bei klick auf Import in den Kalender kommt z.B. auf einem Mac, erst noch die Abfrage in welchem Kalender man importieren will:
Anschließend sind am Wochenende jeweils 4 Einträge um 6 Uhr zu finden: „Raspberry Pi: Bibelleseplan im ics Kalender Format mit 1189 Termine“ weiterlesen
Raspberry Pi: Bibelleseplan (PDF, Excel, TXT, ics) Generator (mit Java und twbibel)
Wer die 1189 Kapitel der Bibel in einem Jahr lesen will, kann einfach jeden Wochentag 3 Kapitel und am Wochenende 4 lesen. An vielen Stellen im Internet gibt es auch Bibellesepläne. Ich habe mal ein paar Pläne in unterschiedlichen Formaten generiert, die hier kostenlos geladen werden können:
bibelleseplan_1.9.2019 (PDF)
bibelleseplan_1.9.2019 (Excel)
bibelleseplan_1.9.2019 (TXT)
bibelleseplan_2019-08-17-ganze-Bibel (ics) siehe auch hier
bibelleseplan_2019-08-17-mathaeus (ics) siehe auch hier
Um aber die twbibel von MavenCentral mal zu testen, folgt hier ein kleines Java-Programm. Dieses wird dann noch um eine Oberfläche (GUI) oder Kommandozeilen-Client erweitert um verschiedene Bibellesepläne mit unterschiedlichen Start Datum zu generieren.
Um die Bibel Lib zu nutzen, muss in der pom.xml für das Maven-Projekt dieser Eintrag gemacht werden:
1 2 3 4 5 6 7 |
<dependencies> <dependency> <groupId>de.wenzlaff.twbibel</groupId> <artifactId>de.wenzlaff.twbibel</artifactId> <version>0.0.2</version> </dependency> </dependencies> |
Dann eine Java Klasse mit ungefähr diesem Inhalt: „Raspberry Pi: Bibelleseplan (PDF, Excel, TXT, ics) Generator (mit Java und twbibel)“ weiterlesen
JavaFX Plugin in Eclipse 2019-06 installieren und neue JavaFX Projekt anlegen in 10 Minuten
Wenn man JavaFX programmieren will, kann man das efxclipse Plugin installieren. Dazu über den Marketplace von Eclipse nach efxclipse suchen …
Kontrolle ob alles installiert wurde dann über … „JavaFX Plugin in Eclipse 2019-06 installieren und neue JavaFX Projekt anlegen in 10 Minuten“ weiterlesen
Java-Zweizeiler: Wie können alle Tage eines Zeitraumes mit Java 8 ausgegeben werden?
Manchmal benötigt man alle Tage im Jahr oder alle Tage im Monat oder alle Tage von Start Datum bis zum Ende Datum. Das geht mit Java 8 in einen Zweizeiler:
1 2 3 4 5 6 7 |
// erst die Differenz zwischen Start und Ende Datum berechnen long daysBetween = ChronoUnit.DAYS.between(startDate, endDate); // dann über alle Tage iteriern IntStream.iterate(0, i -> i + 1) .limit(daysBetween) .mapToObj(i -> startDate.plusDays(i) .collect(Collectors.toList()); |
Hier das Ergebnis und die ganze Klasse:
Javalin Framwork nicht nur für Java vor ein paar Tagen in Version 3.3.0 veröffentlicht
Javalin wurde vor ein paar Tagen in der Version 3.3.0 veröffentlicht. Was dieser Framwork kann, zeigt diese Mindmap:
Mit einem Zweizeiler kann in Java schnell eine Anwendung erstellt werden. Es wird nur die Abhängkeit in der pom.xml erwartet: „Javalin Framwork nicht nur für Java vor ein paar Tagen in Version 3.3.0 veröffentlicht“ weiterlesen
207 Wortformen in der deutschen Schriftsprache machen 50% der ganzen Schriftsprache aus!
207 Wortformen in der deutschen Schriftsprache machen 50% der ganzen Schriftsprache aus (Quelle Wikipedia). Wer also 207 Wörter schreiben kann, kann schon die hälfte des deutschen Textes schreiben. Für einen Textparser brauchte ich eine Java Methode die checkt, ob ein Wort in dieser Liste ist.
Also mal eben eine Java-Zweizeiler um das zu überprüfen. „207 Wortformen in der deutschen Schriftsprache machen 50% der ganzen Schriftsprache aus!“ weiterlesen
Wie kann mit Java 8 und dem DOM-Parser einfach eine XML Datei erzeugt werden?
Wie kann mit Java 8 mit dem DOM-Parser einfach eine XML Datei erzeugt werden?
Es sind keine weiteren Abhängigkeiten nötig. Allso keine imports von Fremdjars. Alles ist in Java 8 vorhanden:
1 2 3 4 5 6 7 8 9 |
import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; |
Es muss ein DOM Object mit der Baumstruktur erzeugt werden. Dann kann mit dem Transformer und dem StreamResult in eine Datei geschrieben werden.
Hier nun die drei Schritte:
1. Mit der DocumentBuilderFactory ein neues Document erzeugen:
1 |
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument() |
2. Benötigte Elemente und Attribute erzeugen und dem Dokument hinzufügen „Wie kann mit Java 8 und dem DOM-Parser einfach eine XML Datei erzeugt werden?“ weiterlesen
Wie kann mit Eclipse 2019-06 aus einem XSD Schema Javacode generiert werden? Babyleicht? HiHi!
Wie kann mit Eclipse 2019-06 aus einem XSD Schema Javacode generiert werden? Das braucht man, um ein Datenmodell uä. zu erzeugen.
Zuerst erzeuge wir ein JAXB-Projekt fügen dann die XSD (hier mal die freemind.xsd als Beispiel, es geht aber jede) als Basis dem Projekt hinzu. Dann selektieren wir die XSD und generieren über das Kontextmenü das Modell. Bei der Generierung mit Java 8 oder 9 kommt es zu Fehlern. Deshalb erst das Projekt mit Java 7 wie folgt einrichten:
„Wie kann mit Eclipse 2019-06 aus einem XSD Schema Javacode generiert werden? Babyleicht? HiHi!“ weiterlesen
Java Webclient des Statistischen Bundesamtes für GENESIS Online DB starten auf Mac OS X und Raspberry Pi bzw. Linux
Das Statistische Bundesamt bietet für registrierten Nutzern 3 Werkzeuge kostenlos zum Download an. Unter anderem ein Java-Web-Client. Es heißt:“
Durch den „GENESIS-Webservice“ werden bestimmte Funktionen von GENESIS-Online auch für die automatisierte Verarbeitung zugänglich gemacht, wie z. B. Abruf und Download von Daten. Über unser Dienstangebot (WSDL) können registrierte GENESIS-Online-Nutzer die entsprechenden Schnittstellen in ihre eigenen Applikationen integrieren und programmgesteuert die angebotenen Dienste nutzen.“
Ok, dann wollen wir mal testen. Wir wollen auf den Mac OS X und dann auf einem Raspberry Pi die autom. Abfragen stellen. Als Beispiel sollen mal die Daten abfrage der Transfusion von Vollblut und Erythrozytenkonzentrat (EK) u.Ä. in Deutschland verwendet werden. Die Anzahl ist rückläufig, wenn auch in Deutschland immer noch fast eine Millionen Einheiten (a mind. ca. 200 Euro) verkauft werden.
Datenquelle: Statistisches Bundesamt (Destatis), Genesis-Online,
Abrufdatum 22.06.2019; Datenlizenz by-2-0; eigene Berechnung/eigene Darstellung
Welche Schritte sind nötig? „Java Webclient des Statistischen Bundesamtes für GENESIS Online DB starten auf Mac OS X und Raspberry Pi bzw. Linux“ weiterlesen
Quicktest der neuen Eclipse 2019-06 IDE –>OK
Eine neue Version der Eclipse IDE veröffentlicht. Die Installation und Neuerungen sind ja bei Heise beschrieben. Dann mal ein Quicktest:
In welcher Höhe fliegen alle Flugzeuge jetzt weltweit (7435)?
Habe dazu ja schon mal ein Java-Programm vorgestellt. Hier nun die Ergebnisse von heute mit 7435 Flugzeugen als Tortendiagramm:
Und noch mal so:
Die Datenbasis:
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 ; 467 1-500 ; 392 500-1000 ; 420 1000-2000 ; 551 2000-3000 ; 389 3000-4000 ; 327 4000-5000 ; 286 5000-6000 ; 248 6000-7000 ; 240 7000-8000 ; 324 8000-9000 ; 324 9000-10000 ; 499 10000-10500 ; 585 10500-11000 ; 954 11000-11500 ; 488 11500-12000 ; 574 12000-13000 ; 263 über 13000 ; 104 Summme ; 7435 Zeitpunkt ; Thu May 30 17:10:38 CEST 2019 Quelle ; The OpenSky Network, http://www.opensky-network.org |
Und noch mal als Torte:
60 Sekunden Video: Wie können JUnit-Tests in Eclipse gestartet werden?
Raspberry Pi: Jave UUID perfomance Vergleich Raspberry Pi mit iMac
Wie lange braucht ein Raspberry Pi, im Vergleich zu anderen Rechner, um 100000 UUIDs zu erzeugen und auf der Konsole auszugeben mit einem Test ob doppelte generiert werden. So was ähnliches hatte ich vor 2 Jahren schon mal geschrieben.
Die generierten UUIDs oder Teile davon kann man auch als Passwort verwenden 😉
Hier das kleine Java Programm: „Raspberry Pi: Jave UUID perfomance Vergleich Raspberry Pi mit iMac“ weiterlesen
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
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
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
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: