Warum Leerzeichen im Source-Code von Eclipse entfernen?

Die Möglichkeit, Quellcode in der Eclipse IDE zu vergleichen, ist äußerst nützlich, um Änderungen in Ihrem Code nachzuvollziehen. Das Ausschalten von Leerzeichen während des Vergleichs kann dazu beitragen, Code-Konsistenz zu gewährleisten und Platz zu sparen. Das geht jetzt ganz einfach über die Toolbar über diesen Button:

Die Eclipse Integrated Development Environment (IDE) ist eine der beliebtesten Entwicklungsplattformen für Programmierer weltweit. „Warum Leerzeichen im Source-Code von Eclipse entfernen?“ weiterlesen

Königsberger Brückenproblem oder etwas Graphentheorie mit jgrapht in Java

Das Königsberger Brückenproblem ist eine klassische mathematische Herausforderung, die im 18. Jahrhundert entstand und einen wichtigen Einfluss auf die Entwicklung der Graphentheorie hatte. Es handelt sich um eine Fragestellung bezüglich der Überquerung von Brücken über den Flüssen Pregel und seinen Inseln in der Stadt Königsberg (heute Kaliningrad, Russland). Das Problem wurde erstmals von dem Schweizer Mathematiker Leonhard Euler im Jahr 1735 gelöst und legte den Grundstein für die moderne Graphentheorie.

In Königsberg gab es sieben Brücken, die die Flüsse Pregel und die beiden Inseln verbunden haben. Die Frage war, ob es möglich war, die Stadt zu durchqueren, indem man jede Brücke nur einmal überquerte und schließlich an einem beliebigen Punkt endete.

Euler bewies, dass es keine Möglichkeit gibt, das Königsberger Brückenproblem zu lösen. Er zeigte, dass mindestens zwei der vier Landpunkte eine ungerade Anzahl von Brücken haben müssten, um eine Lösung unmöglich zu machen. Dies führte zur Entwicklung der Graphentheorie, bei der das Problem als ein Graph dargestellt werden kann, wobei die Landpunkte die Knoten und die Brücken die Kanten des Graphen sind.

Da kommt nun die Implementierung mit JGraphT in Java ins Spiel. „Königsberger Brückenproblem oder etwas Graphentheorie mit jgrapht in Java“ weiterlesen

Java Sets (Interface): eine leistungsstarke und flexible Möglichkeit für eindeutige Elemente

Java Sets bieten eine leistungsstarke und flexible Möglichkeit, eindeutige Elemente zu speichern und damit umzugehen, ohne sich um die Verwaltung von Duplikaten kümmern zu müssen. Die Wahl der geeigneten Set-Implementierung hängt von den spezifischen Anforderungen Ihrer Anwendung ab.

Set ist eine Schnittstelle (Interface) in der Java-Programmiersprache, die eine Sammlung von eindeutigen, nicht doppelten Elementen repräsentiert. Es gibt verschiedene Implementierungen von Sets in Java, darunter HashSet, LinkedHashSet und TreeSet. Die Verwendung von Java Sets bietet mehrere Vorteile: „Java Sets (Interface): eine leistungsstarke und flexible Möglichkeit für eindeutige Elemente“ weiterlesen

pinout – die GPIO-Schnittstelle des Raspberry Pi

Ein einfaches pinout gibt auf dem Pi die Belegung aus. Cool! Hier die Ausgabe eines Raspberry Pi Zero W

Der Raspberry Pi ist ein vielseitiger Einplatinencomputer, der in den letzten Jahren enorm an Popularität gewonnen hat. Eines seiner bemerkenswertesten Merkmale ist die General Purpose Input Output (GPIO) Schnittstelle. GPIO ermöglicht es dem Raspberry Pi, mit der physischen Welt zu interagieren, indem es digitale Signale sendet und empfängt. „pinout – die GPIO-Schnittstelle des Raspberry Pi“ weiterlesen

git -v = git version 2.40.0

Git ist ein weit verbreitetes verteiltes Versionsverwaltungssystem, das eine effiziente und flexible Möglichkeit bietet, Code zu verwalten. Mit Git können Entwickler Änderungen am Code nachverfolgen, zusammenführen und rückgängig machen. Es ist einfach zu erlernen, jedoch mächtig genug, um komplexe Projekte zu handhaben.

Git ermöglicht auch die Zusammenarbeit von Teams, indem es die Verwaltung von Code-Änderungen und die Integration von Features erleichtert.

