Neu erschienen – mein JavaFX Grundkurs bei LiL

Über den Sommer habe ich mehrere Training bzw. Aktualisierungen für LinkedIn Learning eingespielt, deren endgültige Fertigstellung bzw. Produktion sich dann doch ziemlich hingezogen haben. Nicht zuletzt Corona hat Arbeitsabläufe und Kapazitäten sowie Prioritäten im Griff,. Aber die Woche ging es wie beim Bretzelbacken und neben der Aktualisierung meines Training zu den Neuerungen der verschiedenen Versionen von Java und meinem aktuellen Entwickler-Tipp zu Python ist diese Woche auch der JavaFX Kurs erschienen. Dabei geht es neben JavaFX auch um FXML und den Sceen Builder sowie NetBeans, Maven, Ant, Gradle, JDK etc..

Ich habe schon früher Kurse zu JavaFX eingespielt (sogar schon zu Zeiten von Video2Brain (V2B), aber auch dann Aktualisierungen für LiL), aber die sind mittlerweile komplett veraltet. Der neue JavaFX Kurs ist deshalb vollkommen neu konzipiert und vollständig neu eingespielt. Außer ein paar Ideen für Beispiele ist nichts mehr identisch zu den alten Kursen.

Was übrigens auch JavaFX als Technologie betrifft. Diese hat sich zum Teil komplett inkompatibel zu älteren Versionen weiterentwickelt. Offiziell heisst sie jetzt sogar nicht mehr JavaFX, sondern OpenJFX und wird nicht mehr von Orcale verantwortet, sondern einer OpenSource-Organisation. Wobei sich der Bezeichner „OpenJFX“ wohl nicht so richtig etablieren will und man deshalb an den meisten Stellen doch wieder den ursprünglichen Bezeichner „JavaFX“ beibehält.

Aktualisierung meines Trainings zu den Neuerungen von Java

Bei LinkedIn Learning habe ich ein Training am Start, das sich um die Neuerungen der verschiedenen Versionen von Java kümmert. Bekanntlich erscheinen neue Versionen von Java mittlerweile alle 6 Monate und deshalb wird dieses Training immer wieder erweitert bzw. auf den neuen Stand gebracht. Derzeit behandle ich in diesem Training die Neuerung von Java 14, 15 und 16. Die Neuerungen der Version 17 spiele ich Ende dieser Woche neu ein und dann wird das Training noch einmal aktualisiert/erweitert und auf eine Art „Endstand“ gebracht. Denn die Version 17 ist nach vielen Jahren wieder eine LTS-Version, die in der Praxis auf viele Jahre die relevante neuste Version bilden wird. Wie der Name LTS – Long-Term-Support – aussagt, werden nur diese Versionen explizit über einen langen Zeitraum unterstützt. Während private Programmierer gerne schnell auf neue Versionen umsteigen, wird man in der professionellen Programmierung bzw. bei Business-Anwendungen fast immer nur solche LTS-Versionen berücksichtigen.

Neuer Tipp zum Verketten von Vergleichsoperatoren

Bei LinkedIn Learning ist wieder ein aktueller Entwickler-Tipp zu Python verfügbar. Es geht dieses Mal um die Verkettung von Vergleichsoperatoren. Dabei geht es darum, mehrere Bedingungen zu verknüpfen und über eine einfache Schreibweise das zu machen. Und wer es noch nicht mitbekommen hat – in der Woche der Veröffentlichung ist der aktuelle Tipp frei (d.h. kostenlos) verfügbar.

Mac Mini als Druckserver

Im Rahmen der Neugestaltung meines Büros mit eingeschlossenem grundlegendem Neuaufbau meiner IT bin ich zwei Probleme bzw. Fragen angegangen, die ich schon viele Monate nicht so richtig gelöst habe.

  1. Wie bekomme ich meinen Drucker-Fehlkauf – den Samsung Xpress M2026w Laserdrucker – doch noch vernünftig im Netzwerk zu laufen?
  2. Was mache ich mit meinem uralten, überzähligen Mac Mini?

