KI und Kunst

Ich bin gerade über Craiyon gestolpert. Damit kann man auf Basis von künstlicher Intelligenz (KI oder engl. AI – deshalb Craiyon)
aus einem Textstring eigene Kunstwerke schaffen, die zufällig generiert
werden. Man kann detailiert beschreiben (am besten auf Englisch), was im
Bild enthalten sein soll.

Etwa nimmt man das Wort „Wing“, was dann zu zufällig generierten Bildern mit Flügeln führt. Aber auch reine Nonsens-Begriffe oder unbekannte Worte führen zu einem Ergebnis. Und das ist meist noch viel interessanter.

Teils einem überraschenden Ergebnis, denn über einen Artikel zu so einem überraschenden Ergebnis bei einem Nonsense-Begriff bin ich auf den Dienst gestoßen.

Ich musste direkt ausprobieren, was da rauskommt, wenn aus „rjs“ und „RJS EDV-KnowHow“ Kunst wird. „KI und Kunst“ weiterlesen

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.

Es gibt ein neues LiL-Videotraining – mein neuer C Grundkurs

Heute ist bei LinkedIn Learning (LiL) ein neues Video-Training von mir erschienen. Wobei „neu“ etwas genauer beschrieben werden muss, denn es handelt sich um eine Überarbeitung eines Trainings, das ich schon vor vielen Jahren aufgenommen hatte. Aber die Überarbeitung ist sehr umfangreich gewesen und deshalb kann man in der Tat von „neu“ sprechen. Thema ist die Programmiersprache C. Also die Kernsprache fast aller modernen Programmiersprachen. Das Video-Training stellt das Syntaxkonzept von C ausführlich vor und Sie lernen Schritt für Schritt, wie Sie mit einer geeigneten Entwicklungsumgebung Programme schreiben können. Durch seine Strenge zwingt Sie C von Anfang an zu einem sauberen und strukturierten Programmierstil, was in Ihrer späteren Karriere zur/zum Entwickler:in von unschätzbarem Vorteil sein wird. Mit Hilfe zahlreicher Challenge/Solutions-Filme können Sie Ihr erworbenes Wissen immer wieder testen und Ihre Lösungen mit vorgegebenen Lösungen vergleichen.

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.

Vor Ort – oder doch lieber remote?

Aktuell bereite ich gerade für nächste Woche eine Cobol-Schulung vor. Auch wenn ich die letzten Wochen Vor-Ort-Schulungen gehalten habe – die Sache wird wieder remote laufen. Ebenso wie meine Videoaufnahmen für LinkedIn Learning in der übernächsten Woche. Für mich stellt sich mittlerweile die Frage, ob und wann meine Arbeit wieder ganz oder zumindest überwiegend auf „Präsenz“ umgestellt wird? Denn ich habe für die kommenden Wochen und Monate wieder Schulungsanfragen, die zwingend Vor-Ort laufen sollen. Zum Teil habe ich sie schon zugesagt. Aber Corona, die aktuell katastrophalen Rahmenbedingungen beim Fliegen (heute wird zusätzlich zu den total chaotischen Flughafenbedingungen durch den Urlaubswahnsinn sogar noch in FFM gestreikt), die permanent unzuverlässige Bahn sowie die explodierenden Benzinpreise bzw. allgemeinen Reisekosten lassen mich meine Zusagen bereuen und  überlegen, ob ich nicht konsequent auf „Remote“ bestehe? Vielleicht mit Ausnahme von Schulungen hier in der Umgebung, die ich u.U. sogar mit dem Rad anfahren kann (wie die letzten Wochen) und Videoaufnahmen bei LinkedIn Learning in Graz, denn ich will da unbedingt mal wieder hin. Aber ansonsten?

Ich muss Ende September nach Hamburg. Wie soll ich denn da hinkommen?

  • Inlandsflug? Theoretisch billig, gut und schnell. In der Praxis eine Umweltsauerei und besagtes Chaos an den Flughäfen lassen das im Grunde als Option nicht zu.
  • Bahn? Das klappt bei mir einfach nie. Mein Sohn hat letzte Woche wieder 5,5 Stunden für eine Strecke gebraucht, die nach Plan 90 Minuten dauern sollte, ich habe mein letztes Ziel vor 3 Wochen (Marburg) gar nicht erreicht, weil es einfach in Giessen nicht mehr weiterging, Anschlusszüge erreiche ich sowieso fast nie und ich kann nicht mehr zählen, wie oft meine Fernzüge unterwegs stehengeblieben sind.
  • Auto? Bei den Kosten, den Staus durch die vielen Baustellen und auch wegen der Umwelt wirklich nicht gut. Nach HH sind es weit über 500 Km und da brauche ich ja 6 – 7 Stunden einfach.

