Mein neuer LiL-Python-Kurs ist bei der internationalen GitHub Codespaces-Aktion dabei

Der Python-Kurs, den ich im Sommer neu aufgenommen habe, ist gestern freigeschaltet worden. Mittlerweile sind schon sehr viele Kurse von mir bei LinkedIn Learning erschienen (aktuell sind 62 Kurse online verfügbar), aber diese Code Challenge ist dennoch etwas Besonderes.

Denn das Training ist Teil einer internationalen Kampagne, bei der in der Tech-Library von LiL gestern auf einen Schlag über 50 internationale Programmierkurse veröffentlicht wurden, die sich durch Integration in die ebenfalls brandneue Cloud-basierte Entwicklungsumgebung (IDE) Github Codespaces auszeichnen. Mein Python-Kurs,ist eben als einer von nur 3 deutschsprachigen Kurse dabei. „Mein neuer LiL-Python-Kurs ist bei der internationalen GitHub Codespaces-Aktion dabei“ weiterlesen

Radikalschnitt

Die letzten Wochen standen bei mir ganz im Zeichen sehr vieler Schulungstage. Zuerst im Rahmen mehrerer Fachinformatikerausbildungen zu Python und MySQL, aber die letzten 3 Wochen komplett zu Java und JavaFX/OpenJFX. Dabei ging es bei purem Java um eine „Werkstatt“ im Rahmen der Fachinformatikerausbildung, bei der noch mit Swing gearbeitet wurde.

Bei dem Kurs zu JavaFX habe ich hingegen professionelle Java-Entwickler einer Berliner Behörde geschult, die vorher bei einem anderen Trainer einen Kurs zu Maven gemacht hatten und danach eben noch JavaFX kennenlernen sollten. Zum Teil hatten die aber auch schon vorher mit JavaFX gearbeitet.

Der JavaFX-Kurs war bereits früher angesetzt gewesen, aber der
eingeplante Trainer war ausgefallen und ich habe den Kurs mit einem neuen Termin kurzfristig übernommen. Die beiden Tage habe ich zwar recht schwer untergebracht und eigentlich war ich bereits so ausgelastet, dass ich im Grunde keine Termine mehr annehmen wollte. „Radikalschnitt“ weiterlesen

Auf dem Rückweg aus Hamburg

Ich sitze am Gate und warte auf meinen Flieger. Der Tripp nach Hamburg ist also so gut wie erledigt und es war in der Tat mal wieder interessant/nett auf Tour zu sein. Ich mag Hamburg und war in einer schönen Ecke im Norden, wo ich bisher noch nicht war.

Das Hotel war zwar eine Katastrophe und die Liste der Mängel länger als die längste Praline der Welt, aber trotzdem habe ich mich dort gar nicht so unwohl gefühlt, wie es objektiv der Fall sein müsste (eigentlich müsste ich vom Hotel Geld zurückfordern).

Auf dem Weg vom Schulungsraum zum Flughafen in HH habe ich mir einen e-Scooter geleistet. Das erste Mal habe ich so ein Ding ausprobiert, was hier in HH massenhaft für den Nahverkehr genutzt wird. Macht Spass damit zu fahren, aber ist schon recht teuer und muss ich nur als Gag nicht haben. Für kurze Entfernungen gut, aber die kann ich meist auch laufen. Aber neben „mal wieder mit einem Flguzeug in die Luft zu gehen“ war der e-Scooter ein Teil der eben interessanten Abwechselung gewesen, die dieser Tripp mit sich gebracht hat. Und die Entfernung zum Flughafen ist auch fast 4,5 Kilometer gewesen und da hat der e-Scooter schon Sinn gemacht.

Allerdings ist insgesamt der Reiseaufwand schon der Abtörner. Auto zu viel Stau und zu lange Zeit, Bahn unzuverlässig, teuer und aufwändig und mit dem Flieger sind die ganzen Aktionen vor dem eigentlichen Flug mit Sicherheitskontrolle etc. auch nicht wirklich das, was ich so brauche. „Auf dem Rückweg aus Hamburg“ weiterlesen

HH-Schulung hat begonnen

