Blue Screen of Death – Vol. 2

Nachdem ich vorgestern das 1. Mal seit langer Zeit  einen Blue Screen of Death beim morgendlichen Hochfahren meiner Workstation und ich die Reparatur recht stringent durchbekommen hatte, ist die Kiste gestern problemlos gestartet und den ganzen Tag gelaufen . Nur heute morgen hatte ich den Mist erneut.  Mit identischem Ablauf:

  • Fehlermeldung und Sammeln der Informationen für eine Bereinigung der Situation.
  • Neustart mit „automatischem“ Reparaturversuch, der scheitert.
  • Manuelles Reparieren über Start im abgesicherten Modus und anschließendem Neustart.
  • Einwandfreier Start, aber keinerlei Ton über die Soundkarte.

„Blue Screen of Death – Vol. 2“ weiterlesen

ASP.NET MVC, Codespace & Docker

Webanwendungen mit ASP.NET MVC und Razor Ein kompakter und praxisnaher EinstiegIch habe eine neue Webseite erstellt. Das ist nicht ungewöhnlich und kaum eines Posts wert. Zumal die  Webseite nicht der Burner ist. Weder vom Design, noch dem Inhalt. Es ist im Grunde nur etwas Werbung für mein Buch zu „Webanwendungen mit ASP.NET MVC und Razor – Ein kompakter und praxisnaher Einstieg„, das ich vor einiger Zeit beim Springer-Verlag veröffentlicht habe. Also wozu der Hussle?

Nun – wenn man den Link zu der Webseite anklickt, fällt vielleicht der ungewöhnliche Port auf (33333). Der eigentliche Anlass für die neue Webseite war die Vorbereitung für eine Schulung mit ASP.NET im kommenden Januar. Ich will einfach einige Praxisseiten zum Zeigen von ein paar Sachen haben.

Ich betreibe meine Webseiten nun aber mit einem Apache-Webserver unter Linux. Die neue Webseite ist jedoch – aus besagten Gründen – mit ASP.NET MVC und Razor gemacht. Und das braucht – eigentlich – einen Windows-Server mit IIS oder so. Also auf jeden Fall .NET. Lokal auf einem Windows-PC bzw. direkt aus Visual Studio kein Problem. Aber wenn man „In-the-wild“ nur Linux verwendet? „ASP.NET MVC, Codespace & Docker“ weiterlesen

Endlich zurück – trotz fehlender Erfrischungstücher …

Mit einer Verspätung von 18 Stunden in ich wieder aus Graz zurück. Obwohl scheinbar alles dran gesetzt wurde, dass auch das nicht klappen sollte. Nachdem mein Flieger gestern anulliert wurde, bin ich mit dem Taxi zurück zum Hotel, das mittlerweile LinkedIn Learning für mich verlängert hatte. Aber der kurze Weg zurück hat ewig gedauert, weil der Verkehr in Graz zusammengebrochen war. Letztendlich war das egal, denn ich hatte ja gestern Abend nichts mehr vor ;-/.

Da ich für den ersten Flieger heute von Graz nach FFM um kurz nach 6:00 Uhr umgebucht war, habe ich vom Hotel für 4:50 Uhr ein Taxi zum Flughafen bestellen lassen. Und was kam heute morgen nicht? Damit hat der Tag elend früh und dazu mit einem riesigen Stress angefangen, denn es hat 20 Minuten gedauert, bis überhaupt jemand bei irgendeiner Taxizentrale zu erreichen war. „Endlich zurück – trotz fehlender Erfrischungstücher …“ weiterlesen

Cancellation of your flight

