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.

Tupel Um-Tupeln

In einigen Tagen geht es mit neuen Videoaufnahmen für LinkedIn Learning (LiL)  wieder los. Immer noch in Form von Home-Recording, aber es ist absehbar, dass ich auch irgendwann mal wieder nach Graz komme. Bis dahin wird jedoch noch einiges Wasser „die Bach runterfließen“ – ja die (!) Bach, was man als echter Hesse selbstverständlich sagt.  Und die Bach bringt Mitte jeder Woche ein Boot mit einem  neuen Entwicklertipp der Woche zu Python vorbei. Diese Woche behandle ich das Manipulieren von Tupeln. die ja „eigentlich“ immutable sind.

Bücher diktieren mit der Android-Spracherkennung

Neben meinen ganzen Videoaufnahmen für LinkedIn Learning (LiL) ist das Schreiben von Büchern immer noch eines meiner beruflichen Standbeine. Aber definitiv bin ich da nicht mehr so aktiv wie früher, denn der Buchmarkt ist beileibe nicht mehr attraktiv, wie es zu meinen Anfangszeiten als Autor war. Wenn ich mir vorstelle, dass mein – von den Verkaufszahlen – erfolgreichstes Buch mit allen Folge- und Querauflagen bei ca 175.000 Exemplaren gelegen hat (gut 90.000 in Deutschland und der Rest als Übersetzungen), kann einem schwindelig werden. Heute sind 1.000 verkaufte Exemplare von einem Buch schon bemerkenswert.

Trotzdem – ich schreibe auch weiter Bücher, weil es mir einfach Spaß macht und zudem habe ich dann Material für Schulungen. Ebenso macht es viel Sinn, um sich ein Thema gründlich zu erarbeiten, zu vertiefen oder zu reaktivieren. Wobei neue Themen in den letzten Jahren eher selten kamen. Vielleicht 1 Buch oder eine Schulungsunterlage im Jahr für meine großen Verlage, wenn ich das richtig sehe, aber durchaus auch mal mehr, wenn ich ein Thema im Selbstverlag herausbringen wollte. Häufiger überarbeite ich aber vor allen Dingen Werke von mir, die in die Zeit gekommen sind. So auch aktuell, wo ich eine Schulungsunterlage und ein Buch in der Werft liegen habe.

Eben kam mir die Idee, ob ich nicht die Möglichkeit zum Diktieren von Textpassagen nutzen sollte. Das hatte ich früher schon gemacht und mir damals eine Dragon-Lizenz gekauft. Das Programm könnte ich mir – da vom alten Rechner mittlerweile gelöscht – ganz legal auf die Workstation bzw. mein Matebook neu installieren. Aber meine lizenzierte Dragon-Version ist in die Jahre gekommen und so viel will ich damit nicht aufnehmen, dass sich eine neue Lizenz für mich lohnt – so gut das Programm auch ist.

Nun gibt es aber auch Spracherkennung in Windows 10 oder mit Microsoft Dictate oder Speak A Message. Habe ich gerade alles mal in Verbindung mit einem Editor ausprobiert. Nicht schlecht, aber auch nicht so gut, wie ich es etwa von der Spracherkennung auf meinem Android-SmartPhone gewohnt bin.

Also kam ich auf die Idee, warum nicht die Spracherkennung des SmartPhones nutzen. Die Qualität der Erkennung ist da einfach richtig gut – Datenschutz wegen Erfassung in der Cloud und bei Google außen vor. Nur müssen die so auf dem SmartPhone erfassten Texte dann auf den PC. Klar – das Ergebnis kann man mit E-Mail, WhatsApp etc. dann teilen. Aber das schien mir zu wenig „smart“.

