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.

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.

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.

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.

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.

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.

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.

Reference Counting – Länger und länger

Mit 12:19 Minuten ist mein aktueller Entwicklungs-Tipp der Woche bei LiL schon gewaltig lang für ein Video. Aber zu dem Thema „Reference Counting“ gibt es bei Python einfach eine Menge zu sagen. Dabei geht es um eines der geheimnisvollsten Dingen in Python – die Referenznummer bei Objekten. Die Details und Auswirkungen sind sehr spannend und erklären die manchmal etwas „eigenartigen“ Verhaltensweisen von Python. Das betrifft etwa die Technologie der Speicherbereinigung, aber nicht nur diese.

Properties vs Getter und Setter in Python

Heute ist wieder der Regeltag, an dem bei LinkedIn Learning mein aktueller Entwickler-Tipp zu Python veröffentlicht wird. Getter und Setter auf der einen Seite und Properties auf der anderen Seite stehen im Fokus. So genannte Properties sind in vielen Sprachen als Ersatz von Gettern und Settern sehr populär geworden. Auch Python kennt diese.

Mein bisher längster Entwickler-Tipp zu Python

Gerade habe ich bei LinkedIn Learning nachgesehen, welcher aktueller Entwickler-Tipp zu Python die Woche veröffentlicht wurde. Denn die Reihenfolge, wie die Tipps freigeschaltet werden, ist nicht zwingend identisch zur Reihenfolge, wie ich sie aufgenommen habe. Ich habe dazu zwar gewisse Vorschläge eingereicht, aber die habe ich weder in Erinnerung noch ist es sicher, dass die auch so umgesetzt werden. Deshalb bin ich in der Tat jede Woche gespannt, welches Thema für die jeweilige Woche angesagt ist.

Die Woche geht es um diverse Spezialitäten bei Lambda-Ausdrücken. Mit über 10 Minuten ist dieser Entwickler-Tipp wohl auch der bisher umfangreichste, wenn ich das recht im Blick habe. Aber es gibt eine ganze Menge zu Lambda-Ausdrücken unter Python zu sagen. Einfach selbst überzeugen.

Qualitätskontrolle mit Linting – Neues in meinem Tutorial zu Python

Bei LinkedIn Learning gibt es wieder einen neuen Entwickler-Tipp zu Python. Thema ist diese Woche die Qualitätskontrolle mittels Linting. Beim Linting geht es allgemein um die Verbesserung der Softwarequalität. Für die Qualität von Software es ist nicht nur elementar, dass diese fehlerfrei ist. Es gibt weitere Kriterien, die teils standardisiert getestet werden können. Unter Python kann man das mit PyLint machen. Hervorragend wird das Linting dabei in Visual Studio Code integriert.

Doppelte Verschiebung

Für Mittwoch hatte ich eine UML-Einzelschulung auf der Agenda. Remote und nur einen Tag, aber über Nacht ist der Teilnehmer krank geworden. Er hat um eine Verschiebung gebeten und da ich den Monat ziemlich flexibel bin, habe ich die auf den heutigen Donnerstag verschoben. Interessanter Weise ist aber auch mein wöchentlicher Entwickler-Tipp zu Python erst am heutigen Donnerstag freigeschaltet worden. Also gleich eine 2-fache Verschiebung. Im Entwickler-Tipp geht es um das Debuggen von Python-Quellcode in Visual Studio Code.

Lambda-Ausdrücke bei Iteratoren – der aktuelle Tipp aus meinem Tutorial zu Python

Heute waren die Kollegen bei LinkedIn Learning aber verdammt früh schon am Arbeiten, denn bereits vor 8:00 Uhr ist mein wöchentlicher Entwickler-Tipp zu Python schon veröffentlicht worden. Im aktuellen Tipp nehme ich mir den Einsatz von Lambda-Ausdrücken bei Iteratoren vor. Da zeigt sich eine der ganz großen Stärken von Python, denn diese Syntaxkonstruktion ist immens effizient.

»Herzlichen Glückwunsch! Dein Kurs gehört zu den beliebtesten Kursen des Jahres!«

