Der letzte Tipp mit leichter Verspätung, der aktuelle dafür schon heute am frühen Morgen

Mein regelmäßiger Entwickler-Tipp zu Python wurde letzte Woche bei LinkedIn Learning erst an Freitag freigeschaltet, aber der Entwickler-Tipp zu Python in der Woche ist heute – als am üblichen Mittwoch – schon früh  am Morgen da.

Ich begebe mich dieses Mal etwas in die Welt der Administration bzw. von Administratoren. Eigentlich für mich ein etwas fremdes Gebiet, denn ich bewege mich sonst in der Regel rein im Umfeld der Programmierung. Genaugenommen sogar überwiegend der Anwendungs- und Web-Entwicklung. Aber über die Jahre kommt man auch immer wieder mit Themen aus dem Admin-Bereich in Berührung. Ich behaupte, dass ich mittlerweile theoretisch sogar als Admin arbeiten könnte. Vielleicht wäre ich kein wirklich guter Admin, aber die meisten administrativen Dinge – insbesondere unter Linux – würde ich wohl hingekommen.

Und bei dem aktuellen Tipp geht es ja immer noch um Python. Nur halt um einen Einsatzzweck, der für Admins von Interesse ist – wie man mit Python zeitgesteuerte Befehle auf dem Server ausführen kann. Konkret nutze ich dabei Linux als Serversystem und zeige, wie man CronJobs erstellen bzw. CronTabs mit Python schreiben kann.

Ausnahmsweise Donnerstag

Diese Woche ist erst am Donnerstag der neue Entwickler-Tipp zu Python bei LinkedIn Learning freigeschaltet worden. Es geht hier darum, wie man aus Python eine automatische Quelltextdokumentation generieren kann. So eine Dokumentation von Softwareprojekten ist eine oft leidige, aber immens wichtige Aufgabe und in nahezu allen modernen Programmiersprachen gibt es Möglichkeiten, diese Dokumentation aus dem Quellcode heraus etwas zu erleichtern, indem man bestimmte Token in den Quellcode schreibt und daraus eine HTML-Dokumentation oder auch in einem anderen Format erzeugt werden. In Python kann man etwa pydoc bzw. dessen Fork pydoc3 verwendet werden, was in dem Tipp gezeigt wird.

Werte mehreren Variablen in einer Zeile zuweisen – neu in meinem Tutorial zu Python

Auch wenn ich derzeit in Marburg auf Schulung bin, erscheint natürlich am Mittwoch bei LinkedIn Learning wieder ein neuer, aktueller Entwickler-Tipp zu Python. Thema ist die elegante Zuweisung der Werte bei mehreren Variablen.

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.

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.

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.

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.