Die Schulung in Hamburg hat begonnen. Ich habe offiziell 9 Teilnehmer, aber 2 haben sich krank gemeldet. Mit dem Rest mache ich Python. Genaugenommen ist das eine Python-Werkstatt mit hauptsächlich Praxis. Normalerweise halte ich vorher eine Python-Schulung, aber die hat ein Kollege übernommen, da ich letzte Woche noch mit einer MySQL-Schulung für die Kölner Gruppe beschäftigt war.

Die Schulung letzte Woche war remote und mit der Hamburger Gruppe kommt nächste Woche auch MySQL dran – aber dann auch remote. Das bedeutet, ich fliege am Freitag wieder zurück und wir treffen uns dann auf Teams. Ich wollte einmal nicht über das Wochenende in HH ausharren und schon gar nicht für 3 Tage wieder hierher fliegen. Das hätte ich auch nicht geregelt bekommen, denn ab Donnerstag nächster Woche übernehme ich wieder die Wiesbadener Gruppe. Das wäre mit einer Rückreise am Mittwochabend einfach zu eng geworden.

Django bzw. 2-facher Doppelschlag

„Doppelschlag“ aus der Überschrift kann man auf zwei Arten verstehen:

  1. In der Woche wurden bei LinkedIn Learning (LiL) gleich 2 neue Video-Training von mir veröffentlicht. Anfang der Woche die Überarbeitung meines Grundlagen-Trainings zu C und gestern dann ein brandneues Django-Training.
  2. Mit dem neuen Django Grundkurs verbinde ich die beiden IT-Technologien (Python und Web-Programmierung), die ich in den letzten Jahren wohl am meisten verwendet habe.

Django ist ein quelloffenes und serverseitiges Webframework, das die Programmiersprache Python mit einer modernen Architektur zur Generierung der klassischen Webtechnologien für den Client kombiniert. In meinem Grundlagenkurs zeige ich die Philosophie des Frameworks und beschreibe ausführlich die Installation und den Dateiaufbau eines Django-Projekts sowie den Betrieb in einer virtuellen Umgebung. Weitere Filme beschreiben den Unterschied zwischen einem Projekt und einer App, beleuchten das MVT-Schema, Views und Templates, und Sie sehen, wie Sie mittels QuerySets auf Datenbanken zugreifen. Schritt für Schritt lernen Sie, wie Sie ein eigenes Projekt starten und eine eigene Webapplikation entwickeln.

Python-Weeklies laufen aus

Meine neuen Videoaufnahmen für LinkedIn Learning sind fertig. Ich habe ein neues Training rund um Python aufgenommen, das in den Kontext einer neuen Serie bzw. Konzeption als eines der ersten Testtraining eingefügt werden soll. In einem gleichartigen Konzept werden dazu Training von verschiedenen Trainern und mit unterschiedlichen Sprachen veröffentlicht. Wenn sich die Strategie bewährt, werden irgendwann auch anderer Trainer und Themen folgen. Es gibt bereits US-Versionen, an denen wir uns orientieren. Aber fachlich als auch in Details sind wir eigenständig und ich lege Wert darauf, dass ich meinen eigenen Stil dennoch beibehalte und eigene Themen bereitstelle.

 

Zusätzlich habe ich noch 2 Erweiterungsfilme eines meiner Training zu JavaScript aufgenommen. Durch die fortschreitende Unterstützung von JavaScript in den verschiedenen Browsern war es mir wichtig, dass diese modernen Themen rund um asynchrone Programmierung und DOM-Selektion ergänzt werden.

Die Aufnahmen waren die Woche mit einigen technischen und organisatorischen Problemen behaftet, sind aber dennoch flott durchgegangen. Auch wenn die Hitze wirklich brutal war und ich die Pausenzone auf dem Balkon reichlich ausnutzen musste.

Ansonsten wird das neu aufgenommene Python-Training auch eine Art Ersatz bzw. Fortsetzung meiner Entwicklertipp der Woche zu Python werden. Denn diese laufen so langsam aus. Vielleicht ist es aufgefallen, aber der Abstand zwischen dem letzten Entwicklertipp der Woche zum Thema Anagramm und dem aktuellen Entwicklertipp der Woche zum Modul trace und Coverage.py war länger wie eine Woche. Die Veröffentlichungsfrequenz wird quasi „runtergebremst“, bevor die  Entwicklertipps der Woche in ein „normales“ Videotraining mit einer fixen Anzahl an Filmen umgewandelt werden.