Hier habe ich dann eine schöne Anleitung gefunden, wie man mit Unified Remote auf dem PC einen Server aufsetzt, der per W-LAN Kontakt zu der passenden App aufbaut. Dort kann man dann mit dem Basic Input und der Tastatureingabe auf der App das Mikrofon nutzen, um Text in die App zu bekommen, der parallel auf dem PC in einem Editor oder einem Textverarbeitungsprogramm auftaucht, da Client auf dem SmartPhone und Server auf dem PC synchronisiert werden. Einfach mal die Anleitung ansehen – easy und smart und die Texterkennungsqualität ist wirklich gut. Es ist aber ganz klar, dass ich dennoch die Texte erheblich nacharbeiten muss. Aber das ist sowieso bei mir der Fall – ich schreibe meine Ideen frei Schnauze runter und bringe sie erst mit mehrfacher Überarbeitung dann ins endgültige Format.

Zoom-Meeting mit Linkedin Learning direkt in der Natur

Anlässlich interner Umstrukturierungen in Graz bei LinkedIn Learning (LiL) gab es heute ein Abschieds-/Vorstellungs-Meeting auf Zoom. Da wollte ich auf jeden Fall teilnehmen, um mal wieder die Grazer Mann- bzw. Frauschaft und auch andere Trainer zu sehen. Wenn auch nur virtuell.

Nur wollte ich auch um die Zeit eine Radtour machen. Also habe ich beides kombiniert und dann am Alteburger Markt eine Pause gemacht, um auf einer Bank unter Bäumen per SmartPhone am Zoom-Meeting teilzunehmen. Tja – moderne Techniken machen es möglich. Unmöglich war allerdings die Hitze. Hab mich mit der Tour etwas übernommen.

Mein neuer LiL-Python-Kurs für Umsteiger

Derzeit kommt bei mir jede Woche bei LinkedIn Learning (LiL) ein neuer Entwickler-Tipp zu Python heraus und mittlerweile sind da Tipps im Umfang von über einer Stunde bereits veröffentlicht. Das wird auch das Jahr noch so jede Woche weiter gehen. Aber zusätzlich kommen immer wieder vollständige neue Trainings heraus. Und vor ein paar Tagen war es wieder soweit – ein kompletter neuer Kurs ist freigegeben worden.

Python für C++-, Java- und C#-Entwickler:innen

Schnell und einfach von C#, C++ und Java auf Python umsteigen aus dem Kurs „Python für C++-, Java- und C#-Entwickler:innen“ von Ralph Steyer
Mit der Popularität der Programmiersprache Python steigt auch der Bedarf an Python-Entwicklern. Gerade Umsteiger benötigen dazu einen anderen Ansatz als Einsteiger. Deshalb gehe ich in diesem Umsteigerkurs gezielt darauf ein, wie man von Grundkenntnissen in anderen Programmiersprachen bei den ersten Schritten in der Python-Welt profitieren kann. Dazu behandele ich in der grundlegenden Darstellung immer wieder Parallelen, Schnittmengen und Unterschiede insbesondere zu C++, C# und Java sowie Python-eigene Besonderheiten.

Aufrufargumente an ein Python-Programm übergeben – Entwicklertipp der Woche zu Python

Gerade passiert bei mir im Zusammenhang mit LinkedIn Learning (LiL) ziemlich viel. Geht wie beim Bretzelbacken, denn ein neuer Entwicklertipp der Woche zu Python ist heute herausgekommen. Die Woche ist das Thema, wie Aufrufargumente an ein Python-Programm übergeben und dort verarbeitet werden können.

Aufrufargumente an ein Python-Programm übergeben aus dem Kurs „Python-Entwicklertipps: Jede Woche neu“ von Ralph Steyer

#TopCompanies2021

Im Rahmen der neuen Kampagne  #TopCompanies2021 von LinkedIn Learning ist auch einer meiner Kurse (Python lernen) für den Monat Mai freigeschaltet worden.

Ziel der Kampagne: Um zu wachsen und an der Spitze zu bleiben ist es unerlässlich, bei wichtigen Trendthemen up-to-date zu bleiben. Deshalb zeigt LiL die 5 wichtigsten Trends von Top-Unternehmen im deutschsprachigen Raum auf, um Lernenden dabei zu unterstützen, ganz vorne dabei zu bleiben.

