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.

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.

Die Aufnahmen laufen

 

Mittlerweile habe ich schon einige Videos aufgenommen und bereits eine Pause gebraucht. Bei meinen letzten Tripps nach Graz habe ich mir einmal einen Motorroller im Hotel geliehen und bin damals an einem freien Tag eine Tour rund um den Schöckl gefahren.

Bei einem anderen Graz-Besuch hatte ich mir im Hotel ein Fahrrad geliehen und die nahe Umgebung abgeklappert.

Zu Fuss gehe ich sowieso regelmäßig in die Stadt und auf den Schlossberg.

Auch wenn ich aus besagten Corona-Gründen in Eppstein und nicht in Graz bin, habe ich eben diese „Tradition“ direkt am ersten Aufnahmetag beibehalten und bin eine kleine Runde mit dem Rad über den Rettershof gefahren.

Ein uraltes Rad habe ich in Eppstein deponiert und dafür taugt das immer noch. Zwar kenne ich die ganze Gegend seit frühsten Kindertagen, aber es hat dennoch was von Kurzurlaub. Und macht die Birne wieder frei, für weitere Aufnahmen.

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

Und nochmal Brand Awarness-Kampagne von LinkedIn Learning

Wenn das so weiter geht, kann ich bald nicht mehr durch die Gassen gehen, ohne Autogramme geben zu müssen ;-).

Nachdem Kurse von mir in der ersten großen Brand Awarness-Kampagne für die DACH-Region (Deutschland-Österreich-Schweiz) von LinkedIn Learning (LiL) in dem einen Video auf Youtube sogar direkt im Fokus standen, bin ich auch in dem allgemeineren Video, das sich nicht an eine bestimmte Zielgruppe richtet, im Hintergrund eine Weile präsent. So von 0:10 – 0:14 im Zeitindex. Die 4 Sekunden sind schon knapp, aber immerhin und das Video hat schon jetzt gewaltige Besucherzahlen.