Ich liebe HH und das war mit ein Grund, warum ich diese Maßnahme Vor-Ort zugesagt habe, aber ich hoffe dennoch, dass Corona die Sache auch für den Kunden auf Remote zwingt. Doch die Kunden wollen eben wieder verstärkt von Remote weg. Gestern habe ich von einem Schulungspartner, für den ich die letzten Wochen UML und Java bei Fachinformatikern geschult habe, einen Hilferuf bekommen. Denn rein zufällig soll er in einigen Tagen für einen Teil dieser Gruppe eine Cobol-Schulung halten. Mein Schulungspartner ist nun Cobol-Spezialist und macht das seit gut 35 Jahren – früher Host und mittlerweile unter Linux. Er ist also in Cobol fitter wie ich und der Hilferuf ging nicht um konkrete Cobol-Fragen und auch nicht darum, ob ich das übernehmen könne.

Es ging darum, dass beim Kunden neue Corona-Regeln in Kraft getreten sind. Die Gruppe, die Cobol in den Räumlichkeiten des Kunden (einer Bank) lernen soll, besteht aus 4 Fachinformatiker-Azubis und dem Trainer (besagtem Schulungspartner). Wenn in der Schulungszeit auch nur ein Corona-Fall bei einem der 5 Leute auftritt, besteht für die gesamte Gruppe ein Betretungsverbot der Räumlichkeiten des Kunden für die kommenden 5 Tage. Nun hatte ich die Azubis ja über die letzten 5 Wochen immer 2 Tage die Woche in einer Berufsschule unterrichtet und ständig hat jemand wegen Corona gefehlt. Ich selbst habe am letzten Tag auch ein Andenken mitgenommen – trotzt Mehrfachimpfung/Boostern. Was mir nur zufällig aufgefallen war, denn meine Symptome waren so, dass ich normalerweise nie auf die Idee gekommen wäre, mich zu testen oder gar krankzufeiern. Rein die Sensibilität aufgrund des Corona-Hotspots Schule hat dazu geführt, dass mir die Möglichkeit überhaupt in den Sinn gekommen ist. Aber sei es drum – auch wenn die aktuelle Corona-Variante wohl bei 99,9% der Infizierten entweder nicht bemerkt wird oder nicht an die Auswirkungen eines Sommerschnupfens heranreicht – wenn so strikte Zugangsregeln bzw. Isolationsregeln etc. gelten – wie soll man dann noch Maßnahmen vor Ort planen können?

In dem Fall meines Schulungspartners ist die Planung einfach – sie werden vor Ort beginnen (erzwungen vom Kunden) und dann ist es nur die Frage, an welchen Tag abgebrochen wird. Der einzige Grund, warum das im besten Fall durchgehen kann ist, dass die Azubis Ihre Corona-Infektion bei mir in der Schulung bereits hatten und gerade immun sind. Bis zur nächsten Variante des Virus. Aber wie gesagt – vermutlich wird die Schulung abgebrochen und dann muss halt auf remote umgestellt werden. Theoretisch. Denn im Fall von Cobol wird das auf dem Host verwendet oder unter Linux, die Azubis müssen aber im Remote-Fall Notebooks der Firma verwenden, unter denen dann ein Host-Zugriff oder Linux und die verwendete Cobol-Distribution nicht laufen. Der Kunde lässt also Remote quasi technisch scheitert, verbietet aber Vor-Ort mit hoher Wahrscheinlichkeit. Quadratur des Kreises.

Um kurz abzuschweifen – ich habe OpenCobolIDE, MinGW und ein Docker-Image für Cobol als Lösung vorgeschlagen, um Cobol dann unter Windows bei den Azubis zum Laufen zu bringen und gerade die Sache mit dem Docker-Image gestern erstmal selbst getestet, um das nächste Woche selbst neu in meine Schulung zu integrieren. Geht wunderbar und ist quasi die Verbindung der Vergangenheit (Cobol) mit der Gegenwart (Docker). Genau da sehe ich auch in meiner sehr Laienhaften Betrachtungsweise den Hauptsinn von Docker, denn so nutze ich Docker ja auch für Cordova bei meinen Vorlesungen an der TH Bingen.

