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.

Schreibstube geschlossen

Ich bin mit den Aktualisierungen einer Schulungsunterlage als auch dem Buch erst einmal fertig. Ging schneller als erwartet. Es wird garantiert noch nachträgliche Korrekturen geben – vor allen Dingen beim Buch, das ich eben erst frisch abgegeben habe. Aber erst einmal ist die Schreibstube wieder geschlossen. Nächste Woche bereite ich neue Videoaufnahmen für LiL vor, aber vor deren Beginn steht noch in der übernächsten Woche eine C#-Schulung an. Wie im Moment immer remote.

Konstanten in Python als Entwickler-Tipp

Ausnahmsweise erst am Donnerstag – mein wöchentlicher Entwickler-Tipp zu Python. Dieses Mal geht es um Konstanten in Python. In Python gibt es zwar vordefinierte Konstanten, aber das Anlegen von eigenem Konstanten im klassischen Sinn ist nicht vorgesehen. Aber man kann etwa mit Tupeln und read-only-Properties feste Werte deklarieren, und diese sind auch noch viel flexibler, als klassische Konstanten.

Mehrfachdeklaration in Python

Diese Woche geht es beim Entwickler-Tipp zu Python um Mehrfachdeklaration in Python. Es kommt durchaus vor, dass man verschiedene Dinge im Quellcode mehrfach deklariert. Dann muss klar sein, was passiert. Wir schauen es in dem Tipp von LiL an, was in Python bei Klassen und Funktionen eine Mehrfachdeklaration für eine Auswirkung hat.

Die Sache mit dem W

Es ist Mittwoch und wenn nichts ausgewöhnliches dazwischen kommt, wird mein wöchentlicher Entwickler-Tipp zu Python bei LiL (LinkedIn Learning)  freigeschaltet. Die Woche betrachte ich die Dateierweiterung .pyw und den pythonw-Interpreter bzw. was die Unterschiede zu der Dateierweiterung .py und dem „normalen“ python-Interpreter sind.

Aus dem Tonstudio an die Hochschule

Cordova

Ich habe meine aktuellen Aufzeichnungen für LinkedIn Learning (LiL)  abgeschlossen und nächste Woche geht es (virtuell) wieder für 2 Tage an die Technische Hochschule Bingen. Ich hatte da für dieses Semester im Studiengang „Mobile Computing“ nach 2 oder 3 Jahren Pause erneut einen Lehrauftrag angenommen.

Ende März/Anfang April hatte ich da mehrere Tage zu Cross Plattform Entwicklung mit Cordova remote unterrichtet und meinen Studenten die Entwicklung einer App als Semesterarbeit aufgegeben. Die Vorführung steht jetzt am Ende des Semesters an

 

Was gibt es zu importieren?

Die Woche bin ich an Aufnahmen für LinkedIn Learning (LiL). Das hat aber keinen Einfluss auf meine wöchentlichen erscheinenden Entwicklertipps der Woche zu Python. Diese Woche geht es um Details beim Import.

Eppsteiner Graz

Außerhalb von Corona-Zeiten wäre ich die Woche ziemlich sicher in Graz, um bei LinkedIn Learning (LiL)  neue Videos aufzunehmen. Ich wäre gestern Abend von FFM nach Graz geflogen (so, wie ich es über viele Jahre erst zu Video2Brain und dann eben LiL gemacht habe), hätte mich im Hotel eingecheckt und wäre jetzt so langsam ins Studio rüber gegangen – was vom Daniel aus nur ein paar Meter auf die andere Seite des Bahnhofs sind.

Aber wegen Corona sind weiter die Aufnahmen vor Ort unterbunden und so bin ich gestern am Abend in mein „Aufnahmestudio“ nach Eppstein gewechselt, habe dort alles eingerichtet, bereits das Probevideo aufgenommen und hochgeladen. Nun warte ich auf das virtuelle Go aus Graz und dann wird die Woche halt wieder in Eppstein statt in Graz aufgenommen.

So gerne ich auch in meinem Elternhaus und meiner alten Umgebung bin – wie einer meiner LiL-Trainerkollegen mir gegenüber schon mehrfach geäußert hat:

„Zu den Aufnahmen nach Graz kommen ist wie ein bisschen Urlaub. Man wird umsorgt, ist im Hotel untergebracht, kann nach den Aufnahmen die Gegend erkunden oder mit Kollegen losziehen und kommt einfach raus aus dem gewohnten Trott.“

Das geht auch mir jetzt seit 1,5 Jahren ab – denn so lange war ich schon nicht mehr in Graz.

Casting-Show

Die letzten zwei Tage habe ich mal wieder eine Online-Schulung gehalten. Thema war UML. Und als diese fertig war, war auch der regelmäßige Entwicklertipps der Woche zu Python bei LinkedIn Learning (LiL)  freigeschaltet. Thema diese Woche ist die Typumwandlung.

Let … it be

