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.

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.

Thunderbird und das Zertifikat :-(

Diese Woche war ich zum Aufnehmen eines Videotrainings für LinkedIn Learning sowie der Erledigung einer weiteren Zusatzaufgabe hauptsächlich in meinem Büro in Eppstein. Da arbeite ich mit meinem Mate-Notebook. Ab Mittwoch konnte ich von da aber keine Mails mehr mit meinem Standard-Email-Account verschicken. Empfang ging und auch das Versenden meiner anderen Accounts beim GMX ging problemlos. Seltsamerweise ging das Versenden über meinen Standard-Email-Account per SmartPhone weiter ohne Probleme. Also habe ich ein Problem auf dem Matebook angenommen und mich erst einmal nicht weiter darum gekümmert. Aber zurück in Bodenheim konnte ich auch an der Workstation keine Emails mit dem Standard-Email-Account versenden. Was mich dazu gebracht hat, mir die Fehlermeldung anzusehen.

Ich habe nun einen eigenen V-Server und den zertifiziere ich mit Let’s Encryp. Thunderbird hat nun gemeldet, dass das Zertifikat meines Servers aber nicht ok wäre. Von einen Tag auf den anderen. Mein Zertifikat wird automatisiert in regelmäßigen Abständen erneuert und mittlerweile wird Let’s Encryp auch recht gut akzeptiert. Die plötzliche Meldung von Thunderbird war daher für mich unverständlich, auch wenn in der Tat der eingetragene Server im Zertifikat durch meinen V-Server wohl etwas kritisch sein kann. Aber man kann da ja Sicherheitsausnahmen  in Thunderbird einrichten. Und genau das habe ich gemacht.

Wirkungslos. Beim Versenden per SMTP immer wieder die Fehlermeldung.

Also alle Einstellungen in Thunderbird von links auf rechts gedreht und wieder zurück. Verschlüsselungsverfahren, Ports, etc. in allen denkbaren Varianten ausprobiert.

Wirkungslos.

Dann auf dem Server explizit alle Zertifikatseinstellungen untersucht und aktualisiert bis hin zum Neustart des Servers.

Wirkungslos. Weiter die Fehlermeldung in Thunderbird und kein Versenden möglich.

Dann mich erinnert, dass das Versenden mit dem SmartPhone doch ging. Weiterhin keine Probleme. Und dann erinnert, dass ich auf meinem alten Terra-Notebook noch eine ältere Version von Thunderbird installiert hatte. Ausprobiert. Versenden problemlos möglich. Alle Einstellungen verglichen (inklusive Zertifikate). Identisch. Älterer Thunderbird – keine Probleme. Neuerer Thunderbird – ignoriert Sicherheitsausnahme und kein Versenden möglich. Angeblich könnte der Fehler in Thunderbird auch von Antivirenprogrammen kommen. Deaktiviert.

Wirkungslos.

Aus Verzweiflung andere E-Mail-Clients wie eM, Pegasus und sogar Outlook (was ich eigentlich unter keinen Umständen nutzen will) ausprobiert. Maximal ein Hinweis auf das Zertifikat und ob ich trotzdem den Server nutzen will? Danach Versenden problemlos möglich.

Nun nutze ich eine portable Version von Thunderbird und auf den NAS habe ich davon eine lauffähige Kopie, die ich aber schon seit vielen Monaten nicht mehr gestartet hatte. Mit all den gleichen Einstellungen, wie auf dem Notebook und der Workstation. Ausprobiert – Warnung hinsichtlich des Zertifikats. Sicherheitsausnahme eingerichtet. Versenden danach problemlos. Laden der Emails ebenso.

Alle Einstellungen verglichen – identisch.

Thunderbird – was machst Du?

Ich arbeite jetzt mit der Version vom NAS weiter, denn da ist vermutlich ein Update von Thunderbird unterblieben, das diesen ganzen Müll bewirkt, und vermeide eine Aktualisierung dieser Version. Außerdem behalte ich für alle Fälle noch Pegasus – auch wenn das Programm optisch schon antik daherkommt. Zudem hoffe ich, dass die Version von Thunderbird, die im Moment das Problem hat, durch ein kommendes Update vielleicht wieder korrigiert wird. Aber Spass machen diese elenden Probleme wirklich nicht und obwohl ich Thunderbird seit vielen Jahren die Treue halte – ich bin massiv am Überlegen, ob ich nicht auf ein anderes Email-Programm umsteige. Und wie ernst es mir ist, sollte man daran erkennen, dass ich sogar Outlook in Erwägung ziehe.

 

 

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.

In and out

Diese Woche bin ich wieder am Aufnehmen eines Videotrainings für LinkedIn Learning sowie der Erledigung einer weiteren Zusatzaufgabe, bei der ich bei einer Übersetzung eines Kurses fachliche Korrekturen einpflegen soll. Ich schaffe also weiteren Input und gleichzeitig gibt es aber bei  LinkedIn Learning neuen Output von mir.

Mein neuer Eclipse-Grundkurs wurde freigeschaltet. Das ist die aktuellste Version eines Videotrainings, das ich ursprünglich schon vor vielen Jahre aufgenommen und mittlerweile einige Male überarbeitet habe. Eclipse gilt als Schweizer Taschenmesser für die Softwareentwicklung. Die IDE, die ursprünglich überwiegend in der die Java-Entwicklung zum Einsatz kam, kann mittlerweile für fast alle denkbaren Programmiersprachen und Software-Techniken verwendet werden.

Da simmer dabei, dat is prima! :-)