Am 12.3.2023 ist eine neue Version von git mit diesen Releasenotes veröffentlicht worden. Wenn das kein Grund ist mal ein update durchzuführen. „git -v = git version 2.40.0“ weiterlesen

Kostenloser online git Kurs

Git ist ein verteiltes Versionskontrollsystem für Software-Entwicklungsprojekte. Es erlaubt Entwicklern, Änderungen an Code und Dokumentation zu verfolgen, zusammenzuführen und zu speichern, während es gleichzeitig die Möglichkeit bietet, Änderungen rückgängig zu machen. Git ermöglicht eine effektive Zusammenarbeit in Teams und die Verwaltung von verschiedenen Versionen eines Projekts. Es ist weit verbreitet und wird von vielen Open-Source-Projekten und Unternehmen genutzt. Wenn das kein Grund ist mal einen git Kurs zu machen.

Wer git onlinen kostenlos lernen will, kann das mit dieser sehr gut gemachten Seite tun. Ausser deutsch werden auch diese Sprachen unterstüzt:

Man braucht auf learngitbranching nichts einzurichten und kann gleich loslegen: „Kostenloser online git Kurs“ weiterlesen

Twitter Intelligence Tool (TWINT) mit Web-Scraping-Technologie auf dem Raspberry Pi Zero nicht Pi Zero 2 W mit ARM-SoC Broadcom BCM2837 vier ARM Cortex-A53 und 64-Bit-taugliche ARMv8-Kerne

Das Twitter Intelligence Tool (TWINT) mit Web-Scraping-Technologie kann auch auf einem Raspberry Pi installiert werden.


Mit dem Web Scraper für Twitter, mit dem man Tweets von Usern des Kurznachrichtendienstes einholen kann, ohne dabei vom Twitter API eingeschränkt zu werden läuft unter der MIT-Lizenz (Anleitung Twitter-Intelligence-Tool.pdf). TWINT wurde in Python geschrieben, ist am April 2020 in Version 2.1.20 erschienen. Alle Funktionen gehen aber nicht mehr, weil sich die Twitter API geändert hat. Z.b. wirft ein twint -u programmierung –following diesen Fehler:

CRITICAL:root:twint.feed:Follow:IndexError

Aber einiges geht doch noch. Also mal installieren mit:

pip3 install twint

wenn dann nicht alles geht, hat bei mir geholfen:

So ein erster Test, alle Befehle ausgeben mit twint -h …: „Twitter Intelligence Tool (TWINT) mit Web-Scraping-Technologie auf dem Raspberry Pi Zero nicht Pi Zero 2 W mit ARM-SoC Broadcom BCM2837 vier ARM Cortex-A53 und 64-Bit-taugliche ARMv8-Kerne“ weiterlesen

Java Einzeiler des Tages: Lesen einer Webseite mit jsoup den Open source HTML Parser

Mit JSoup kann ganz einfach eine Webseite gelesen werden.

Dazu einfach in der pom.xml:

ergänzen und folgenden Einzeiler:

System.out.println(„Webseite: “ + Jsoup.connect(„http://wenzlaff.info“).get().html());

Das Ergebnis ist dann die HTML Seite. Mit JSoup können auch einfach Filter und Selektoren erstellt werden. Es unterstüzt leider kein JavaScript.
Dafür kann dann HtmlUnit oder Selenium verwendet werden.

Swagger-UI in 5 Minuten auf einen Raspberry Pi einem Quarkus Projekt hinzufügen!

Für die Entwicklung von REST APIs ist die Swagger-UI sehr hilfreich.

Ok, dann wollen wir mal in einem Quarkus Projekt eine Swagger-UI hinzufügen. Das geht mit einem Befehl, da Quarkus einen guten Plugin Mechanismus hat:

./mvnw quarkus:add-extension -Dextensions=“openapi“

Nach 27 Sekunden kommt das Build Success:

So, das wars schon. Nun noch die Anwendung starten mit „Swagger-UI in 5 Minuten auf einen Raspberry Pi einem Quarkus Projekt hinzufügen!“ weiterlesen

Quicktest: Gestern wurde Quarkus 0.24.0 released – „Container First“

Wenn das kein Grund ist mal die neue Version zu testen. Quarkus ist ein relativ neues Framework, welches die leichtgewichtige Entwicklung von Java-Anwendungen nach dem „Container-first“-Prinzip macht. Es wird von Red Hat gesponsert und macht die Entwicklung von Microservices einfacher. Was Entwickler besonders gefällt ist das Live Reloading so das man gemachte Änderungen sofort „sieht“.

Also gleich ein Build it. Save it. Run it. – und das mit Java:

./mvnw compile quarkus:dev

Das klappt ja schon mal, nun ein

./mvnw clean package
Package bauen: „Quicktest: Gestern wurde Quarkus 0.24.0 released – „Container First““ weiterlesen

OpenSky Java API to KML für Google Earth – Teil 1

OpenSky bietet eine Java API an um auf Flugdaten zugreifen zu können. Da die live API nun wieder online ist, schreiben wir einen kleine JUnit Test und formen mal alle Transponderdaten aller 4754 Flugzeuge in eine KML Datei, um die Daten auf Google Earth anzuzeigen. Hier erst einmal das Ergebnis in Google Earth aus 5569 Km Höhe gesehen:

Wer die die Daten testweise laden will, „OpenSky Java API to KML für Google Earth – Teil 1“ weiterlesen

PDF erzeugung in 5 Zeilen mit Java am Beispiel eines Lebenskalender

Wie können mit Java PDF Dokumente erzeugt werden?

Das geht mit ein paar Zeilen Code und iText. Die iText Lib läßt sich leicht integrieren. Hier mal ein Beispiel um ein paar Daten zu haben, nehmen wir mal einen Lebenskalender. Der ganze Code (nur eine Java Klasse) liegt auf Github und kann von dort geladen werden.

Also mal ein neues Mavenprojekt anlegen und in der pom.xml die iText Abhängigkeit einfügen:

Dann mal ein paar Zeilen Javacode für die PDF Erzeugung z.B. so:

und schon können wir ein PDF Dokument erzeugen. Hier das Ergebnis lebenskalender.pdf.

Hier mal die Ausgabe auf System.out:

„PDF erzeugung in 5 Zeilen mit Java am Beispiel eines Lebenskalender“ weiterlesen

Warum läuft die OSGI-Konsole in neueren Versionen nicht mehr so wie früher?

In älteren OSGI Versionen konnte die Konsole einfach über einen Aufruf:

gestartet werden. In neueren Versionen läuft es nicht mehr. D.h. es gibt noch nicht einmal eine Fehlermeldung.

Die neue Konsole ist nun Teil von der Apache Felix Gogo shell. Ab dem Eclipse Release 4.4 (Luna) ist die Built-in OSGi-Konsole komplett von dem Equinox Framework entfernt worden. „Warum läuft die OSGI-Konsole in neueren Versionen nicht mehr so wie früher?“ weiterlesen

Jenkins auf iMac Lion installieren

Nach der Installation des binären Package läuft Jenkins nicht unter der URL http://localhost:8080/ und es kommt zu einer 404 Fehlermeldung. Was tun?

1. Einen eigenen jenkins User anlegen mit:

2. Die Datei /Library/LaunchDaemons/org.jenkins-ci.plist
wie folgt in den User ändern:

3. Das Home Verzeichnis /Users/Shared/Jenkins/Home einen neuen Besitzer geben mit:

4. Restarte des Services mit:

5. Im Browser testen ob die Jenkins Gui angezeigt wird mit URL http://localhost:8080/

JDK 7 „Diamanten sind für immer“

In Java 7 gibt es jetzt den „diamond Operator“. Nun müssen bei generics keine Typen doppelt deklariert werden.

Hier ein Beispiel vorher und nachher:

List<Integer> liste = new ArrayList<Integer>(); // vor JRE 7

List<Integer> diamantListe = new ArrayList<>(); // ab JRE 7, ja Diamonds are forever

Java 7 ist DA!

So, jetzt ist Java 7 da. Was braucht man zum ausprobieren?

Eine Eclipse Version die Java 7 unterstützt. Das geht noch nicht mit Helios. Deshalb einen „Nightly Build“ herunterladen.
Dann über Update neue Software über diese URL den JDK 7 patch herunterladen.

Was dann noch fehlt ist das JDK 7 von Oracle.

In den Projekt Einstellungen unter Java Compiler die 1.7 auswählen und nun der erste Test.

In Java 1.7 sind jetzt Unterstriche (_) in Literalen möglich, um besser zu gliedern z.B.

Das Ergebnis:
Telefonnummer 1: 11223344
Telefonnummer 2: 1122.33

Weitere Neuerungen mit Beispielen wie „String in switch“ kommen hier dann demnächst.