Auf „Videotour“

Seit gestern bin ich wieder an neuen Aufnahmen für LinkedIn Learning (LiL). Dabei sind gleich 3 Aufgaben zu erledigen.

  1. Eine kleine Fehlerkorrektur über gut 10 Sekunden in einem schon recht alten UML-Training. Ein Wortdreher ist erst nach zig Jahren aufgefallen.
  2. Eine komplette Aktualisierung eines Trainings aus dem Jahr 2013. Da ist definitiv klar, dass das nicht mehr ganz auf dem aktuellen Stand sein kann.
  3. Ein paar weitere Entwicklertipps der Woche zu Python.

Es stehen also reine Aktualisierungen und Erweiterungen zu bereits vorhandenen Trainings von mir an.

Der Entwicklertipp der Woche ist da – OpenCV unter Python nutzen

Nächste Woche werde ich neue Aufnahmen für LinkedIn Learning (LiL) einspielen, aber wie jede Woche kommt auch in der Mitte dieser Woche wieder ein Entwicklertipp der Woche zu Python heraus. Es geht um ein spezielles Framework, um unter Python Bilder und Videos anzuzeigen – OpenCV und das ist eine freie Programmbibliothek mit Algorithmen für die Bild- und Videoverarbeitung. Diese kann unter Python, aber auch anderen Sprachen verwendet werden. Die Bibliothek wird vor allen Dingen beim Deep Learning verwendet, kann aber auch einfach für das Anzeigen von Bildern und Videos verwendet werden. Und darauf konzentriert sich dieser Tipp der Woche.

Bilder und Videos mit OpenCV anzeigen aus dem Kurs „Python-Entwicklertipps: Jede Woche neu“ von Ralph Steyer

Dynamische Klassen und Typinformationen generieren – aus dem LiL-Tutorial zu Python

In Python kann man mit type nicht nur zur Laufzeit den Typ eines Objektes bestimmen, sondern sogar dynamisch eine Klasse generieren. Und genau das ist das Thema meinem Entwickler-Tipp der Woche bei LiL (LinkedIn Learning).


Dynamische Klassen und Typinformationen generieren aus dem Kurs „Python-Entwicklertipps: Jede Woche neu“ von Ralph Steyer

eval is evil – der aktuelle Python Entwickler-Tipp

Die Woche ist wieder rum und mein neuer Entwickler-Tipp der Woche bei LiL (LinkedIn Learning) ist freigegeben. Dieses Mal behandele ich das Thema Strings evaluieren in Python. Das geht mit der eval-Funktion, die aber nicht ganz unkritisch ist. Der Tipp stammt – wie die anderen bisher veröffentlichten Tipps – aus dem Kurs: Python-Entwicklertipps: Jede Woche neu.

Shallow-Copy: tiefes und flaches Kopieren – mein aktueller Python-Tipp der Woche

Nachdem als eine Art Belohnung für die gestiegenen Belastungen während der Corona-Krise letzte Woche LinkedIn alle Mitarbeiter weltweit in Urlaub geschickt hat, gab es auch von mir in dieser Woche keinen neuen Entwickler-Tipp der Woche zu Python. Aber seit Montag ist dieser Urlaub vorüber und ich habe vorgestern und gestern schon wieder mit einem Ansprechpartnern bei LiL wegen neuer Aktionen gesprochen. Und es gibt ab heute den nächsten Tipp der Woche.

Dabei geht es um Referenzen und Kopien in Python im Allgemeinen und die Unterschiede zwischen flachem und tiefem Kopieren im Speziellen. Python kennt verschiedene Versionen von Kopiervorgängen. Diese haben Auswirkungen darauf, was kopiert und was nur referenziert wird. Python zaubert im Hintergrund ganz gewaltig,

Shallow-Copy: tiefes und flaches Kopieren aus dem Kurs „Python-Entwicklertipps: Jede Woche neu“ von Ralph Steyer