Gulp.js: Workflow in Webprojekten

Zur Zeit habe ich ja jede Woche die Veröffentlichung eines neuen  Entwicklertipps der Woche zu Python bei LinkedIn Learning (LiL) zu vermelden.

Aber es werden zusätzlich immer wieder vollständige Videotrainings publiziert. Natürlich nicht wöchentlich, sondern in unregelmäßigen Intervallen – halt gerade so, wie ich komplette Trainings aufgenommen habe und diese bei LiL fertig produziert wurden.

Jetzt ist es wieder soweit – Gulp.js: Workflow in Webprojekten ist da. Wieder eine US-Adaption eines Trainings. Das Original ist von meinem amerikanischen Kollegen Ray Villalobos konzipiert worden.

Es geht um die Optimierung des Erstellens von Websites. Denn so etwas ist im Laufe der Jahre ein ziemlich komplizierter Prozess geworden. Man erstellt nicht nur mehr einfach HTML-, CSS- und/oder JavaScript-Dateien. Oft verwendet man zusätzlich Tools wie CSS-Prozessoren wie Sass, um vor allen Dingen auch mit älteren Browser kompatibel zu sein.
Diesen Prozess der Webseiten-Erstellung kann man mit einem Tool namens gulp.js verwalten und optimieren. Damit gibt es eine konsistente, einfach zu verwendende Sprache auf Basis von JavaScript für die Erstellung und Verwaltung gängiger Aufgaben. In diesem Kurs geht es um die Konzepte hinter gulp.js.

Webseitenerstellung mit gulp.js optimieren aus dem Kurs „Gulp.js: Workflow in Webprojekten“ von Ralph Steyer und Ray Villalobos

Mittwoch – mit 2 regelmäßigen Events

Es ist Mittwoch und da stehen bei mir 2 regelmäßig auftretende Ereignisse an. Bereits seit Jahrzehnten ist Mittwochs der Probetermin meiner Band. Zwar Corona-bedingt die letzte Zeit nur virtuell mit JamKazam, aber ab heute stellen wir wieder um.

Nicht ganz so lange, dass man das – wie bei der Bandprobe – „traditionell“ nennen kann, gibt es aber als 2. Event regelmäßig neuen IT-Content.  Aber nun doch schon mehrere Monate wird Mittwochs ein neuer  Entwicklertipp der Woche zu Python bei LinkedIn Learning (LiL)  veröffentlicht. Diese Woche geht es um den Einsatz von Default-Parametern beim Aufruf einer Funktion.

Defaultparameter aus dem Kurs „Python-Entwicklertipps: Jede Woche neu“ von Ralph Steyer

Und nochmal Brand Awarness-Kampagne von LinkedIn Learning

Wenn das so weiter geht, kann ich bald nicht mehr durch die Gassen gehen, ohne Autogramme geben zu müssen ;-).

Nachdem Kurse von mir in der ersten großen Brand Awarness-Kampagne für die DACH-Region (Deutschland-Österreich-Schweiz) von LinkedIn Learning (LiL) in dem einen Video auf Youtube sogar direkt im Fokus standen, bin ich auch in dem allgemeineren Video, das sich nicht an eine bestimmte Zielgruppe richtet, im Hintergrund eine Weile präsent. So von 0:10 – 0:14 im Zeitindex. Die 4 Sekunden sind schon knapp, aber immerhin und das Video hat schon jetzt gewaltige Besucherzahlen.

 

Mein Training in der Brand Awarness-Kampagne von LinkedIn Learning

Oha!

Da kann ich wohl mächtig stolz drauf sein :-).

Die erste große Brand Awarness-Kampagne für die DACH-Region (Deutschland-Österreich-Schweiz) von LinkedIn Learning (LiL) ist live!

Und Kurse von mir wurden ausgewählt, um mit in diesem Video die Kampangne zu bewerben. M.a.W – der Trailer von meinem Grundlagenkurs zu Python läuft im Hintergrund und im Text wird der JavaScript-Kurs beworben. Dieses Video ist Teil einer Anzeigenkampagne von LiL auf YouTube, Facebook, Instagram, dem weitere folgen sollen.

Motto für die Zielgruppe ist es, die eigene Karriere mit Hilfe von LinkedIn Learning zu fördern und weiterzubringen.

Protektion in Python

Weiter geht es mit meinen regelmäßigen Entwicklertipps der Woche zu Python bei LinkedIn Learning (LiL).  Diese Woche behandle ich das Thema „protected“ in Python. Diese Beschränkung auf die Zugänglichkeit aus Subklassen wird in Python mit einem vorangestellten Unterstrich gekennzeichnet, ist aber streng genommen nur eine unverbindliche Empfehlung.

Da isser ja

Eigentlich hätte mein Entwicklertipp der Woche zu Python schon am Mittwoch veröffentlicht werden sollen, denke ich. Die Webseite bei LinkedIn Learning (LiL) hatte für den Kurs auch eine Aktualisierung am Mittwoch angezeigt, aber es wurde noch der Tipp von letzter Woche als neuster Tipp angezeigt. Da war wohl mit der Freigabe der etwas schiefgegangen, aber jetzt ist der neue Tipp da. Es geht diese Woche um variable Parameter einer Funktion.