Bei LinkedIn Learning gab es eine Umfrage hinsichtlich der beliebtesten LinkedIn Learning-Kursen 2021 zur beruflichen Weiterentwicklung. Diese Kurse absolvieren deutsche Fach- und Führungskräfte, um zu lernen, wie sie sich am besten an die neuen Gegebenheiten der modernen Geschäftswelt anpassen, sich beruflich weiterentwickeln, ihr Unternehmen bestmöglich unterstützen und persönliche Fortschritte erzielen können. In dieser Liste der 10 beliebtesten LinkedIn Learning-Kurse in Deutschland bin ich mit meinem Python-Kurs vertreten 🙂

Doppelte Verschiebung

Für Mittwoch hatte ich eine UML-Einzelschulung auf der Agenda. Remote und nur einen Tag, aber über Nacht ist der Teilnehmer krank geworden. Er hat um eine Verschiebung gebeten und da ich den Monat ziemlich flexibel bin, habe ich die auf den heutigen Donnerstag verschoben. Interessanter Weise ist aber auch mein wöchentlicher Entwickler-Tipp zu Python erst am heutigen Donnerstag freigeschaltet worden. Also gleich eine 2-fache Verschiebung. Im Entwickler-Tipp geht es um das Debuggen von Python-Quellcode in Visual Studio Code.

»Herzlichen Glückwunsch! Dein Kurs gehört zu den beliebtesten Kursen des Jahres!«

Das war der Betreff der Mail aus Graz von LinkedIn Learning (LiL), die ich gerade bekommen habe. Inhalt war die Mitteilung, dass mein Kurs Python lernen vom 1.9. bis 15.10.2021 freigeschaltet ist und in der Kampagne »Beliebteste Kurse auf LinkedIn Learning« für den deutschsprachigen Raum vorgestellt wird. Na, da freue ich mich doch wie Bolle 🙂

Hier ist ein kurzer Abstract zu der besagen Kampagne von LiL:

Die Kampagne im Überblick

Wir befinden uns mitten im #GreatReshuffle, einer Zeit, in der Berufstätige ihre Karriere mehr denn je selbst in die Hand nehmen und sich in ihren aktuellen Unternehmen und in neuen Unternehmen neu positionieren. Deshalb sind wir besonders begeistert, nun bereits zum fünften Mal die jährliche Liste der beliebtesten Kurse bekanntzugeben. Damit helfen wir Lernenden, die richtigen Kompetenzen zu erwerben, um ihren nächsten Karrieresprung vorzubereiten.

Mehr als 5 Millionen Berufstätige haben die 20 beliebtesten Kurse dieses Jahr angesehen. Im Vergleich zum Vorjahr wurden weltweit 53% mehr Stunden für das Lernen aufgewendet. Um unseren Lernenden dabei zu helfen, die Kompetenzbereiche zu entdecken, die sie auf der Karriereleiter voranbringen, haben wir deinen Kurs bis zum 15. Oktober freigeschaltet.

 

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.

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.

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.