Bei meinem Online-Kursen zu JavaScript (JavaScript Grundkurs 1: Grundlagen und Syntax, JavaScript Grundkurs 2: Programmiertechniken und Frameworks und JavaScript: In HTML 5 arbeiten) für  LinkedIn Learning (LiL)  kam vor einiger Zeit von einem Anwender die Frage auf, warum ich die Anweisung let nicht behandle? Die Frage war berechtigt und ich habe ein Video für dieses Thema nachgereicht, was ja aufgrund der modernen Architektur der LiL-Lernplattform kein Problem ist. Wobei ich ursprünglich natürlich gewisse Gründe hatte, die Verwendung von let so stiefmütterlich zu behandeln. Denn die Unterstützung ist immer noch sehr eingeschränkt. Anyway – serverseitig ist let mittlerweile Standard und ganz moderne Browser unterstützen die Anweisung auch, so dass man – mit der nötigen Vorsicht auf Client-Seite – damit arbeiten kann.

Der Nachtrag wurde Anfang der Woche in das Training Grundkurs 2: Programmiertechniken und Frameworks als Aktualisierung eingefügt.

Immutable vs. Mutable

Same procedure as every ….

Mittwoch!

… James.

Im Rahmen meiner regelmäßen Veröffentlichungen eines  neuen Entwicklertipps der Woche zu Python für LinkedIn Learning (LiL)  geht es diese Woche um Immutable versus Mutable und was Python dabei im Hintergrund macht.

Tupel Um-Tupeln

In einigen Tagen geht es mit neuen Videoaufnahmen für LinkedIn Learning (LiL)  wieder los. Immer noch in Form von Home-Recording, aber es ist absehbar, dass ich auch irgendwann mal wieder nach Graz komme. Bis dahin wird jedoch noch einiges Wasser „die Bach runterfließen“ – ja die (!) Bach, was man als echter Hesse selbstverständlich sagt.  Und die Bach bringt Mitte jeder Woche ein Boot mit einem  neuen Entwicklertipp der Woche zu Python vorbei. Diese Woche behandle ich das Manipulieren von Tupeln. die ja „eigentlich“ immutable sind.

Zoom-Meeting mit Linkedin Learning direkt in der Natur

Anlässlich interner Umstrukturierungen in Graz bei LinkedIn Learning (LiL) gab es heute ein Abschieds-/Vorstellungs-Meeting auf Zoom. Da wollte ich auf jeden Fall teilnehmen, um mal wieder die Grazer Mann- bzw. Frauschaft und auch andere Trainer zu sehen. Wenn auch nur virtuell.

Nur wollte ich auch um die Zeit eine Radtour machen. Also habe ich beides kombiniert und dann am Alteburger Markt eine Pause gemacht, um auf einer Bank unter Bäumen per SmartPhone am Zoom-Meeting teilzunehmen. Tja – moderne Techniken machen es möglich. Unmöglich war allerdings die Hitze. Hab mich mit der Tour etwas übernommen.

Gulp.js: Workflow in Webprojekten

Zur Zeit habe ich ja jede Woche die Veröffentlichung eines neuen  Entwicklertipps der Woche zu Python bei LinkedIn Learning (LiL) zu vermelden.

Aber es werden zusätzlich immer wieder vollständige Videotrainings publiziert. Natürlich nicht wöchentlich, sondern in unregelmäßigen Intervallen – halt gerade so, wie ich komplette Trainings aufgenommen habe und diese bei LiL fertig produziert wurden.

Jetzt ist es wieder soweit – Gulp.js: Workflow in Webprojekten ist da. Wieder eine US-Adaption eines Trainings. Das Original ist von meinem amerikanischen Kollegen Ray Villalobos konzipiert worden.

Es geht um die Optimierung des Erstellens von Websites. Denn so etwas ist im Laufe der Jahre ein ziemlich komplizierter Prozess geworden. Man erstellt nicht nur mehr einfach HTML-, CSS- und/oder JavaScript-Dateien. Oft verwendet man zusätzlich Tools wie CSS-Prozessoren wie Sass, um vor allen Dingen auch mit älteren Browser kompatibel zu sein.
Diesen Prozess der Webseiten-Erstellung kann man mit einem Tool namens gulp.js verwalten und optimieren. Damit gibt es eine konsistente, einfach zu verwendende Sprache auf Basis von JavaScript für die Erstellung und Verwaltung gängiger Aufgaben. In diesem Kurs geht es um die Konzepte hinter gulp.js.

Webseitenerstellung mit gulp.js optimieren aus dem Kurs „Gulp.js: Workflow in Webprojekten“ von Ralph Steyer und Ray Villalobos

Mittwoch – mit 2 regelmäßigen Events

Es ist Mittwoch und da stehen bei mir 2 regelmäßig auftretende Ereignisse an. Bereits seit Jahrzehnten ist Mittwochs der Probetermin meiner Band. Zwar Corona-bedingt die letzte Zeit nur virtuell mit JamKazam, aber ab heute stellen wir wieder um.

Nicht ganz so lange, dass man das – wie bei der Bandprobe – „traditionell“ nennen kann, gibt es aber als 2. Event regelmäßig neuen IT-Content.  Aber nun doch schon mehrere Monate wird Mittwochs ein neuer  Entwicklertipp der Woche zu Python bei LinkedIn Learning (LiL)  veröffentlicht. Diese Woche geht es um den Einsatz von Default-Parametern beim Aufruf einer Funktion.

Defaultparameter aus dem Kurs „Python-Entwicklertipps: Jede Woche neu“ von Ralph Steyer