Weiter geht es

Es ist Mitte der Woche, ich habe gerade meinen Einzel-Crashkurs zu erweiterten Java-Themen abgeschlossen und ein neuer Entwicklertipp der Woche zu Python ist heute bei LiL (LinkedIn Learning) herausgekommen. Die Woche geht es darum, wie man in Python privat deklarierte Elemente von außen manipulieren kann.

Woche rum und Aufnahmen im Kasten

Die Arbeitswoche ist rum und nachdem ich gestern den Feiertag frei genommen habe, bin ich heute mit den neuen Aufnahmen für LinkedIn Learning (LiL) fertig geworden.

Nächste Woche steht eine Einzelschulung an. Das erste Mal seit fast 1,5 Jahren sogar als Live- und nicht Remote-Schulung. Ganz so wie früher :-).

 

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

An apple a day keeps the doctor away

Äpfel sind gesund und schmecken meist (nicht zuletzt in Form von Äppler im Gerippten – also unserem regionalen Apfelwein). Aber zu technischen Äpfeln habe ich ein sehr gespaltenes Verhältnis. Die Zeit, wo ich auf Apple-Produkte herab geschaut habe, nur um mich als etwas Besseres zu fühlen, sind vorbei. Man wird Altersmilde. Und auch wenn ich niemals ein Apfel-SmartPhone, -Tablet oder sonstiges -Consumergerät haben will. Mich hat ein uralter Mac Mini, den ich eigentlich nur vor Jahren im Rahmen meiner Videotrainings zu iOS-Entwicklung für LinkedIn Learning (LiL) eingesetzt hatte, vor einigen Monaten bei den Corona-bedingten virtuellen Proben meiner Band komplett beeindruckt.

Wir nutzen bei den regelmässigen virtuellen Proben ein Programm mit Namen JamKazam und damit kann man – einen entsprechenden Account, gutes Internet und passende Hardware vorausgesetzt – fast Latenzfrei direkt live zusammenspielen. Mein Highend USB Interface, das ich von LinkedIn Learning (LiL) für meine Remote-Videotrainings gestellt bekomme, ist schon mal ideal, aber nur mit dem Mac Mini gibt es das perfekte Zusammenspiel – im wahrsten Sinn des Wortes. Mit drei anderen Rechnern (alle mit Windows 10) gab es immer irgendwelche kleinen oder grossen Macken.

Nur beim Mac läuft alles „out-of-the-box“. Das hat mich zu der Überlegung gebracht, ob ich mir nicht doch mal einen neuen Apple-Rechner zulegen sollte. Der neue M1-Prozessor soll ja verdammt gut sein. Vielleicht einen Mac Mini der neuen Generation? Nur gibt es die Dinger leider nur mit winzigem RAM und minimaler SSD. Da ein späteres Aufrüsten nicht geht, wäre eine Anschaffung nur dann sinnvoll, wenn man den Rechner 2 oder 3 Jahre als Hauptrechner einsetzt und dann abstösst. Da ich aber die Sache mehr oder weniger als „Hobby“ bzw. zum Aufbau von etwas mehr Erfahrung in der fremden Apple-Welt betrachte, ist mir die Angelegenheit zu teuer. Das ist ja immer das Apple-Problem – mindestens doppelt so teuer wie die direkte Konkurrenz und Aufrüsten ist nicht vorgesehen. Der neue All-in-one-Rechner von Apple hat mich jetzt auch komplett abgeschreckt. Die Vermarktung und die Schwerpunkte sowie die erkennbaren Produktausrichtungen sind nicht meine Welt.

Aber es gibt ja noch den alten Mac Mini, der in meinem Büro in Eppstein verstaubt und nur seit einiger Zeit zu den besagten Bandproben 2 -3 x im Monat erwacht ist. Den habe wieder in mein Bodenheimer Büro mitgenommen, denn er ist immer noch leistungsfähig genug, auch wenn die neuste Version von macOS darauf schon nicht mehr läuft. Ausserdem kann ich einen Monitor drauf stellen und muss dafür nicht wie bisher ein Buch nehmen, um den etwas höher zu bekommen. Zwar habe ich keinen Monitor und auch keine Tastatur für den Mac Mini übrig, aber dem lästigen Umstecken begegne ich mit VNC. Damit bleibt auch der Schreibtisch leerer. Die minimale Verzögerung bei den Signalen kann ich akzeptieren und sollte ich wider Erwarten ernsthaft mit dem Mac arbeiten, kann ich ja für den Fall tatsächlich die Peripherie umstecken.

Das sollte für meine Apple-Ambitionen genügen und ich schaffe mir doch lieber wieder für weniger Geld einen leistungsfähigeren Rechner an. Aber auch das hat keine Eile – noch geht meiner Workstation, das Matebook sowieso und selbst mein altes Terra-Notebook kann als Backup-Rechner alles liefern, was sich brauche (wenn auch etwas gemütlicher).

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