Der Samsung-Drucker bekommt von mir die Krone für meine schlechteste IT-Anschaffung ever. Billig war er, aber ständig hat das Dreckding Ärger gemacht. Dabei ist es nicht einmal so schlimm, dass man den Papierschacht nur halb voll machen kann und Papierstau oder nicht richtig eingezogene Blätter den Ausdruck behindern. Das Schriftbild ist zumindest ok. Aber – der Drucker ist funktioniert im W-LAN total unzuverlässig. Deshalb habe ich ihn nach viel Arbeit und Ärger irgendwann per USB an mein NAS angeschlossen. Von ein paar Rechnern – vor allen Dingen aus Linux heraus – war er damit halbwegs zuverlässig anzusprechen. Aber von mehreren anderen Rechnern ging auch dann einfach nichts. Nun habe ich beim Neuaufbau der IT in meinem Büro eine Weile experimentiert. Sowohl an mehreren Windows- als auch Linux-Rechnern wird der Drucker per USB erkannt. Aber im Netzwerk ist er – trotz Freigabe und allen denkbaren Einrichtungen – nicht anzusprechen. Man sieht ihn, aber er reagiert einfach nicht auf Druckaufträge oder die Abfrage des Status. In alle Richtungen:

  • Linux -> Linux
  • Linux -> Windows
  • Windows-> Linux
  • Windows-> Windows

Keine Chance. Ich habe sogar meinen Rasberry PI 1 als Druckserver ausprobiert, aber da wurde der Drucker noch nicht einmal richtig erkannt.

Dann kam mir mein zweites IT-Problem in den Sinn – was mache ich mit dem Mac Mini? Meine Abneigung gegen Apple-Produkte ist ja bekannt, wenn man meinen Blog liest. Die Dinger sind viel zu teuer, zu unfrei bzw. zensiert, zu eigenwillig zu bedienen und zu viel auf Schein statt Sein optimiert (Design statt Funktionalität). Aber in einem Punkt hatte ich meinen alten Mac Mini über die Corona-Krise schätzen gelernt. Über mehrere Monate musste ich mit meiner Band Corona-bedingt eine Pause hinsichtlich von Live-Proben einhalten. Aber wir hatten uns zu regelmäßigen virtuellen Proben mit JamKazam aufgerafft und das ging mit keiner anderen Hardware auch nur ansatzweise so gut wie mit dem Mac Mini. Seit wir aber wieder live proben können, habe ich einfach keinen Bedarf mehr an dem Mac Mini. Ich kann das macOS einfach nicht bedienen. Es ist mir (!) viel zu wenig intuitiv, unlogisch, beschränkt und unbequem.

Aber unter dieser unangenehmen Oberfläche und hinter dem ganzen lächerlichen Rummel um Apple befindet sich eine solide Basis. Denn der Drucker war am Mac Mini sofort eingerichtet (ok – das ging unter Linux und Windows am USB-Port auch) als auch direkt im Netzwerk verfügbar. Und das habe ich wie gesagt mit keiner anderen Konstellation hinbekommen.

Der alte Mac Mini von 2013 wird also sein – vermutlich 4. oder 5. – Leben in Zukunft als Druckserver fristen. Ohne Monitor, Tastatur oder Maus. Aber natürlich ist SSH- und VNC-Zugriff auf dem Teilchen eingerichtet – für alle Fälle.

