Es ist wieder Zeit für meinen Tipp der Woche

Mein Entwickler-Tipp der Woche bei LiL (LinkedIn Learning) behandelt dieses Mal einen kleinen, aber feinen Trick, um sichere Typvergleiche durchführen zu können. Der Trick an sich ist unabhängig von Python und in einigen anderen Sprachen wie JavaScript sogar noch nützlicher.

Per pickle-Modul Objekte persistent machen – der neue Python-Entwickler-Tipp

Der Name des Moduls (pickle) klingt vielleicht etwas komisch, aber es ist im Standard-API von Python eine wunderbar einfache Möglichkeit, um damit Objekte persistent zu machen. Mein Entwickler-Tipp der Woche bei LiL (LinkedIn Learning) behandelt genau dieses Thema und ist gerade veröffentlicht worden.

Mein Tipp der Woche – plattformneutrale Skripte mit Python

Im Rahmen meiner Serie mit wöchentlichen Tipps & Tricks zu Python bei LinkedIn Learning (LiL) ist das nächste Video draußen. Es geht die Woche um die Erstellung von plattformneutralen Skripten mit Python.

CronTab, Schedule und Python

Nachdem ich vor ein paar Wochen meinen neuen V-Server auch gleich auf eine neue Version von Ubuntu umgestellt hatte, musste ich sämtliche Webseiten wieder neu einspielen. Bis auf meine Webseite zum Gleitschirmfliegen, in der ich eine Webcam und Wetterdaten von einem Flughang bereitstelle, konnte ich auch alle Seiten problemlos wieder einspielen. Nur diese Seite (ein Joomla!-System) hatte herumgezickt und deshalb habe ich sie einfach neu aufgesetzt (jedoch mit WordPress). Aber ein Feature habe ich da auf die Schnelle nicht hinbekommen – das Kopieren und Sichern des aktuellen Bildes der Webcam, das minütlich mit FTP auf meinen V-Server geladen wird.

Es ist aber ganz hilfreich, wenn man über eine gewisse Zeitspanne verfolgen kann, wie etwa schon vor Ort befindliche Gleitschirme oder Windfahnen sich verhalten, um zu entscheiden, ob sich ein Tripp an den Hang lohnt. Ich wurde sogar explizit gebeten, dieses Feature wieder bereitzustellen.

Die originalen PHP-Skripte hatte ich noch alle, aber das Zeug war so zusammengefrickelt (wie so oft), dass ich erst einmal meine eigenen Codes nicht mehr verstanden habe.

Aber da ich parallel im Moment Themen sammle, die ich irgendwann in meinen wöchentlichen Tipps & Tricks zu Python bei LinkedIn Learning (LiL) verwenden kann, kam ich auf die Idee, das Kopieren doch mit Python statt mit PHP zu machen sowie auch das Schedulen vielleicht auch gleich mit Python. Es gibt ja dazu das sched-Modul und/oder die klassischen Module shutil, datatime und time. Dazu gibt es noch in der Community das zusätzliche Module schedule. Also habe ich mich damit eine Weile beschäftigt. Allerdings kam ich darüber über kurz oder lang auch auf die eigentlichen Crontabs von Linux/Unix. Und wenn man die genauer ansieht, ist es fast einfacher, die direkt zu schreiben, als sie von einem Framework wie dem schedule-Modul generieren zu lassen.

Auf der anderen Seite musste ich zudem noch meinen V-Server weiter konfigurieren. Dabei habe ich auf dem Weg nano nachinstalliert, denn ich greife ja per SSH auf den V-Server zu und mit Erschrecken festgestellt, dass da bisher mir nur vim zur Verfügung stand. Also so rudimentär will ich doch nicht mehr arbeiten.

In der Folge habe ich meine neu erstellen Python-Skripte zum Kopieren der Dateien und dem täglichen Löschen des Verzeichnisses (mein Server soll ja nicht volllaufen) hochgeladen und in die CronTab direkt eingebunden. Das geht ganz einfach und logisch, wenn man sich von der Syntax nicht abschrecken lässt.

  • crontab -e öffnet die CronTab-Datei.
  • Wenn man mit nano arbeitet, kann man mit Strg+o die Datei speichern und mit Strg+x den Editor verlassen. Mehr braucht man da eigentlich nicht zu wissen.
  • Mit crontab -l kann man sich alle Cronjobs anzeigen lassen und
  • mit crontab -r bei Bedarf alle Cronjobs löschen (was aber brutal ist, weil direkt alles weg ist).