Hot record

Gestern habe ich in Eppstein die neuen Videoaufnahmen für LinkedIn Learning angefangen. Ich bin ganz früh mit dem Mopped hingefahren und als ich ins Amstertal runtergefahren bin, wurde es schlagartig mehrere Grad kälter. Das merkt man insbesondere auf dem Mopped sofort. Es war noch vor 8:00 Uhr und gerade zu frisch mit dem Fahrtwind. Aber das hat über den Tag nicht angehalten und selbst hier in Eppstein wurde es den Tag über brutal heiß. 2x ist mir am späten Nachmittag der Rechner ausgegangen und es könnte sein, dass er überhitzt war. Ich habe keine Daten verloren und der Rechner ist auch ziemlich direkt wieder da gewesen, aber die Temperaturen sind schon heftig. Wobei es hier noch halbwegs geht. In meinem Büro in Bodenheim unter dem Dach sollte es noch um mehrere Grade heißer sein und wegen Aufnahmen könnte ich da meinen kleinen Klima-Block auch nicht anmachen.

Anagramm – nicht Anna gram

In der übernächsten Woche stehen wieder Videoaufnahmen für LinkedIn Learning an, aber heute gibt es erst einmal wieder einen neuen Entwicklertipp der Woche zu Python. Es geht darum, was ein Anagramm ist und wie man mit Python dies überprüfen kann.

Was ein Anagramm ist, kann man einfach beschreiben. Keinesfalls steht es dafür, dass irgendeine Anna gram ist, sondern es ist eine Buchstabenfolge, die durch reine Umsortierung der einzelnen Buchstaben aus einer anderen Buchstabenfolge entsteht. So eine Umsortierung kann im Rahmen der Kryptografie interessant sein. Oder auch bei Vorgaben, dass ein neues Passwort nicht einfach ein Anagramm eines bisherigen Passwortes sein darf. Diese Anwendung greife ich möglicherweise auf und werde darauf vielleicht im Rahmen der oben schon angedeuteten kommenden neuen Videoaufnahmen für LinkedIn Learning zurückkommen. Mal sehen – da bin ich im Moment am Vorbereiten.

Auf das Dateisystem zugreifen – neu im Tutorial zu Python

Es gibt wieder einen neuen Entwicklertipp der Woche zu Python bei LinkedIn Learning. Es geht darum, wie man mit Python auf das Dateisystem des Rechners zugreifen kann, um dort Datei- oder Verzeichnis-Operationen durchzuführen. Die beiden Module pathlib und os.path sind für Sie die wahrscheinlich wichtigsten Einstiegsstellen.  Dabei beschreibt pathlib einen objektorientierter Ansatz, um auf das Dateisystem zuzugreifen, während os.path einen, sagen wir mal, traditionellen Weg bereitstellt. Sie haben viele ähnliche Funktionen oder deckungsgleiche Funktionalitäten und beide haben so ziemlich alles, was man so braucht, um auf dem Dateisystem zu arbeiten.

Terminalinhalt mit Python zur Laufzeit Plattformneutral leeren

Der neue Entwicklertipp der Woche zu Python ist bei LinkedIn Learning freigeschaltet. Es geht darum, wie man den Terminalinhalt zur Laufzeit leeren kann. Denn das ist nicht so ganz trivial bzw. einfach mit einer Python-Anweisung möglich. Denn wenn man in einem Terminal arbeitet, kennt Python keinen integrierten Befehl, um dieses Terminal dynamisch zu löschen, das heißt, direkt aus einem Skript heraus. Sie können selbstverständlich im Terminal einen Betriebssystembefehl wie cls unter Windows als clear unter Linux eingeben und damit wird das Terminal geleert. Aber das machen Sie aktiv im Terminal nach oder vor dem Ausführen des Skripts. Es gibt diese Befehle aber so nicht in Python.