Apropos „Für alle Fälle“: wenn die Sache mit Corona sich weiter so schlimm entwickelt, kann er (leider) vielleicht seinen Zwei-Job für virtuelle Proben mit JamKazam wiederaufnehmen :-(.

Vier gewinnt

So ganz langsam nimmt mein Büro in Bodenheim wieder einen Zustand an, in dem ich vernünftig arbeiten kann. Da u.a. 4 Regale, ein kleiner Rollcontainer und ein kleiner Tisch entfallen und dennoch mittlerweile fast alle Sachen wieder eingeräumt sind, wurde offensichtlich umfangreich entmistet als auch – hoffentlich sinnvoll – der Rest sortiert. Ein paar Sachen müssen noch weggeräumt, ein paar neue Dingen wie eine bessere Steckerleiste mit ganz viel Überspannungsschutz und eine Bodenschutzmatte ergänzt und ein paar Bilder aufgehängt werden, Aber dann sollte es das weitgehend gewesen sein.

Wobei ich eigentlich noch bei den nächsten Schnäppchen-Wochen im November einen neuen Bildschirm im Auge habe. Oder vielleicht auch „hatte“. Denn mir ist bisher gar nicht aufgefallen – oder besser: ich hatte es nicht ausprobiert – meine Workstation kann sogar 4 Monitore versorgen. Ich habe mal zusätzlich zu meinen 3 Monitoren an der Grafikkarte über den VGA-Ausgang an der internen Grafikschnittstelle des Mainboards einen weiteren alten Monitor gehängt. Das ist dann schon eine wahre visuelle Wand vor Einem.

Ich frage mich, ob ich dann wirklich noch einen weiteren Monitor brauche? Wobei – an meinen beiden Notebooks fehlt jetzt ein externer Monitor und wenn ich den kleinen Monitor wieder dafür abtrete, kann vielleicht oder ein 32″- oder 34″-Monitor das visuelle Raumgefühl noch verbessern. Mal sehen, ob da die nächsten Tage gute Angebote kommen …

Neu im Python-Tutorial – Argumente mit dem Scatter-Operator ein- und auspacken

Argumente mit dem Scatter-Operator ein- und auspacken ist das Thema in meinem aktuellen Entwickler-Tipp zu Python aus meinem Tutorial bei LinkedIn Learning. Python stellt damit interessante Möglichkeiten bereit, um sequentielle Datenstrukturen zu packen und zu entpacken. Man spricht in dem Fall oft auch von dem Scatter-Operator. Wobei dieser Begriff nicht standardisiert ist.

Präsenzschulung auf der Kippe

Seit fast 2 Jahren habe ich – mit einer Ausnahme einer Einzelschulung bei mir in meinem Büro in Eppstein – keine Präsenzschulung mehr gehalten. Ab Ende November ist jedoch eine große Schulungsmassnahme angesetzt, die im Umfang 120 Stunden (also 15 Tage) umfasst. Diese 120 Stunden werden auf 8 Wochen verteilt (inkl. 2 Wochen Ferien über die Jahre). Die ersten 5 Tage sind dabei als Präsensschulung in Marburg vorgesehen und die restlichen 10 Tage sollen auf Remote- und Präsenztermine aufgeteilt werden. Die Remotetermine sind auch teils nur ein oder zwei Stunden am Tag, denn seit letzter Woche habe ich parallel eine Remote-Schulung mit 16 halben Tagen bis Ende Januar laufen, in deren Terminablauf sich die Marburger Massnahme (da später beauftragt) einfügen muss. So der Plan.

Heute morgen kam aber schon die vorsichtige Information, dass die ganze Sache ob der steigenden Corona-Zahlen vielleicht doch auf vollständig remote umgestellt werden muss. Das wird sich aber die nächsten Tage noch kären.

Notbetrieb

Seit gut 2 Wochen räume ich mein Büro leer, damit die Wände gestrichen und ein neuer Boden gelegt werden kann. Am Donnerstag habe ich dann meine IT abgebaut und mit dem übrigen Rest komplett ausgeräumt. Gestern wurden dann die Wände gestrichen und die Unterlage für den neuen Boden gegossen. Aber am Wochenende muss ich auch etwas arbeiten und deshalb läuft hier gerade eine Art „Notbetrieb“ in einem extrem „kahlen“ Umfeld mit Bürostuhl, Notebook und Campingtisch. Für meine beiden Schulungstermin am Montag und Dienstag verziehe ich mich in das Büro in Eppstein und ab Mittwoch sollte ich das Büro wieder neu aufbauen können. So aufwändig solch eine Aktion auch ist – es ist die große Chance auf ein umfangreiches Entmisten und eine saubere Neuorganistation der Einrichtung als auch gesamten IT-Infrastruktur.

F-Strings zur Verwendung von Variablen in Strings – ein neuer Tipp aus meinem Tutorial zu Python

Um die Verwendung von F-Strings bei Variablen geht es in meinem aktuellen Entwickler-Tipp zu Python aus meinem Tutorial bei LinkedIn Learning. Es geht darum, dass man Variablen direkt in einem String auswerten lassen kann. Das vermeidet mühselige und oft unübersichtliche Stringverkettungen.

Ausmisten

Es heisst ja, dass 3x Umziehen 1x Abbrennen entspricht. Ich ziehe nicht um, aber in meinem Büro in Bodenheim kommt ein neuer Boden rein und die Wände werden neu gestrichen. Das bedeutet, dass ich das komplette Büro samt Flur ausräumen muss. Ich bin da schon seit mehreren Tagen immer wieder dran, denn so etwas ist verdammt viel Arbeit. Aber wenn ich die schon investiere, durchforste ich all den Kram, der sich über die Jahre angesammelt hat.

Sortieren, Verlagern und/oder Wegwerfen ist die Devise.

Diverse Sachen habe ich schon in mein Büro nach Eppstein verlagert, denn da habe ich eine Menge Platz. Aber es ist fast unglaublich, welches Zeug mir in die Finger gefallen ist, das es definitiv nicht wert war aufgehoben zu werden. Ich habe etwa so viel Schmierpapier aufgehoben, dass ich über Jahre versorgt wäre – wenn nicht neues Papier dazukommen würde. Ich habe einige Hundert Blatt aufgehoben und der Rest ist in die Altpapiertonne gewandert. Zusammen mit zig Bedienungsanleitungen, alten Unterlagen, Landkarten, Aufzeichnungen etc.

Aber auch Elektroschrott, den ich nie mehr brauche. Von uralter Hardware bis zu mehreren Dutzend Ladekabeln. Die Teile sind weitgehend auf den Wertstoffhof gekommen.

Eben bin ich über meinen Schatten gesprungen und an meine Belegexemplare meiner vielen Bücher bzw. Schulungsunterlagen und auch die Video-DVDs aus Zeiten von Video2Brain (jetzt LiL) gegangen. Da sind im Laufe der Jahre über die zig Neuauflagen und Übersetzungen um die 100 Bücher bzw. Schulungsunterlagen und einige DVDs angefallen. Von den meisten hatte ich noch zig Belegexemplare gehortet. Das macht wirklich keinen Sinn. Die vollkommen aus der Zeit gefallenen IT-Bücher von teils vor 20 oder mehr Jahren braucht kein Mensch mehr – außer mir als Andenken. Die kann ich nicht einmal verschenken. Ich habe von allen meinen Büchern ein Belegexemplar aufgehoben, dazu die Bücher und Schulungsunterlagen, die noch aktuell sind und von mir in Schulungen eingesetzt werden können sowie und ein paar zusätzliche Belegexemplare von Büchern, die für mich besonders wichtig waren (insbesondere von meinem allerersten Buch). Der Rest ist aber – schweren Herzens – ebenfalls in die Altpapiertonne gewandert.

So langsam leert sich das Büro und wenn das dann irgendwann wieder fertig ist. sollte es auch nicht mehr so beengt – ich will nicht sagen „zugemüllt“ hier sein.

YouTube-Downloader erstellen – aus meinem Tutorial zu Python

Mit Python und geeigneten Frameworks wird der Download von frei zugänglichen Videos fast zum Kinderspiel. Das zeige ich im aktuellen Entwickler-Tipp zu Python bei LinkedIn Learning. Sie sehen in dem Tipp, wie Sie das auf einfache Weise mit einem YouTube-Downloader als Grundlage für eigene Erweiterungen nutzen können – auf Basis eines Frameworks mit Namen pytube. Und bevor wir jetzt in die falsche Richtung denken – es geht nicht um einen YouTube-Downloader, der illegale Inhalte laden kann. Geschützte Dateien werden damit nicht geladen, aber wir können damit freie Videos laden, freie Multimediadateien.

Erstes Testvideo der Lamax

Um zu sehen, wie gut oder schlecht die Videoqualität von meiner neuen Action Cam (LAMAX W9.1 REAL) ist, bin ich vorhin kurz mit meinem Cross-Country-Bike eine ziemlich brutale Teststrecke über ganz schlechtes Kopfsteinpflaster, Feld- und Wiesenwege gefahren. Die Cam war mit einem der beiliegenden Aufsätze direkt am Lenker montiert und hat damit voll alle Schläge vom Untergrund abbekommen. Gerade auf dem Kopfsteinpflaster ist auf der Strecke kaum der Lenker festzuhalten. Ich hatte HD/30fps/High-Quality eingestellt (ich habe noch keine ausreichend schnelle Micro-SD für 4K oder mehr fps) und teils mit Bildstabilisierung, teils ohne aufgenommen. Und von der Geschwindigkeit teils normal, teils doppelte Geschwindigkeit.

Von dem Resultat der Aufnahmen bin ich ziemlich begeistert. Nicht täuschen – die Videoqualität ist durch die Nachbearbeitung und den Upload auf YouTube etwas schlechter als im Original bzw. Rohmaterial. M.E. muss sich die Videoqualität wirklich nicht hinter der einer modernen GoPro oder DJI verstecken – obwohl der Preis dieser Cam deutlich unter diesen liegt.

Die REST-API mit Python nutzen – neu in meinem wöchentlichen Tutorial zu Python

Mittwoch und bei LinkedIn Learning gibt es wieder einen neuen Entwickler-Tipp zu Python. Mit der REST-Schnittstelle erhält man zusätzliche Flexibilität in Python, um Management-Aufgaben durchzuführen aber auch automatische Informationen zu nutzen. Python bietet sich gerade zu ideal für die Zusammenarbeit an. Sogenannte Web Services stellen standardisierte Schnittstellen bereit, womit man über das Internet kommunizieren kann. Genau genommen können Sie Dienste in Anspruch nehmen, die in einer standardisierten Form bereitgestellt werden. Das kann man auch aus Python heraus nutzen. Das sogenannte RESTful-API oder allgemein Rest ist eine solche Programmierschnittstelle, die auf HTTP-Anfragen reagiert. Im Wesentlichen unterscheidet man hier zwischen den verschiedenen Methoden, die man mit HTTP-Daten anfordern kann. Get, Post, Put und Delete. Und in Abhängigkeit von diesen Methoden können gewisse Dinge bereitgestellt werden. Die Antwort von einem Rest oder RESTful Web Service liegt in der Regel in Json oder dem XML-Format vor und Python nutzt als Basis für REST oft das Modul requests.

Und Action – LAMAX W9.1

Ich habe eine neue Action Cam! Was sowohl beruflich als auch für die Freizeit von Bedeutung ist.

Für meinen Fliegerblog nehme ich seit vielen Jahren Videos und Bilder mit einer Action Cam auf, die ich meist am Helm befestigt habe. Gelegentlich brauche ich so ein Multimediamaterial aber auch beruflich, denn wenn ich etwa Videos in meinen Videotraining bei LinkedIn Learning zum Zeigen von Mutimedia-Features verwenden will, ist das mittlerweile ein echtes Rechteproblem – bei fremden Material. Also nehme ich dazu selbst aufgenommene Bilder und Videos, aber im Fall von Audiodateien auch Musik, die selbst komponiert und eingespielt habe oder die von meiner Band stammt.
Nun kam als Action Cam bei mir bisher eine GoPro zum Einsatz. Eine GoPro der 2. Generation! Was darauf hindeutet, dass die schon viele Jahre alt ist – ca 12 Jahre genau genommen. Das merkt man an der Bildqualität, aber das ist nicht einmal das Schlimmste – die GoPro muckt rum. Immer mehr. Im Grunde schon seit etwa 1 Jahr. Ich habe sie vor einiger Zeit zerlegt, richtig sauber gemacht und zurückgesetzt und danach hat sie teils wieder schöne Dauerbilder gemacht, aber sich auch teils vollkommen ohne Anlass abgeschaltet. Nun hat meine GoPro 2 über viele Jahre gute Arbeit geleistet, obwohl ich sie wirklich oft verwendet und ziemlich hart rangenommen habe und die Cam hat ihr Geld wirklich verdient. Also sei es ihr verziehen, dass sie so langsam müde wird.
Nur – mit dem Zustand, dass das Ding einfach nicht mehr zuverlässig ist, habe ich mich nun längere Zeit herumgeschlagen und mehrere Flugtage keine Bilder oder Videos sauber hinbekommen. Für den kommenden Black-Friday hatte ich daher schon seit Monaten vor, nach einem Ersatz zu schauen. Aber der Ausfall am letzten Wochenende hat mich dann doch ziemlich geärgert, weil ich einen wirklich schönen Flug mit dem Gleitschirm hatte, von dem ich gerne die Aufnahme gesehen hätte.
Damit war die GoPro einfach reif. Ich habe über Wochen bereits Preise und Testberichte der verschiedenen aktuellen GoPros als auch mehrerer Cams von Billig-China-Marken verfolgt. Ich hatte in der Folge mehrere Billig-China-Cams in der Auswahl, denn im Grunde brauche ich die super Features der teureren GoPros nicht. Ich war kurz davor, mich für eine der China-Cams zu entscheiden, aber dann habe ich mir für alle infrage kommende Cams Referenzvideos auf YouTube angesehen. Und die Qualität fand ich erschreckend schlecht. Besonders dann, wenn das gleiche Material von einer teuren Cam von GoPro oder DJI im Vergleich gezeigt wurde.
Durch Zufall bin ich beim weiteren Suchen nach GoPro-Alternativen in einer seriösen Computerzeitschrift auf einen Test gestossen, bei dem eine Cam mit Namen LAMAX W9.1 REAL 4K 60fps als ungewöhnlich gut in der Klasse unter 200 EUR bewertet wurde. Die ist wohl nicht wirklich bekannt und hatte auf Amazon gerade einmal 3 Rezensionen – im Gegensatz zu zig Tausenden von Rezensionen bei den China-Cams oder den GoPros und anderen Platzhirschen. Wobei die Rezensionen bei den China-Cams in großen Umfang durch Geschenke bei 5-Sterne-Bewertungen gekauft bzw. verzerrt werden und dementsprechend für die Tonne sind.
Aber der Test in der PC-Zeitschrift war so überzeugend, dass ich kurzentschlossen am Sonntag – noch gefrustet von dem Ausfall der GoPro an dem Flugtag – die Lamax-Cam bestellt habe. Sie war auch nicht teurerer als die etwas besseren China-Cams, die auf Amazon so prägnant beworben werden, und ich habe mich einfach auf den Test verlassen. Erst nach der Bestellung habe ich gemerkt, dass die Lamax W9.1 auch gar keine China-Cam ist, sondern aus Tschechien kommt. Was in Hinsicht auf Geld in der EU lassen auch von Vorteil ist.
Vorhin kam die W9.1 an und natürlich musste ich sie gleich ausprobieren. Was gleich mit dem Problem verbunden war, dass nur eine Micro-SD als Speichermedium geht und ich sowas ich nicht da habe. Nur in einem SmartPhone für alte Daten. Die Daten darauf habe ich dann gesichert und die Karte in die Cam eingelegt. Mit dem Resultat, dass die SD-Karte zu langsam wäre. Alle Videos mit besserer Qualität werden verweigert. Erst bei HD mit 30 fps hat sich die Cam erbarmt und ein Video aufgenommen.

Aber eigentlich wollte ich erst einmal sehen, wie die W9.1 sich bei 4K schlägt. Ich war ob des recht niedrigen Preises unsicher, ob die Cam wirklich eine gute Wahl ist und wollte sie erst einmal ausführlich testen. Der Plan – wenn sie nichts taugt, soll sie zurückgehen und dann gibt es am Black Friday doch eine GoPro.

Das Thema ist durch.

Nach den kurzen Tests fällt mir nur negativ an der Lamax auf, dass die Verschlüsse sehr schwer bzw. fummlig aufzumachen sind und bei Dunkelheit die Bildqualität mau ist. Selbst das Video in der niedrigen Qualität ist jedoch eine Revolution gegenüber dem, was ich von der GoPro 2 gewohnt war. Wenn ich eine schnelle Micro-SD dann habe und 4K-Aufnahmen mache, kann das eigentlich nur noch besser werden. Dazu wird mit der Cam ein Zubehör geliefert, dass kaum ein Wunsch offen bleibt. Auch die App samt der WiFi-Verbindung ist der Burner.
Ich bin gespannt, wie die Qualität dann bei echten Aufnahmen wird, aber spontan bin ich von dem Ding begeistert. Ich frage mich echt, was eine GoPro der neuen Generation besser leistet, um den mehrfachen Preis zu rechtfertigen? Ich müsste mal Videos im direkten Vergleich sehen.

Java 17 LTS

Es ist fast erschreckend, wie lange ich mich mit Java schon beschäftige. Über 25 Jahre, denn ich habe Java kennengelernt, als es noch in der ersten Betaversion war. Auch wenn mittlerweile andere Sprachen Java für mich (aber auch allgemein wohl) etwas in den Hintergrund gedrängt haben, bin ich dennoch immer noch bei der Sache. Insbesondere verfolge ich die Neuerungen von Java über die letzten Jahre genau. Wobei dessen halbjährlicher Aktualisierungszyklus in meinen Augen nicht gut ist. Jede neue Version treibt irgendwelche Säue als Previews durch das Dorf und dann kommen die erst mehrere Versionen später oder auch gar nicht.

Aber mit der gerade erschienenen Version 17 gibt es einen Meilenstein, unter dem die vielen kleinen Neuigkeiten seit Java 11 nun einen festen Stand bekommen. Denn Java 17 ist die erste LTS-Version seit Java 11, der mit Java 8 die vorige LTS-Version voran ging. Die großen Unternehmen beachten ja meist nur die LTS-Versionen und wenn man die Entwicklung von Java betrachtet, ist es wohl auch nur sinnvoll, auf diese LTS-Versionen umzusteigen. Es sei denn, man ist ein Early-Adapter und/oder an den jeweiligen Neuerungen im Halbjahresturnus wirklich interessiert.

So gesehen ist also nach einigen Jahren gerade wieder eine Version erschienen, die sich vermutlich großflächig etablieren wird und von allgemeinem Interesse sein sollte.

Winter kann kommen

Letzte Woche bin ich noch in kurzen Hosen mit dem Fahrrad zwischen meinen Locations in Bodenheim und Eppstein gependelt. Aber so langsam steht der Winter vor der Tür und irgendwann müssen die Winterreifen auf das Auto. Denn obwohl ich überwiegend remote arbeite – ich pendle wie gesagt immer wieder zwischen Bodenheim und Eppstein und u.U. kommt Ende November sogar eine Vor-Ort-Schulung in Miltenberg.

Kurzentschlossen habe ich also eben die Winterreifen montiert. Zwar ist das noch ziemlich früh im Jahr, aber ich hasse es auf dem eiskalten Boden zu liegen, wenn ich den Wagenheber unter die Kiste positionieren muss. Deshalb wechsele ich die Reifen lieber bei halbwegs warmen Temperaturen.

Wobei ich eigentlich keine Lust mehr habe, die Reifen immer selbst zu wechseln. Das ist doch eine arge Plackerei..

Aber die Reifen ins Auto packen, zu einer Werkstatt fahren, dort warten und dann die Sache wieder zurück dauert definitiv vielfach länger als es eben selbst zu machen. Mit der kompletten Vorbereitung samt Anziehen vom Blaumann, dem Heranschaffen des Werkzeugs bis hin zum abschliessenden Prüfen des Luftdrucks, Wegräumen und Waschen bin ich da in knapp über einer Stunde durch. Selbst im optimalen Fall mit Termin brauche ich mindestens die doppelte Zeit, wenn ich das machen lasse. Von Wartezeiten auf Termine und Warteschlangen in der Werkstatt in Stosszeiten gar nicht zu reden.

WhatsApp Desktop App startet nicht unter Windows 10

Ich nutze gerne die Desktop App, wenn ich bei WhatsApp mehr als ein bisschen Text eingeben will. Spracherkennung hin oder her – an einer richtigen Tastatur und mit einer Maus kann man einfach mehr machen und es geht alles besser. Nur musste ich die letzten Tage bei allen Rechnern zwangsweise die Desktop App von WhatsApp aktualisieren. Und jedes Mal ist auf allen Rechner die davor problemlos laufende App danach nicht mehr gestartet.

Tipps im Internet sagen nun, dass sich bei der aktuellen Version der WhatsApp Desktop App der Prozess einfach nicht richtig beendet und man ihn im Task Manager abschießen soll. Danach würde die App wieder starten. Das war vielleicht bei anderen Bugs sinnvoll, aber beim aktuellen Problem hilft das nicht weiter.

Also ziehe ich den Schlussstrich und deinstalliere die Desktop App. Gewinne Platz und hab einen Datenspion weniger auf meinen Rechnern. Die Web App ist ja zur Not sowieso genauso gut zu verwenden wie die Desktop App.

Reguläre Ausdrücke in Python

Bei LinkedIn Learning gibt es seit heute wieder einen neuen Entwickler-Tipp zu Python. Reguläre Ausdrücke in Python sind das Thema. Reguläre Ausdrücke sind sehr mächtige Features, um Suchausdrücke in Form von Pattern zu definieren. Das re-Modul ist der Zugang in Python, das in diesem Video vorgestellt wird. In Python ist das Modul re die Basis. Nicht die einzige Möglichkeit, aber das ist ein Standardmodul, mit dem man reguläre Ausdrücke formulieren und vor allen Dingen verwerten kann. Das Interessante ist nicht die Formulierung, das ist die Verwertung. Das heißt, es gibt Methoden, um reguläre Ausdrücke, also Such-Pattern in irgendeiner Form zu verarbeiten, nach Übereinstimmungen zu suchen, aber beispielsweise auch Texte an gewissen Stellen aufzusplitten und ähnliche Dinge.

Das Billig-Chuwi als Skype-Remote-Server für Visual Studio

Mein Microsoft-Surface-Billig-Klon von CHUWI fristet ein eher gemütliches Dasein in meinem Eppsteiner Zweitbüro. Wenn ich mein Matebook nicht dabei habe und mal was am PC da machen will, kommt es gelegentlich zum Einsatz. Genau dafür habe ich das Teilchen ja gekauft – ein möglichst preiswerter Notfall-PC, den ich in Eppstein deponiere und wenn das CHUWI UBook Tablet mal so zum Einsatz kam, hat es sich durchaus ausreichend geschlagen. Mehr braucht es bei gelegentlichem Einsatz wirklich nicht.
Nur heute war der große Tag von dem Kerlchen. Ich habe nach 2 Wochen Azubi-Ausbildung in Python und MySQL die Woche für einen anderen Stammkunden eine Schulung in C# übernommen (natürlich wieder remote) und musste heute in Eppstein arbeiten, weil ein Handwerker sich angemeldet hatte.
Nur haben von den 5 Teilnehmern des Kurses 2 kein Visual Studio installiert. Oder zumindest nicht so, dass man C#-Projekte anlegen kann. Der Fehler geht ganz klar auf die Firma, die die Schulung in Auftrag gegeben hat. Wie kann man Teilnehmern eine C#-Schulung buchen und dann kein passendes Visual Studio auf deren Rechner bereitstellen? Da es sich um eine ganz große Firma handelt, geht auch nicht mal schnell eine Installation. Das muss beantragt werden und dann muss das Profil geändert werden usw. usw.
Das ist im Grunde nicht mein Problem, aber ich möchte natürlich, dass meine Teilnehmer zufrieden sind und von der Schulung profitieren. Einer der beiden Teilnehmer hat in der Folge seinen Privatrechner genutzt, aber bei dem anderen ging es nicht. Gestern haben wir uns für die reine Syntax von C# bei ihm mit einer Webseite beholfen, über die man C# im Browser ausführen kann. Zumindest einfache Syntax-Anweisungen. Aber bei echter OOP oder gar GUI-Programmierung langt das definitiv nicht.
Die Schulung verwendet nun Skype (!!) als Remote-Tool. Nicht Teams – nein, Skype. Kundenanforderung. Angeblich wird nächstes Jahr umgestellt, aber im Moment kommt noch das antike Skype zum Einsatz. Wobei es zur Not auch damit geht – das hatte ich bei dem Kunden schon mehrfach nutzen müssen und bin halbwegs zurecht gekommen.
Ja, und damit der Teilnehmer, der gänzlich ohne Visual Studio auskommen musste (bisher – vielleicht ist VS morgen nachinstalliert) , heute praktische Übungen durchführen konnte, habe ich neben meinem Matebook auch das Chuwi in die Sitzung angemeldet, da Visual Studio gestartet und ihm die Remote-Kontrolle via Skype beim Sharen des Programms übergeben. Was soll ich sagen? Ging richtig gut. Sowohl die Leistung von dem Chuwi hat ausgereicht also auch die Performance bei der Übertragung.