Aber um die Sache zum Abschluss zu bringen – ich habe die letzten Wochen Kundenwünschen nach Vor-Ort-Maßnahmen wieder zugestimmt, werde das aber beenden. Solange ich es mir leisten kann, werde ich wieder auf reines Remote zurückgehen. Die fehlende Planungssicherheit, die aktuell unmöglichen Reiseumstände und auch, dass mich Corona trotz Boostern und extremer Vorsicht erwischt hat (auch wenn ich keine wirklichen Symptome mitgenommen habe), geben mir keine andere Wahl. Freiberufliche Arbeit muss extrem flexibel sein und richtig planen kann man nie – aber so extreme Unsicherheit ist mir zu viel. Zumal auch das gesamte Risiko bei mir liegt. Wenn ich Corona bekomme, muss ich die Maßnahme abbrechen. Entweder weil es der Kunde oder die Politik immer noch 5 Tage Isolation fordert – auch ohne Symptome (da ist Deutschland leider noch nicht so weit wie etwa Österreich, wo diese Maßnahme endlich abgeschafft wurde). Remote arbeite ich einfach weiter. Oder die Maßnahme wird abgebrochen, weil irgendjemand in der Gruppe Corona hat. Das explodierende Risiko von Reiseproblemen muss ich auch noch tragen. Nein, so geht es einfach nicht, wenn auf der anderen Seite Remote alles einfach und sicher macht.

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.

Erledigt

Die Aufnahmen für die Überarbeitung eines meiner Videotraining aus dem Jahr 2015 bei LinkedIn Learning ist durch. Auch wenn das Training noch in vielen Teilen aktuell war, da es um pures C geht und sich da in den letzten Jahren eigentlich nicht viel getan hat, war die Auffrischung doch aufwändig. Zwar habe ich diverse Videos beibehalten können, aber durch eine Umstrukturierung der Kapitel sind statt weniger Kapitel mit vielen Unterkapiteln nun 13 Kapitel daraus geworden. Und bei denen habe ich jeweils eine Challenge-Solution ergänzt. Das wird bei neuen Kursen von LinkedIn Learning immer mehr eingeführt und damit passt der Kurs auch vom Stil jetzt zu den neusten Kursen. Zudem habe ich einige lange Videos auf mehrere Videos aufgeteilt, Videos ein bisschen am Ende gestrafft, diejenigen mit veralteten Programmen und Ressourcen neu aufgenommen und Powerpoint-Slides neu gemacht. Wenn das durch die Postproduktion durch ist, wird vermutlich 50% des Kurses neu sein. Durch die vielen neuen Videos zu Challenge-Solution ist das Training auch nochmal gut 45 Minuten länger wie vorher – obwohl ich einzelne Videos sogar weggelassen und eben viele Videos gestrafft habe, indem ich die Abschlusssätze weggestrichen habe.

Und obwohl ich heute noch am Aufnehmen war, habe ich mir es nicht nehmen lassen, den Vormittag auf den Alteburger Markt zu gehen. Das ist ein traditioneller Viehmarkt zwischen dem Stadtrand von Eppstein und Heftrich, der 3x im Jahr stattfindet und auf den meine Familie schon seit Generationen geht. Allerdings ist der wegen Corona 2 Jahre komplett ausgefallen und heute war der 1. Alteburger seit über 2,5 Jahren.

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.

Entwarnung

Da ist der Kelch nochmal an mir vorbeigegangen. Obwohl die akustische Leckortung das Problem bei meinem Hausanschluss lokalisiert hatte, hat sich beim Aufgraben der Strasse gezeigt, dass das Leck stattdessen an der Hauptleitung war. Dort war vor einigen Monaten schon mal ein Schaden und da wurde bei der Reperatur entweder gepfutsch oder die Leitung war noch an einer anderen Stelle  angegriffen.

Anyway – auch wenn vermutlich meine Versicherung gegriffen hätte, wenn das Problem bei meinem Hausanschluss gewesen wäre – der Aufwand und die Beeinträchtigungen wären groß gewesen und hätten die geplanten Aufnahmen für LinkedIn Learning in der nächsten Woche ziemlich beieinflusst. Das Loch ist aber wieder verschlossen und Wasser sollte auch wieder da sein. Somit sollte den Aufnahmen hier aber nichts mehr im Weg stehen.

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.