Doch manchmal möchte man eben zur Laufzeit auch aus einem Skript das Terminal leeren und dann wieder oben mit einem frischen Terminal beginnen. Das kann man nachprogrammieren und die Basis ist das Modul os.system. Damit kann man aus Python einen Betriebssystembefehl aufrufen. Wenn man zudem vorher das Betriebssystem abfragt, kann man diesen dann auch in Abhängigkeit von dem Betriebssystem passend auswählen und das Skript Plattformneutral erstellen.

Tipp & Tour

In ein paar Minuten geht es auf einen kurzen Radurlaub mit meinem Sohn. Ein kleiner Nachschlag unserer Vierländertour rund um den Bodensee. Dieses Mal aber nur 4 Tage und weitgehend in der Heimatregion. Es soll von Marburg die Lahn und den Rhein entlang gehen. Ich hoffe, dass die Fahrradmitnahme mit dem Zug nach Marburg auch geht, denn mit der Bahn habe ich überwiegend schlechte Erfahrungen. Wir werden sehen. Vorher habe ich aber noch gecheckt, welcher  Entwicklertipp der Woche zu Python heute bei LinkedIn Learning freigeschaltet wurde. Es geht die Woche darum, wie man per os-Modul auf die Betriebssystemschnittstelle zugreifen kann.

Manche verstehen unter „Python“ wohl etwas anderes :-)

Bei LinkedIn Learning habe ich ja diverse Videotrainings zu Python und ergänzender Techniken bzw. Themen aufgenommen und auch einen regelmäßigen Entwicklertipp der Woche zu Python am Laufen. Dazu kommt neben häufigen Python-Schulungen noch ein Buch:

Programmierung in Python - Ein kompakter Einstieg für die Praxis - Steyer, Ralph
Programmierung in Python
Programmierung in Python – Ein kompakter Einstieg für die Praxis
  • Autor: Steyer, Ralph
  • 978-3-658-20705-2
  • Umfang in Druckseiten: 257
  • Verlag: Springer Fachmedien Wiesbaden GmbH
  • Erscheinungsjahr: 2018

Aber andere Leute verstehen „Python“ wohl etwas anders bzw. universeller. Ein Vermieter hat nach dem Auszug seiner Mieter in der Wohnung drei zurückgelassene Pythons gefunden. Stellen sich Fragen:

  1. Waren die Mieter Programmierer?
  2. Auf welche Programmiersprachen sind sie umgestiegen, dass die Pythons überflüssig waren?

Moduleinbindung absichern

Ich warte gerade auf meine „Gäste“ (Studenten) zur Teams-Sitzung der TH Bingen. Heute ist die letzte Fragestunde, bevor diese die Semesterarbeit abgeben sollen. Diese Fragestunde ist aber optional und vielleicht kommt auch niemand. Nachdem ich gestern mit dem ebike nach Wiesbaden zu meiner Schulung der Fachinformatiker gefahren bin, bin ich danach weiter nach Eppstein zum Training und habe hier übernachtet. Nach der Teams-Sitzung geht es dann wieder mit dem ebike zurück nach Bodenheim. Davor habe ich aber wie am Mittwoch üblich bei bei LinkedIn Learning geschaut, welcher Entwicklertipp der Woche zu Python heute freigeschaltet wurde. Thema ist, wie man die Moduleinbindung absichern kann. Denn wenn man in Python Module einbinden will, braucht man manchmal Informationen über die Module und muss auch ggf. reagieren, wenn eine Einbindung schiefgeht. Eventuell muss man dann andere Module einbinden oder von einem anderen Ort.

Der Bedingungsoperator in meinem Tutorial zu Python

Ab der Woche habe ich eine regelmäßige Schulungssession jeweils am Montag und Dienstag jeder Woche gestartet. Die geht über mehrere Wochen. Eine Präsenzschulung, was in den aktuellen Zeiten bemerkenswert ist. Aber in Wiesbaden und damit entfallen eine längere Anreise (ich plane sogar, hin und wieder mit dem ebike da hinzufahren) sowie eine externe Übernachtung. Die regelmäßigen Slots werden dann Mittwochs durch die wöchentlichen Veröffentlichung meiner Entwicklertipp der Woche zu Python ergänzt. Der heute bei LinkedIn Learning freigeschaltete Entwicklertipp hat den Bedingungsoperator zum Thema.