Kein Tipp der Woche – LinkedIn macht Urlaub

Wir Autoren wurden schon vor einiger Zeit darüber informiert und die Tage stand es auch in diversen Medien – LinkedIn hat alle Mitarbeiter weltweit in Urlaub geschickt. Nicht aus der Not heraus, sondern als eine Art Belohnung für die gestiegenen Belastungen während der Corona-Krise. Davon profitieren auch meine Kontaktpersonen bei LiL und deshalb gibt es die Woche keinen neuen Entwickler-Tipp der Woche zu Python. Aber es gibt ja schon ein paar, die über die letzten Wochen veröffentlicht wurden und nächste Woche geht es weiter mit neuen Tipps.

Vorort vs remote

Ich bin mittlerweile schon über ein Jahr nicht mehr Vorort bei einem Kunden gewesen und habe keinen Geschäftspartner wirklich mehr getroffen. Aber rein von der Menge meiner Aufträge habe ich in der Zeit mehr gearbeitet als je zuvor im gleichen Zeitrahmen. Nur halt rein remote bzw. von meinen Büros aus.

Das geht beim Schreiben von Büchern und Schulungsunterlagen selbstverständlich ohne Probleme und das habe ich auch vorher schon viele Jahre gemacht. Auch die Aufnahmen meiner Onlinetrainings bei LinkedIn Learning (LiL) habe ich in der Zeit komplett in meinem Büro in Eppstein statt in Graz eingespielt. Aber auch das hatte ich vorher schon gemacht – wenngleich vielleicht bei maximal 10% – 20% der Trainings. Nur für Schulungen war ich bis letzten Februar eigentlich fast immer vor Ort (meine Betreuung der Onlinekurse bei der ILS außen vor). Bis zu dem Zeitpunkt hatte ich in den vielen Jahren davor vielleicht 2 oder 3 Remoteschulungen gehabt und mir in der Zeit der vielen Reisen und Hotelübernachtungen bei Schulungen gewünscht, in Zukunft weniger auf Achse zu sein. Tja – und dann ist dieser Wunsch in Erfüllung gegangen – aber schneller als gedacht und viel „intensiver“. Also Vorsicht mit den Wünschen.

Für mich ist es Zeit ein Fazit zu ziehen. Ich kann offensichtlich all meine Arbeiten von zu hause und/oder remote erledigen. Durch den Wegfall der Reisen/Fahrten gewinne ich sogar sehr viel Zeit und damit kann ich im Grunde mehr Aufträge erledigen bzw. mit einem signifikant geringeren Zeitaufwand. Der Wegfall der Reisekosten kommt als weiterer positiver Aspekt dazu.

Also alles gut? Rein von der Arbeit ja, aber von dem psychologischen bzw. zwischenmenschlichen Aspekt nicht.

Ganz fatal ist mir aufgefallen, dass der „Eindruck“ von Dingen und Ereignisse in dem letzten Jahr unglaublich „flach“ wird. Wenn ich eine Remote-Schulung halte und die Teilnehmer nicht einmal die Kamera an haben (was leider sehr oft der Fall ist), habe ich schon beim Schulen selbst keinen „echten“ Eindruck von den Teilnehmern und zudem bleibt mir die Maßnahme nicht wirklich in Erinnerung. Ich nehme Dinge und vor allen Dingen auch Personen visuell wahr und kann mir Namen kaum merken. Aber wenn ich Leute nach Ewigkeiten wiedersehe (passiert mir bei einem Kunden in Oberursel oft), erkenne ich sie sofort. Wie gesagt – die Namen sind weg, aber sonst erinnere ich mich an zig Details rund um die Personen als auch die Maßnahmen. Auch Orte/Hotels/Schulungsräume sind mit gewissen Maßnahmen verbunden und damit erzeugen sie Erinnerungen.

Solche Assoziationen entfallen bei Remote-Maßnahmen komplett und die Erinnerungen an Teilnehmer bis hin zu den ganzen Schulungen sind sofort verweht. Das finde ich sehr bedauerlich. Selbst die Erinnerungen an Details bei meinen Videoaufnahmen in den letzten Monaten gehen in der Gleichförmigkeit bzw. mangelnden Besonderheit unter. Wenn ich nach Graz geflogen bin, hat sowohl die Reise an sich als auch der Ort samt den Kollegen und Erlebnissen dort dauerhafte Erinnerungen geschaffen – auch wenn ich über die vielen Jahre mittlerweile gut 35 – 40x nach Graz geflogen bin. All da entfällt. Remote gibt es keine erinnerungswürdigen „Erlebnisse“ und und das ist einfach nicht gut.

So sehr mir die vielen Autofahrten und Reisen zu meinen externen Jobs die letzte Zeit vor Corona auf den Senkel gegangen sind – nach Corona werde ich versuchen, weiter viel remote zu erledigen. Aber einzelne Maßnahmen Vorort sind unbedingt notwendig. Zum Pflegen der Kontakte, aber auch dringend psychologisch.