Die eigentlichen Einträge in der CronTab sehen etwa so aus:

# m h dom mon dow command
*/2 8-20 * * * python3 [pfad]/copierereichenbach.py >> /var/www/vhosts/rjs.de/rb.autoren-net.de/thumb/log.txt
* 5,23 * * * python3 [pfad]/loeschereichenbach.py

Das kopiert dann alle 2 Minuten in der Zeit von 8 bis 20 Uhr das aktuelle Bild der Webcam und um 5 und 23 Uhr wird das Verzeichnis gelöscht.

In Python selbst arbeite ich mit shutil.rmtree() und os.mkdir() beim Löschen des Verzeichnisses. Einfach alles weghauen und dann das Verzeichnis neu erstellen.

Beim Kopieren nehme ich shutil.copy2() und hänge an den Standarddateinamen einfach einen Timestamp an der von datetime.datetime.now().timestamp() geliefert wird.

Das Anzeigen der Bilddateien mache ich natürlich weiter mit PHP – da konnte ich eines meiner altern Skripts nach einer kleinen Anpassung wieder verwenden.

Skype for Business

Gerade habe ich meine Python-Onlineschulung beendet. Dabei habe ich das erste Mal Skype for Business verwendet (Kundenwunsch). Bisher habe ich immer nur mit Teams geschult bzw. privat Zoom und JamKazam eingesetzt. Aber Skype for Business hat sich wider Erwarten ganz gut geschlagen. Gelegentlich ist meine Bildschirmpräsentation zusammengebrochen und in der letzten Stunde des letzten Tags bin ich 1x aus der Session geflogen – aber sonst ist das System stabil gelaufen.

Tipp Nummer 2 der wöchentlichen Python-Entwicklertipps bei LinkedIn Learning

Letzte Woche ist meine Serie mit wöchentlichen Tipps & Tricks zu Python bei LinkedIn Learning (LiL) gestartet, in denen ich ergänzend zu meinen „normalen“ Kursen bei LiL über einige Monate jede Woche neu einzelne Videos mit Python-Entwicklertipps veröffentliche.

Der heute veröffentlichte Beitrag zeigt, wie man in Python über ein Objekt iterieren kann. Die Sache passt ganz gut zu dem heutigen Tag, denn genau das habe ich so ziemlich als Letztes in meiner aktuellen Python-Schulung, die ich über die Woche als Remoteveranstaltung halte, vorgeführt.

Python-Entwicklertipps: Jede Woche neu bei LinkedIn Learning

Heute starten meine wöchentlichen Tipps & Tricks zu Python bei LinkedIn Learning (LiL). Ergänzend zu meinen „normalen“ Kursen bei LiL werden ab sofort über einige Monate jede Woche neu einzelne Videos mit Python-Entwicklertipps veröffentlicht.

Der heute als „Starttipp“ veröffentlichte Beitrag zeigt, wie man in Python eine angepasste To-String-Funktionalität bereitstellen kann.

Neue Marketingaktion von LinkedIn Learning: Kurse, die Jobsuchenden zum passenden Job verhelfen

Aktuell bin ich wieder an den Aufnahmen zu einem neuen Training für LiL (LinkedIn Learning). Nachdem ich gestern bis ca 21:30 Uhr am Schaffen war, war ich heute morgen ziemlich früh wach geworden, weil vor dem Haus eine Schneeschippe über den Asphalt gekratz hat. Ein kräftiges Schneegebiet ist in der Nacht über die Gegend gezogen.

Erst einmal bin ich wieder an weitere Aufnahmen gegangen, aber der schöne Schnee hat mich dann gleich zu einer Unterbrechung mit einem Waldlauf gebracht, um das Winterwunderland zu geniesen, bevor wieder alles wegtaut.

Danach bin ich weiter an die Aufnahme, wobei eben die E-Mail reinkam, dass bei einer neue Marketingaktion von LinkedIn Learning, die heute angelaufen ist, mein Kurs zu Python dabei ist. Es handelt sich dabei um 5 Kurse, die bis zum 30. Januar 2021 freigeschaltet sind.

Die Kampagne im Überblick

Die Jobsuche ist immer eine Herausforderung, jedoch in der aktuell schwierigen wirtschaftlichen Situation ist diese noch viel schwerer.