Wenn man einen Programmfluss aufgrund einer Bedingung steuern möchte, nutzt man in den meisten Programmiersprachen eine if-Anweisung oder eine if-else- bzw. elif-Anweisung oder so irgendwas in dieser Art oder  in anderen Sprachen wie Python gegebenenfalls auch switch-case oder so irgendwas.

Es gibt aber in fast allen Programmiersprachen einen sogenannten Bedingungsoperator. Man nennt ihn auch den tenären Operator, respektive auch den Konditionaloperator oder den triadischen Operator. Und so etwas gibt es auch in Python.

Vor der Hitze da – der neue Entwicklertipp

Das soll im Laufe der Woche immer heißer werden und darauf freue ich mich schon so richtig :-(. Denn mein Büro unter dem nicht-isolierten Dach wird dann vermutlich wieder die 40 Grad deutlich überschreiten – trotz einer kleinen, mobilen Klimaanlage. Aber zur potentiellen Abkühlung habe ich zumindest meinen „Pool“ schon mal vorbereitet.

Zumindest ist bei LinkedIn Learning der neueste Entwicklertipp der Woche zu Python heute schon vor der Hitze verfügbar. Thema ist die Anwendung der format-Funktion auf Strings in Python. Python stellt dazu diese mächtige und im Grunde auch recht einfach anzuwendende Funktion bzw. Methode bereit, um Variablen und deren Werte in einen String an einer bestimmten Stelle einzufügen und dabei die für die Ausgabe zu formatieren.

IO 2

Die kommenden Wochen und Monate stehen ungewöhnlich viele Schulungen auf meiner Agenda. Sogar einige Tage mit Vor-Ort-Terminen sind dabei, was in Zeiten von Corona bemerkenswert ist. Diese sind allerdings bei mir in der Gegend und ich brauche damit nicht zu reisen. Die entfernten Termine sind die nächsten Monate alle remote. Aber in der Woche ziehe ich noch neue Aufnahmen wegen der grundlegenden Überarbeitung eines meiner Videotraining bei LinkedIn Learning durch.

Damit habe ich gestern schon begonnen, jedoch unter erheblichen Schwierigkeiten! Diese betrafen nicht das Training oder die eigentliche Aufnahme, sondern SharePoint. Wieder einmal, denn meine Probleme damit sind irgendwie ein Running Gag. Ich war gestern schon sehr früh in meinem Büro in Eppstein angekommen und habe soweit alles für die Aufnahmen eingerichtet. Da wir bei LinkedIn Learning mittels Office 365 und besagtem SharePoint zusammenarbeiten, habe ich mich da angemeldet. In dem eigentlichen SharePoint-Bereich tauschen wir alle Dateien aus. Was für mich bedeutet, dass ich da meine Videos hochlade und der Proofer diese dann kontrolliert. Auch Folien und Quelltexte (wobei die mittlerweile auf Github landen und hier nur redundant geführt werden) werden von mir dahin geladen. Dazu gibt es in Excel 365 eine Indexdatei für die Aufnahme, an der wir gemeinsam im Team arbeiten.

Bis 9:00 Uhr war alles ok. Dann bin ich plötzlich aus SharePoint geflogen mit der Meldung, dass ich keine Rechte hätte, auf diesen Content zuzugreifen. Es hat bis 15:00 Uhr gedauert, bis ein Techniker meinen Zugang freibekommen hat. Ich hatte bis dahin so ziemlich alles probiert, um von meiner Seite den Zugang wieder zu bekommen, was mir eingefallen und möglich ist.

  • Panikflagge bei LiL gehisst
  • abgemeldet und neu angemeldet
  • PC neu gestartet
  • Rechner mit Bereinigungsprogrammen gesäubert
  • mehrere Browser ausprobiert und zum Teil auch erst nachinstalliert
  • 3 verschiedene E-Mail-Adressen/Accounts, die alle (angeblich) legitimiert sind ausprobiert
  • 2 verschiedene PCs mit Windows 10 und Windows 11 ausprobiert und die ganzen Sachen kombiniert
  • Selbst einen Zugriff über SmartPhone versucht

Immer das gleiche Resultat. Auf allen neuen/gesäuberten Rechnern/Systemen gab es jeweils beim ersten Versuch des Zugriffs auf SharePoint eine Fehlermeldung, dass SharePoint ein Problem hat. Beim 2. Zugriffsversuch ist die weg, aber dafür mein Account zu. Jeder Account. Noch verwirrender – bei anderen Mitgliedern der Gruppe gab es m.W. keine Probleme.

Ich hasse SharePoint und bin dieser ständigen Probleme wirklich leid. Zumindest konnte ich meine Aufnahmen halbwegs durchziehen und ab 15:00 Uhr dann auch zur Kontrolle einreichen bzw. die Indexdatei pflegen. Aber die endlosen nutzlosen Versuche, um Zugriff auf SharePoint zu bekommen, haben viel Zeit gekostet. Und im Gegensatz zu sonstigen technischen Problemen, bei denen ich immer etwas gelernt habe und damit für mich noch etwas Positives meist mitnehmen konnte, habe ich keinerlei neue Erkenntnisse aus der Aktion gezogen –  außer dass SharePoint ganz großer Mist ist. Solange es keine Probleme macht, ist die Sache ja ok, aber es gibt einfach zu oft Probleme. Selbst die Lösung nach vielen Stunden und ist durch einen Admin erfolgt, der auch diverse Zeit erfolglos rumprobiert hatte. Soweit ich das erkennen konnte, wurden alle meine Accounts vollkommen beseitigt und komplett neu eingerichtet.

Und da heute wieder Mittwoch ist, ist auch der neueste Entwicklertipp der Woche zu Python verfügbar, weshalb die Überschrift des Beitrags „IO“ beinhaltet – für Input-Output. Die „2“ deshalb, weil das vor zwei Wochen schon mal der Fall war, dass ich sowohl produziert habe als auch ein Videotraining veröffentlicht wurde. Thema des Tipps sind Enumerationen in Python. Ein sogenannter Enum ist ein Aufzählungstyp, den es schon sehr lange gibt. Schon vor der objektorientierten Programmierung hat man damit gearbeitet. Beispielsweise in C, was gerade das Thema meiner Überarbeitung ist, gibt es solche Typen. In Python gibt es zwei Strategien, wie man solche Aufzählungstypen nun umsetzt. Einerseits gibt es eine Built-in-Funktion enumerate() und es gibt aber auch eine Klasse Enum aus dem Modul enum.

Zip und Büroprobleme mit eventueller Umplanung der neuen Aufnahmen

Wie üblich steht am heutigen Mittwoch bei LinkedIn Learning der neueste Entwicklertipp der Woche zu Python verfügbar. Thema ist die zip-Funktion in Python Diese lässt einen normalerweise an Komprimierung denken, aber das ist der falsche Ansatz. Wenn man  an einen Reißverschluss denkt, kommt man der Funktionalität näher. Wie bei einem Reißverschluss werden die einzelnen  Elemente von iterierbaren Strukturen damit zusammengefügt. Es gibt einige nützliche Anwendungen, die ich in dem Tipp bespreche.

Allerdings ist für mich das Erscheinen des Entwicklertipps heute eher zweitrangig, denn vor meinem Büro in Eppstein ist ein Bautrupp angefahren. Es gibt ein Leck in der Wasserleitung. Allerdings mit Ankündigung und deshalb war ich heute vor Ort, um die Leute zur Ortung des Lecks in den Keller zu lassen. So wie es aussieht, betrifft das Leck den Teil der Leitung, die auf meinem Grundstück verläuft.

Eben fangen sie an, die Straße aufzureißen. Was immer hier eine besondere Situation ist, denn es handelt sich um eine sehr enge, einsprurige Sackgasse. Und wenn da was gemacht wird, ist alles hinter der Stelle komplett von der Welt abgeschnitten. Aber meine Videokonferenz habe ich zumindest noch vor dem Lärm durchbekommen.

Die ganze Angelegenheit wird jedoch sehr aufwändig, denn es ist hier nicht nur eng. Es gibt hier eine hohe Trockenmauer aus Naturstein und vermutlich viel Stein im Boden. Wenn es schlecht läuft, müssen die nicht nur die Strasse aufreißen und da ein Loch baggern, sondern von meinem Hof mehrere Meter tief nach unten sowie auch ein Loch in die Wand des Kellers bohren. Denn wahrscheinlich muss die gesamte Leitung ausgetauscht werden. Und das dauert dann mehrere Tage, womit meine neuen Videoaufnahmen für LinkedIn Learning in der kommenden Woche betroffen wären. Denn nach Pfingsten steht die Neuaufnahme von einem Training an, das ein bisschen aktualisiert und aufgehübscht werden muss. Falls es dann noch Baulärm gibt, kann ich die Aufnahmen hier knicken. Dann werde ich das in Bodenheim machen müssen, was grundsätzlich auch möglich ist. Nur ist da die Gefahr von Ablenkung sowie Störungen einfach höher und vermutlich werde ich immer wieder Videos unterbrechen oder mehrfach aufnehmen müssen. Aber es wird schon gehen und vielleicht schaffen die es hier auch bis zum Wochenende. Wichtiger ist mir natürlich, was die Versicherung zu der Sache sagen wird. Denn es kommt im Moment schon dicke, da auch in meiner der vermieteten Wohnung in Vockenhausen mehrere Schäden zu reparieren sind. Da war ich gestern abend zur Besichtiung. Zudem wurde gerade hier in Eppstein der Stromzähler getauscht. Alles zeitaufwändig und mit Arbeit verbunden. Das einzig Gute – in der Woche laufen die „normalen“ Jobs wie Schulungen, Korrekturen oder Aufnahmen nur auf Sparflamme und ich kann die Termine halbwegs organisieren.

Aufnahmen soweit fertig und neuer Entwicklertipp der Woche

Ich sollte mit den Aufnahmen zu meinem neuen Videotraining bei LinkedIn Learning durch sein. Zumindest bis auf ein paar Abschlussarbeiten oder wenn ich etwas übersehen habe. Da morgen Feiertag ist, fahre ich nachher wieder von meinem Zweitbüro in Eppstein zurück nach Hause, wobei ich morgen abend oder am Freitag nochmal herkomme, weil noch ein weiteres Projekt für LiL diese Woche ansteht. Zwischenzeitlich ist auch der neueste Entwicklertipp der Woche zu Python verfügbar. Der Zugriff auf das „Top-level script environment“ in Python ist das aktuelle Thema.  Ein module-Objekt wird in Python durch verschiedene Attribute charakterisiert. Unter anderem gibt es Attributnamen, die mit einem doppelten Unterstrich vor- und nachgestellt werden, und diese kann man über ein name-Attribut auswerten. Wenn nun Python als ausführbarer Code auf der obersten Ebene, dem sogenannten Top-Level Script Environment, ausgeführt wird, dann wird in diesem name-Attribut der Wert main stehen (mit Underscores vorne und hinten gekennzeichnet). Das kann man aktiv verwenden.

Polymorphismus in Python – aus meinem Tutorial zu Python

Mittwoch und bei LinkedIn Learning ist der neue Entwicklertipp der Woche ist verfügbar. Dieser Tipp zeigt, wie man in Python Polymorphismus implementieren bzw. nachbilden kann. In den meisten objektorientierten Programmiersprachen gibt es ein polymorphes Verhalten aufgrund einer Technologie, die man Überladen, Overload, nennt. In Python ist so etwas nicht vorhanden in dem Sinne, aber man kann es nachbilden. Dazu verlagert man die Funktionalität direkt in eine Funktion oder Methode und diese entscheidet, wie sie sich verhält. Im Gegensatz zur echten Polymorphie mit Überladen, wo es verschiedene Methoden gleichen Namens, gleichen Bezeichners, aber einer eindeutigen Unterscheidung im den Gültigkeitsbereich gibt, haben wir hier nur eine Methode oder Funktion.