Das war der Betreff der Mail aus Graz von LinkedIn Learning (LiL), die ich gerade bekommen habe. Inhalt war die Mitteilung, dass mein Kurs Python lernen vom 1.9. bis 15.10.2021 freigeschaltet ist und in der Kampagne »Beliebteste Kurse auf LinkedIn Learning« für den deutschsprachigen Raum vorgestellt wird. Na, da freue ich mich doch wie Bolle 🙂

Hier ist ein kurzer Abstract zu der besagen Kampagne von LiL:

Die Kampagne im Überblick

Wir befinden uns mitten im #GreatReshuffle, einer Zeit, in der Berufstätige ihre Karriere mehr denn je selbst in die Hand nehmen und sich in ihren aktuellen Unternehmen und in neuen Unternehmen neu positionieren. Deshalb sind wir besonders begeistert, nun bereits zum fünften Mal die jährliche Liste der beliebtesten Kurse bekanntzugeben. Damit helfen wir Lernenden, die richtigen Kompetenzen zu erwerben, um ihren nächsten Karrieresprung vorzubereiten.

Mehr als 5 Millionen Berufstätige haben die 20 beliebtesten Kurse dieses Jahr angesehen. Im Vergleich zum Vorjahr wurden weltweit 53% mehr Stunden für das Lernen aufgewendet. Um unseren Lernenden dabei zu helfen, die Kompetenzbereiche zu entdecken, die sie auf der Karriereleiter voranbringen, haben wir deinen Kurs bis zum 15. Oktober freigeschaltet.

 

Doppelschlag

Dieser Mittwoch bietet Anlass zur doppelten Freude :-).

  1. Mein regelmäßiger wöchentlicher Entwickler-Tipp zu Python ist da und behandelt diese Woche das Top-Level-Script-Environment. Dabei geht es darum, wie man die oberste Ebene einer Python-Anwendung zur Laufzeit identifizieren und wie man mit einigen magischen Elementen das Verhalten beim Aufruf steuern kann.
  2. Der zweite Anlass der Freude 😉 ist, das wieder einmal ein Buch bzw. Schulungsheft von mir erschienen ist. Beim Herdt-Verlag veröffentliche ich ja seit mehreren Jahren regelmäßig solche Schulungsunterlagen oder lektoriere manchmal auch fachlich andere Unterlagen. Einige Unterlagen sind dabei von Grund auf von mir, aber diverse habe ich irgendwann übernommen und aktualisiert.
    Das gerade erschienene Buch bzw. Schulungsheft zu Joomla! 4 ist so eines, was ich vor vielen Jahren (2015) schon übernommen und damals auf die Version 3 aktualisiert hatte. Nun hat sich die Entwicklung von Joomla! 4 jedoch ewig hingezogen, aber Ende August ist die neue Version endlich erschienen und wir sind damit just-in-time mit dem Buch zu Joomla! 4 auf dem Markt. Natürlich habe ich mit Vorversionen von Joomla! 4 gearbeitet, aber die waren schon so gut wie fertig und bei der Überarbeitung habe ich gegengeprüft. Genaugenomen hatte ich schon 2020 mit der Überarbeitung begonnen, weil ich mit einer Fertigstellung von Joomla! 4 in dem Jahr fest gerechnet hatte. Schon da war das Projekt weit hinter der Roadmap zurück. Aber nachdem sich die Verzögerung in der Fertigstellung nicht mehr in Tagen oder Wochen und eigentlich auch nicht Monaten, sondern eigentlich nur in Jahren spezifizieren lies, habe ich Ende 2020 die Überarbeitung erst einmal eingestellt. Zumal die Vorversion zu dem Zeitpunkt auch noch unausgereift waren, wie mir bei der Arbeit damals deutlich wurde. Diesen Sommer hatte ich aber sowohl wieder Zeit und auch die Vorversionen von Joomla! waren endlich soweit, dass das Erscheinen der Finalversion greifbar wurde. Und so sind wir wie gesagt mit dem heutigen Tag mehr oder weniger just-in-time fertig geworden :-).

Das war es mal wieder