Na ganz toll. Mein Flug ist ausgefallen und heute geht nichts mehr :-(. Ich bin wieder zurück im Hotel und muss noch eine Nacht in Graz bleiben. Glücklicher Weise hat das mit dem gleichen Hotel geklappt, in dem ich sonst auch immer bin. Aber es ist schon ein riesiger Mist, dass ich für heute keinen alternativen Flug mehr bekommen habe. Ich bin auf morgen 6:10 Uhr umgebucht. Was bedeutet, dass ich ultrafrüh zum Flughafen muss. Ich habe für kurz vor 5 Uhr ein Taxi bestellt und hoffe, dass morgen der Flug nicht wieder ausfällt.

Total unbefriedigend ist, dass Lufthansa  keinerlei Informationen gegeben hat, warum der Flug ausgefallen ist. „Cancellation of your flight“ weiterlesen

Leaving Graz

Meine beiden Videotraining bei LinkedIn Learning sind eingespielt und ich verlasse Graz nach dem Mittagessen wieder. Das Aufnehmen hier in den Tonstudios ist vom Feeling als auch Arbeitsablauf etwas ganz Anderes als wenn ich Training im Homerekording aufnehme. Vermutlich merkt dennoch niemand, der ein Training ansieht, ob dieses in einem der Grazer Tonstudios oder im Homerekording aufgenommen wurde. Nur an einer Sache kann man m.E. erkennen, ob die Aufnahmen in Graz oder im Homerekording erstellt wurden – die Trailer zu den beiden Videotraining wurden im Filmstudio mit MeinerEiner vor der Kamera aufgenommen. „Leaving Graz“ weiterlesen

Polaroid

Es ist Tradition bei LinkedIn Learning, dass von den Trainern in ihren Tonstudios mit einer alten Sofortbildkamera Fotos aufgenommen und an die Außenseite des Tonstudios gepinnt werden. An jedem der vielleicht 30 Boxen hängen mittlerweile einige Duzend dieser Bilder. Auch von mir gibt es an mehreren Tonstudios bereits solche Bilder. „Polaroid“ weiterlesen

Altbekannt

Ich bin gestern und heute Vormittag gut vorangekommen und habe mittlerweile mein erstes LiL-Training so gut wie fertig. Das 2. Training ist auch schon ziemlich weit vorbereitet und ich mache jetzt Schluss für heute.

Da heute das Wetter genial war und ab morgen kippen soll, habe ich eine längere Mittagspause eingeschoben und bin runter in die Stadt und dann hoch auf den Schlossberg gelaufen. Über die vielen Jahre war ich mindestens 20x wenn nicht häufiger schon da oben. „Altbekannt“ weiterlesen

Feierabend

Die ersten Aufnahmen sind im Kasten und ich mache jetzt Feierabend. Nachdem ich heute um 5:00 Uhr aufgestanden bin, bin ich langsam müde.

Hier in Graz bei LiL ist so gut wie alles noch so wie früher. Obwohl ich Januar 2019 das letzte Mal hier war, kommt mir die Zeit eigentlich gar nicht so lange vor. „Feierabend“ weiterlesen

Graz calling

Ich warte am Flughafen Frankfurt auf meinen Flieger nach Graz. Es geht nach fast 3 Jahren endlich mal wieder zu  Videoaufnahmen bei LinkedIn Learning. Das bedeutet keinesfalls, dass ich in der Zeit keine Videotraining für LIL aufgenommen habe. „Graz calling“ weiterlesen

Schulungsjahr 2022 beendet

Gestern habe ich meinen letzten Schulungstag 2022 (falls nicht noch ganz kurzfristig was aufläuft) gehalten (zu Python) und eben habe ich die letzte Rechnung für eine Schulung erstellt und versendet. Damit schließe ich das Schulungsjahr 2022 ab. Allerdings kommt vor Weihnachten noch eine Woche mit Videoaufnahmen bei LinkedIn Learning in Graz, worauf ich mich richtig freue.

Einführung in JavaFX/OpenJFX

Wenn ich die Schulungen dieses Jahr durchgehe, kamen wieder eine ganze Reihe an Themen vor. Wie üblich mit einigen Schwerpunkten, die sich im Vergleich zu den Jahren zuvor aber teils verschoben haben. Andere Themen sind komplett weggebrochen oder ich habe sie nicht annehmen können und ich muss mir überlegen, ob ich die weiter im Schulungsprogramm behalte. Auch wenn ich sie persönlich meist immer noch interessant finde (etwa F#, GWT oder Perl) bzw. unabhängig von direkten Schulungen oft verwende (etwa Eclipse oder alles rund um mein Lieblingsbetriebssystem Linux, wofür ich aber keine aktuelles Schulungsagenda mehr ausgearbeitet habe – zu nahezu allen anderen Schulungthemen habe ich ja eigene Bücher und Schulungsunterlagen und/oder Videotraining bei LiL erstellt).

„Schulungsjahr 2022 beendet“ weiterlesen

Mein neuer LiL-Python-Kurs ist bei der internationalen GitHub Codespaces-Aktion dabei

Der Python-Kurs, den ich im Sommer neu aufgenommen habe, ist gestern freigeschaltet worden. Mittlerweile sind schon sehr viele Kurse von mir bei LinkedIn Learning erschienen (aktuell sind 62 Kurse online verfügbar), aber diese Code Challenge ist dennoch etwas Besonderes.

Denn das Training ist Teil einer internationalen Kampagne, bei der in der Tech-Library von LiL gestern auf einen Schlag über 50 internationale Programmierkurse veröffentlicht wurden, die sich durch Integration in die ebenfalls brandneue Cloud-basierte Entwicklungsumgebung (IDE) Github Codespaces auszeichnen. Mein Python-Kurs,ist eben als einer von nur 3 deutschsprachigen Kurse dabei. „Mein neuer LiL-Python-Kurs ist bei der internationalen GitHub Codespaces-Aktion dabei“ weiterlesen

Neue Videos im Online-Training zu JavaScript

Bei LinkedIn Learning (LiL) wurde mein eines Videotraining zu JavaScript um zwei Themen erweitert. Das eine dreht sich um Promises und das andere, wie man Elemente mit querySelector und querySelectorAll auswählen kann.

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.