LinkedIn Learning möchte gerne helfen. Dazu haben wurde eine Liste der Top-Kurse aufgestellt, die Mitglieder, die im letzten Jahr erfolgreich einen neuen Job gefunden haben am meisten angesehen haben. Einer dieser Kurse ist eben mein Kurs zu Python.

Es stehen die erste Videoaufnahmen 2021 an

 

Nächste Woche geht es richtig los mit neuen Videoaufnahmen für LinkedIn Learning (LiL).
Das Jahr 2021 startet für mich also direkt mit Videoaufnahmen.

Heute habe ich mich aber schon in meinem „Studio“ in Eppstein eingerichtet, das erste Probevideo aufgenommen und auf Sharepoint geladen.

Während ich der Dinge (sprich – der Kontrolle, ob alle Einstellungen ok sind) geharrt habe, habe ich einen kurzen Waldlauf über den Staufen gemacht. Obwohl es am Anfang brutal hochgeht, ist das meine absolute Lieblingsstrecke. Und da im Moment Eppstein direkt an der Schneefallgrenze liegt, gibt es im Tal zwar kaum Schnee, aber oben auf dem Staufen ist es richtig schön winterlich. Zwar nur ein paar Zentimeter, aber immerhin.

 

 

Tools mit Python entwickeln – neuer Onlinekurs

Und da isses ja – mein neues Onlinetraining von LinkedIn Learning (LiL). Gerade rechtzeitig zum Wochenende veröffentlicht. Thema bzw. Titel ist „Tools mit Python entwickeln – Software & Tools„.

Es handelt sich wieder einmal um eine US-Adaption, in der die Strategien und Techniken der Erstellung von Tools mithilfe von Python ausgearbeitet werden.

Wie beim Brezelbacken – das nächste Online-Training ist da

Ich habe über das Jahr wirklich sehr viele Videotrainings für LiL (LinkedIn Learning) eingespielt und nächste Woche geht es gleich weiter mit Aufnahmen zu einem Framework. Aber die Woche ist erst einmal wieder ein Ergebnis meiner bisherigen Aufnahmen im Sommer veröffentlicht worden. Der Titel ist „Python für Fortgeschrittene – Fortgeschrittene Python-Funktionen kennenlernen und optimal nutzen„.

Es handelt sich bei dem Training um eine Adaption eines US-Kollegen, das sich an Python-Entwickler richtet, die tiefer in die mächtige Programmiersprache einsteigen und seine Leistungsfähigkeit und Flexibilität voll ausnutzen wollen.

Python und Excel: Strukturierte Daten bearbeiten – Daten aus Tabellenkalkulationsprogrammen mit Python bearbeiten

Gerade frisch veröffentlicht – mein neustes Training bei LinkedIn Learning (LiL). Der Titel ist „Python und Excel: Strukturierte Daten bearbeiten“ und das macht schon deutlich, um was es geht. Der Zugriff auf Tabellenkalkulationsprogramme wie Microsoft Excel oder LibreOffice Calc per Python, um Daten zu speichern und zu verarbeiten. Gerade, wenn man Daten programmiertechnisch verarbeiten will, müssen diese jedoch oft erst aus Dateien eingelesen und passend aufbereitet werden. Der Kurs zeigt auf der einen Seite, wie man aus Python heraus sowohl mit Bordmitteln als auch ergänzenden Frameworks wie Pandas und Openpyxl solch eine Datenbasis nutzen kann, die über standardisierte Klartextformate in Form von CSV, XML und JSON bereitsteht. Diese können direkt oder indirekt von Tabellenkalkulationsprogrammen exportiert als auch importiert werden. Andererseits lernt man auch, wie man direkt das native XLS- und XSLX-Format nutzt und damit Exceldateien unmittelbar mit Python bearbeitet.

Die 5 wachstumsstärksten Kompetenzen bei Fach- und Führungskräften im deutschsprachigen Raum

LinkedIn Learning (LiL) hat eine neue Kampagne zu den am schnellsten wachsenden Kenntnissen und Fähigkeiten ins Leben gerufen und mein Kurs „Python lernen“ ist Teil dieser Kampagne. In der Kampagne sind 5 Kurse vom 20. Oktober bis 20. November freigeschaltet und mein Python-Kurs steht da sogar als Top 1.