Ich bin fertig mit meiner Aufnahmesession für LinkedIn Learning. Ich habe ein Training rund um Neuheiten bei Java auf den neusten Stand gebracht, bei dem mittlerweile zwei Versionsupdates erfolgt sind, und ein vollkommen neues Training eingespielt. Dabei stehen Kryptografie und Steganografie mit Python sowie diverse Themen rundherum im Fokus.

In der letzten Zeit hatte ich oft Adaptionen von Trainings gemacht oder Trainings zu Themen, die von LiL an mich herangetragen wurden. Und natürlich meine Serie mit wöchentlichen  Entwicklers-Tipp zu Python.

Aber das neue Training ist vollkommen auf meinem Mist gewachsen. Ich hatte irgendwann die Idee, mich mit dem Thema aus Sicht von Python zu beschäftigen und dann aus Lust und Laune ein paar Scripts vor mich hinprogrammiert. Nachdem ich diese Scripts fertig hatte, kam mir die Idee, dass man daraus doch ein komplettes Training machen könnte. Mehr dazu kommt, wenn das Training produziert und veröffentlicht ist.

MRO

Auch wenn meine aktuelle Aufnahmesession für LinkedIn Learning noch am Laufen ist, erscheint dennoch regelmäßig mein wöchentlicher Entwickler-Tipp zu Python. Der aktuelle Tipp hat die Method Resolution Order oder kurz MRO zum Thema. Die Method Resolution Order bezeichnet die Reihenfolge, in der Python nach einer Methode in einer Hierarchie von Klassen sucht. Insbesondere spielt das eine wichtige Rolle im Zusammenhang mit der Mehrfachvererbung, wenn eine Methode in mehreren Superklassen zu finden ist. Mit MRO beziehungsweise Method Resolution Order bezeichnet man den Suchpfad von Python nach Methoden.

Start meiner neuen Videoaufnahmen

Müde bin ich, Kängeruh …

Ich bin schon gestern Abend ziemlich spät noch nach Eppstein gefahren, um dem befürchteten Verkehr heute morgen wegen des Zug-Streiks zu entgehen. Bereits vor 8:00 Uhr hebe ich dann heute mein Testvideo aufgenommen und zur Kontrolle hochgeladen. Wenn das Go aus Graz kommt, starte ich meine neue Aufnahmesession für LinkedIn Learning dann richtig.

Bis dahin gehe ich jetzt erst einmal einkaufen, um für die kommende Aufnahmewoche versorgt zu sein. Ich bin sowieso noch nicht richtig in Gang gekommen und ein kleiner Spaziergang tut da zudem gut.

Die Serie wird fortgesetzt

Wie bei regelmäßigen Ausstrahlungen von TV-Sendungen geht auch mein wöchentlicher Entwickler-Tipp zu Python bei LinkedIn Learning jede Woche „auf Sendung“. Fast immer am Mittwoch (wie heute), aber gelegentlich gibt es kleine Verzögerungen. Was aber irrelevant ist. Die Woche geht es darum, wie man innerhalb von Python-Klassen weitere Klassen deklarieren kann. Wie die meisten objektorienterten Programmiersprachen gestattet auch Python die Deklaration von sogenannten inneren oder eingebetteten Klassen (nested classes bzw. inner classes).

Ausführbare Programme mit PyInstaller – mein neuster Entwicklertipp

Mein wöchentlicher Entwickler-Tipp zu Python bei LinkedIn Learning kümmert sich darum, wie man aus Python-Skripten ausführbare Programme mit dem PyInstaller erstellt. Das erleichtert die Weitergabe, denn nicht in jedem Fall hat ein Anwender eine passende Python-Installation zur Verfügung und oft haben Scripts auch Abhängigkeiten. Da genügt es nicht, einfach nur das Script weiterzugeben, es müssen gegebenenfalls auf der Plattform des Anwenders auch Abhängigkeiten erfüllt sein. Und in diesem Fall macht es sehr viel Sinn, eine ausführbare Datei mit allen notwendigen Ressourcen zu erzeugen. Und PyInstaller ist ein Tool, womit man das machen kann. Es gibt dieses Tool für Windows aber auch Mac OS und Linux.