Die Kursthemen ergaben sich auf der Grund der Fragen, welche Kompetenzen deutsche, österreichische und Schweizer Fach- und Führungskräfte derzeit für besonders wichtig halten? Und mit welchen Kenntnissen und Fähigkeiten wollen sie potenzielle Arbeitgeber überzeugen? Dass das Thema Python hier dabei ist, deckt sich auch mit den Erfahrungen, die ich im Moment hinsichtlich der Nachfrage von Schulungsthemen habe.

Das ist schon das zweite Mal, dass Kurse von mir bei solchen Aktionen dabei sind :-). Vor geraumer Zeit wurden zwei meiner Kurse bei LiL in einer Kampagne von Microsoft und LinkedIn ausgewählt. Und zwar Python für die Datenanalyse 1: Grundlagen und Python für die Datenanalyse 2: Machine Learning. Es handelte sich dabei zwar „nur“ um Adaptionen von US-Kursen, aber ich bin dennoch stolz auf die Aufnahme und erst Recht auf diese neue Auswahl mit einem vollständig eigenständigem Kurs.

Python für die Datenanalyse 2: Machine Learning

Das neuste Videotraining Python für die Datenanalyse 2: Machine Learning wurde gerade bei LinkedIn Learning (LiL) veröffentlicht. Das ist wieder eine Adaption von mir aus den USA. Das Training ist der zweite Teil der großen Einführung „Python für die Datenanalyse“.

  • Teil 1 wurde schon vor etwa 3 Monaten veröffentlicht und da geht es um Python für die Datenanalyse 1: Grundlagen.
  • Die dem 2. Teil erfahren Sie, was es mit dem Begriff „Maschinenlernen“ auf sich hat. Mit der Programmiersprache Python und diversen Frameworks stehen praktische Mittel bereit, mit denen Sie maschinelles Lernen programmiertechnisch umsetzen können. Schritt für Schritt bringt Ihnen der Kurs Begriffe, Definitionen und die wichtigsten Anwendungsfälle nahe und Sie üben mit einfachen Code-Beispielen die einzelnen Algorithmen.

Python für die Datenanalyse: Grundlagen

Da isses ja! Im letzten Nov aufgenommen und jetzt brandneu veröffentlicht.


Python für die Datenanalyse: Grundlagen


Mein neustes Online-Training bei LinkedIn Learning – eine Adaption eines US-Trainings – dreht sich um Big Data und die Auswertung und Analyse von Daten sowie deren Manipulation, Transformation und ihrer sinnvollen Aufbereitung über Python samt seinen diversen Bibliotheken. Neben dem allgemeinen Verständnis für Data Science und Big Data werden auch Tools und Bibliotheken wie Anaconda, das Jupyter Notebook oder Numpy und Pandas behandelt.

Die Maschine hat gelernt

Tag 5 der Aufnahmen zum Thema Maschinenlernen bzw. Maschine Learning mit Python und die Videos sind im Kasten. Es stehen noch ein paar Abschlussarbeiten an, aber im Grunde bin ich fertig.

Heute Abend geht es mit dem Flieger von Graz wieder nach Hause.

Es war ein ziemlich unterhaltsamer Tripp. Einmal war das Thema selbst (für mich eine  weitgehende Adaption des Trainings einer US-Autorin) spannend, aber auch die ganzen Umstände an sich waren bei dem Besuch bei LinkedIn Learning (ehemals Video2Brain) alles andere als langweilig.

Das umfasst das außerordenlich schöne Wetter der ersten Tage, das mich mal wieder zum Sparziergang über die Muhrinsel hinauf auf den Schlossberg veranlasst hat.

Obwohl ich über die Jahre mindestens schon 25x oben war, ist es immer wieder schön da. Gerade bei so tollem Wetter. Die Aktion mit dem Heißluftballon in der Mittagspause, die ich von dem Schlossberg aus mitbekommen und teils aufgenommen habe, war ja auch sehr anregend.

Nur bin ich verwirrt, weil in den Grazer Medien oder im Internet zu dieser Landung zwischen den Häusern rein gar nichts berichtet wurde. Scheint normal zu sein, dass ein Heißluftballon hier mitten in der Stadt landet. Oder wir haben sowas wie bei Men-in-Black mit dem Dingsbumser, bei dem allen Zeugen die Erinnerung gelöscht und das Ereignis unter den Tisch gekehrt wird. Nur mich haben sie scheinbar übersehen.

Die Studios waren in der Woche recht leer und vor allen Dingen waren kaum deutschsprachige Trainer da.

Hier im Haus kann man sich auch nie sicher sein, in welcher Sprache man ein unbekanntes Gegenüber ansprechen soll. Die meisten scheinen spanisch zu reden, gefolgt von französisch und englisch. Deutsch schätze ich maximal auf Rang 4. Auf jeden Fall ist es beim Mittagessen ein komplettes Sprachgewirr.

Heute hat es dann zur Abwechselung auch noch ein bisschen geschneit, was ich gleich per Foto als Beweis festgehalten habe.

Die Sache mit dem Heißluftballon zeigt ja, dass man hier besser alle Ereignisse so festhalten muss. Sonst behauptet später jeder, dass sie nicht stattgefunden haben.

Aber im Studio war ich offensichtlich – denn ein weiteres Polaroid von mir wurde eben an die Studiowand gepined.

Da hängen an allen Studios (Hasenkästen) die Fotos von allen Trainern, die über die Zeit darin Traininigs aufgenommen haben. Auch von mir gibt es hier noch einige weitere solcher „Fahndungsfotos“.

Die Magie der Mathematik

Nach den Aufnahmen zu meinen Videotrainings bei LinkedIn Learning schaue ich – gerade im Winter – abends im Hotel gerne mal TV, wenn ich nicht noch zu arbeiten habe oder mich nicht mit den Leuten von LinkedIn Learning und den anderen Trainern zum Abendessen treffe. Oft einfach quer Beet und leichte Kost, zu der ich zuhause nicht komme, weil es da eigentlich immer definitiv Besseres zu tun gibt als vor der Glotze zu hängen.

Gestern bin ich bei 3-Sat über gleich 2 aufeinanderfolgende Sendungen gestolpert, die alles anderes als leichte Kost, aber dennoch für mich extrem interessant waren. Es ging um die Magie der Mathematik und eine nachfolgende Diskussion zum gleichen Thema mit drei Mathe-Profs. Beide sehr zu empfehlen und in dr Mediathek von 3-Sat verfügbar.

Aber die Sendungen haben mich auch nachdenklich gemacht. Hätte ich nach dem Diplom nicht doch mehr bei der Mathematik bleiben sollen? Gerade Chaostheorie oder Fraktale wären spannend gewesen. Oder ich wäre auch gerne Richtung Physik und Astronomie gegangen. Und hätte ich es überhaupt geschafft, meinen Dr in Mathe zu machen oder gar Prof zu werden?

Anyway – ich bin in die Informatik abgebogen und über den Weg – zumindest als Lehrbeauftragter – ja auch wieder temporär an Hochschulen zurückgekommen.

Interessanter Weise biege ich jedoch die letzten 2 – 3 Jahre auch wieder mehr in die Richtung Mathematik ab. Von Trainings zu Mathematik für Programmierer, Statistische Auswertungen mit Python oder Geometrische Berechnungen mit Python haben gerade meine neuen Adaptionen zu Big Data, KI (Künstliche Intelligenz) und Maschninenlernen wieder viel mehr Bezug zur Mathematik als meine Themen die ganzen Jahre zuvor, wo ich maximal mit ein bisschen Versicherungsmathematik, Binärarithmetik oder Algorithmen in meinen Schulungen, Videotraining und Büchern in Berührung kam. Natürlich nur auf einem immer noch recht einfachen Level und ich habe auch nichts mehr mit Beweisen und damit „echter“ Mathematik zu tun. Aber immerhin kann ich ein wenig von meinem Studium profitieren, auch wenn Vieles mittlerweile tief verschüttet ist.

Aber die beiden Sendungen haben ich motiviert, die nächte Zeit vielleicht den Schutt wegzuräumen und doch mal wieder „echte“ Mathematik anzusehen. Eventuell verstehe ich ja doch noch ein Wenig davon.

 

Multithreading und Unit-Testing

Da schau. Zwischenzeitlich sind bei der Microsoft-Tochter LinkedIn Learning (ehemals Video2Brain) gleich zwei neue Onlinetraining zu den Themem Multithreading und Unit-Testing veröffentlicht worden:

  1. Multithreading mit Python
  2. Python: Unit-Testing

Beides sind Einsteiger-Trainings, die eine kurze Einführung in die jeweiligen Themen geben – auf Basis von Python als Programmiersprache.