Nachdem ich mein Python-Skript zur Identifizierung und Löschung von Spam auf Basis bestimmter Schlagworte im Betreff ein bisschen getestet habe, habe ich es sowohl auf meinem Server als auch dem Raspberry Pi als CronJob bereitgestellt. Mal sehen, wie gut die Putzkolonne das E-Mail-Postfach frei hält. Die letzten Nächte hatte ich – trotz SpamAssasin & Co jeden Morgen gut 20 Dreckmails im Postfach. Ich bin guter Hoffnung, dass Raspi einen guten Torwächter abgibt und da das Python-Skript redundant auch auf dem eigentlichen Server per CronTab aufgerufen wird, werde ich mal schauen, wie ich das in Zukunft austariere. Aber vorher werde ich das Skript noch optimieren.
Python-Skript zur Spam-Abwehr
Die momentane Überflutung mit E-Mail-Spam auf meinem eigenen Server geht mir gewaltig auf die Nerven. Ich habe die Woche etwas Zeit gehabt und immer mal wieder diverse Wege ausprobiert, um diesen Angriffen etwas entgegenzusetzen. Und dabei – das ist das Positive – doch wieder was gelernt. Ich habe zig Einstellungen und Optionen an meinem Server verändert, was aber nur begrenzten Erfolg hatte und auch nicht ungefährlich ist. Sogar den Email-Server habe ich gewechselt.
Klar verwende ich SpamAssassin und habe auch Blacklist- und Whitelist-Einstellungen. Aber das hilft in meinem Fall nicht wirklich was. Oder anders ausgedrückt – ohne das Zeug würde ich vermutlich die 10-fache Menge an Spam bekommen, aber was immer noch durchkommt, ist erschreckend. Vor allen Dingen greifen die Einstellungen, dass man Absender blockiert oder freigibt, nicht. Wie gesagt – bekannte Spammer zu blocken ist garantiert sinnvoll, um 90% des Drecks wegzuhalten, aber nicht ausreichend. Denn die Spammer in der derzeitigen Flut verwenden Einmal-Adressen. Es ist daher leider vollkommen nutzlos, den Server, die Domain oder gar einen einzelnen Absender zu blockieren.
Leider kann ich auf meinem Server kein Greylisting aktivieren. Grundsätzlich ist es verfügbar, aber beim Aktivieren bekomme ich einen Bug im Serverskript angezeigt :-(. Dabei wäre Greylisting in vielen Fällen garantiert sinnvoll. Im Gegensatz zu Whitelisting (bekannte Adresse immer durchlassen) und Blacklisting (bekannte Adressen immer blockieren) lehnt man bei Greylisting unbekannte Adressen genau 1x mit einer passenden Meldung ab und trägt die Absenderadresse in eine DB ein, um bei der nächsten Zustellung den Absender durchzulassen. Seriöse Versender bzw. SMTP-Server senden einfach nach einer ersten Fehlermeldung des Adressaten automatisch nochmal (ohne dass es der Absender bemerkt), Spammer in der Regel nicht. Aber wie gesagt – kann ich (derzeit) nicht aktivieren. Mal sehen, ob ich den Fehler noch rausbekomme, aber ich bin einfach kein (echter) Admin – sondern Programmierer.
Natürlich habe ich auch SPF-Spamschutz aktiviert, aber dennoch erscheint mir das als ein nutzloser Kampf gegen Windmühlen. Eigentlich helfen nur Inhaltsfilter, denn die Spam-Flut lässt sich derzeit bei mir auf etwa 5 – 10 Schlagworte eingrenzen.
Solche Filter kann ich in Thunderbird sehr schön anlegen und auch meine GMX-Accounts erlauben das. Nur die E-Mail-Programme, die ich bisher für mein SmartPhone gefunden habe, haben dieses Feature nicht. Deshalb habe ich sogar mal versucht, meine rjs.de-Adresse auf eine GMX-Adresse weiterzuleiten, dort mit Inhaltsfiltern zu reinigen und dann zurück auf eine neue rjs.de-Adresse weiterzuleiten. Funktioniert, aber ist mir dann doch zu umständlich gewesen. Außerdem will ich meine bisherige E-Mail-Adresse nicht wegen diesen Dreckschweinen aufgeben bzw. so kastrieren.
Überhaupt – das Filtern verlagert die Sache – soweit ich es hinbekomme – vom Server in den Client, denn bei beiden POP3/IMAP-Servern, die ich verwende, gibt es dieses Filtern nach dem Inhalt leider nicht – soweit ich es herausgefunden habe .
Bei POP3-Accounts ist das Filtern mit einem E-Mail-Client aber sowieso ziemlich unnütz und deshalb habe ich jetzt mal die Geschichte komplett auf IMAP umgestellt. Hätte ich schon lange tun müssen. Aber auch dann muss ein Client mit Filtern regelmäßig das Konto überwachen (etwa ein entsprechend konfigurierter Thunderbird auf einem meiner Rechner), damit ein anderer Client ohne die passenden Filter (etwa auf dem SmartPhone) gar nicht erst den Schmutz lädt.
Die Grundidee schien mir aber ok, da ich anders nicht weiter kam. Aber einen PC Tag und Nacht laufen lassen und alle paar Minuten Thunderbird das Konto checken lassen? Das kostet zu viel Strom und ist schon auf den zweiten Blick nicht wirklich optimal.
Mir kam dann die Idee, meinen alten Raspberry Pi das machen zu lassen. Braucht kaum Strom und die Platine verstaubt sowieso vor sich hin, nachdem ich den Zwerg vom Kryptomining wieder abgezogen habe. Also damit eine Weile experimentiert. Da ich an der Platine weder Maus und Tastatur noch Monitor hängen habe und auch W-LAN nicht eingerichtet war, musste ich das Kistchen erst einmal etwas aktualisieren bzw. neu einrichten. Natürlich kann ich mit klassischem SSH mit X-Umleitung darauf zugreifen, aber ich arbeite auch bei Fernzugriff gerne mit dem Desktop. Nur komischer Weise ging der Zugriff über VNC auf den Raspi nicht. Obwohl auf der Raspi auch ein VNC-Server automatisch mit startet und ich das schon früher so gemacht habe. Ich habe es absolut nicht hinbekommen und in meiner Verzweiflung sogar xrdp installiert und – oh Wunder – der Remotedesktop-Zugriff ging einwandfrei – von Windows (!) aus.
Aber da es sich bei meinem Raspi um die Version 1 handelt, konnte ich da kein vernünftiges E-Mail-Programm installieren. Viel experimentiert bis hin zur versuchten Installation von iceweasel und icedove, aber erfolglos. Der Weg war mir dann einfach zu steinig und ich habe ihn als Sackgasse begraben.
Und dann kam mir ein Gedanke! Warum kein Python-Skript schreiben und damit das IMAP-Postfach regelmäßig abfragen? Die ursprüngliche Idee war, dass ich das dann auf dem Raspi laufen lasse, aber relativ schnell kam ich auf den Dreh, dass das natürlich auch auf dem Server selbst erfolgen kann. Ich habe ja in meinen regelmäßigen Entwickler-Tipp zu Python bei LinkedIn Learning schon einen Tipp veröffentlich, wie man per CronTab zeitgesteuert Python-Skripte ausführen kann. Was aber natürlich auch für den Raspi interessant wäre.
Das Skript, das ich dann programmiert habe, nutzt im Wesentlichen imaplib, ist aber noch nicht ganz fertig und auch noch nicht auf dem Server bzw. Raspi installiert. Aber wenn ich die derzeitige Vorversion in IDLE laufen lasse, kann ich recht zuverlässig im Betreff von E-Mails (theoretisch auch in der gesamten Mail) Schlagworte finden, die ich als SPAM empfinde und dann die Mails vom Skript automatisiert löschen lassen.
Ich werde von dem Skript noch eine Datei mit den Schlagworten einlesen lassen, reguläre Ausdrücke mit dem Modul re integrieren, das Skript eine Weile manuell testen, und dann in einen Cron-Job auf dem Server und/oder Raspi einbauen. Das sollte eine brauchbare Ergänzung meiner Spamabwehr werden und ich habe wie gesagt wieder neue Sachen gelernt, was dem Mist etwas Positives abgewinnt.
Und wenn mein Vorrat an bereits eingespielten Videos für die regelmäßigen Entwickler-Tipps zu Python zur Neige geht, habe ich damit ein interessantes Thema für die neuen Tipps, die ich dann vermutlich einspiele.
Ist denn schon Ostern?
Bis Ostern ist es noch etwas hin, aber das bedeutet nicht, dass man nicht Ostereier suchen kann. Wobei man es bei LinkedIn Learning auch besser hätte timen und diesen Entwickler-Tipp der Woche zu Python wirklich um Ostern freischalten können. Aber sei es drum – in modernen Zeiten gibt es ja auch schon Weihnachtssachen Monate vor dem Fest zu kaufen und von daher sind Ostereier Ende Februar noch im Rahmen.
Viele Softwareprodukte stellen diese Easter eggs zur Verfügung. Das sind versteckte Funktionalitäten, die nicht unbedingt sinnvoll sind, aber ganz lustig. Und auch in Programmiersprachen gibt es so etwas. Natürlich hat auch Python so einige versteckte Ostereier und ein paar davon zeige ich in dem Entwickler-Tipp.
Spam-Terror
Im Moment werde ich geradezu mit E-Mail-Spam geflutet. Zumindest bei meinem eigenen Server. Ich habe keine Ahnung, warum das von einem auf den anderen Moment explodiert ist. Nun kann ich in meinem E-Mail-Programm auf dem Desktop ganz gut Filter gegen den Müll einsetzen. Einfach die üblichen Busswords, die derzeit die Flut ausmachen (da haben mir etwa 5 – 10 gelangt, um 95% des Spams zu erfassen), als Filter verwendet und gut ist. Zumindest was die derzeitige Welle angeht, die komplett das horizontale Niveau anspricht.
Aber die E-Mail-Programme, die ich bisher für mein SmartPhone gefunden habe, taugen hinsichtlich Spam-Schutz keinen Schuss Pulver. Kein einziges. Die Dinger haben alle denkbaren ach so tollen Features, aber das einfache Anlegen von Filtern aufgrund von Keywords habe ich nirgendwo gefunden. Maximal kann man Absender bannen, aber das ist wirkungslos, denn die Absenderadressen sind Einmal-Adressen. Diese Art der Filterung bzw. des Spamschutzes ist von vorgestern und wirklich nutzlos.
Ich habe jetzt mal den Server versucht besser gegen Spam zu konfigurieren und hoffe, dass ich damit nichts kaputt gemacht habe und/oder fehlerhaft korrekte Mails abweise. Ich bin ja Programmierer und kein Admin. Aber ich kann mir sonst nicht mehr helfen, um dieser Flut Herr zu werden.
Die Konfiguration der Spam-Abwehr habe ich gleich dazu genutzt, auch die Zertifikate als auch Verschlüsselungseinstellungen zu verschärfen. Hilft nichts gegen Spam, sollte aber an anderen Stellen Verbesserungen und mehr Sicherheit bringen.
Fingerprinting
Ich bin gerade über einen Beitrag gestolpert, der die Vermeidung von Spuren im Internet zum Thema hat. Ich finde den Beitrag wirklich gut. Nicht zu technisch, aber auch nicht zu trivial wie sonst meistens.
Nun achte ich natürlich stark darauf, dass ich wenige Spuren im Internet hinterlasse bzw. die Spuren ganz bewusst lege, um Datenspione gezielt irrezuführen. Aber so ganz man kann nicht komplett unsichtbar bleiben. Sonst wird es zu mühselig und viele Dinge im Internet funktionieren sogar gar nicht.
Klar akzeptiere ich Cookies. Vollkommen uneingeschränkt. Und ebenso selbstverständlich werden die beim Schließen eines Browser komplett beseitigt. Ein Nullsummenspiel sozusagen. Cookies sind aber sowieso harmlos und werden ja nur als Ablenkungsmanöver missbraucht, um Anwender solange mit nervigen Meldungen mürbe zu machen, damit Datenschutz nur noch als Belästigung gesehen wird und sie nicht mehr auf echte Datenschutzprobleme achten. Tja – die DSGVO. Vielleicht gut gedacht, aber grottenschlecht gemacht.
Natürlich bin ich auch nicht bei Fratzenbuch, Google, Amazon etc angemeldet, wenn ich andere Webseiten besuche oder gar in Suchmaschinen etwas suche und ja – DuckDuckGo und Ecosia statt Google oder Bing sind selbstverständlich.
Tracking wird mit Browsereinstellungen und ein paar Zusatztools blockiert und wenn es mir wichtig ist, nutze ich auch ein VPN (ist ja in Opera integriert) oder gar Tor. Dazu kommen regelmäßige Einsätze von Reinigungstools wie CCleaner, PrivZer und BleachBit.
Aber das Fingerprinting ist und bleibt ein Problem. Das zu verhindern ist nicht ganz so einfach. Im Gegensatz zum Fingerprinting selbst. Ich bin ja kein Hacker, aber selbst in meinen gewöhnlichen JavaScript-Büchern und meinen Videotrainings für LinkedIn Learning (LiL) zeige ich, wie einfach das im Grunde ist.
Nun habe ich gerade eine Webseite (Cover Your tracks) ausprobiert, die in dem Beitrag empfohlen wird, um zu testen, wie sicher der Browser ist. Und tatsächlich sind meine Standardbrowser nicht vernünftig gegen Fingerprinting gesichert. Vivaldi und Opera so gut wie gar nicht und es konnte ein eindeutiger Fingerprint ermittelt werden, Firefox ist etwas besser, aber auch noch nicht wirklich sicher und nur der Tor-Browser stoppt das Fingerprinting effektiv. Edge, Chrome etc. oder gar IE werde ich nicht testen, denn die Browser verwende ich sowieso nicht, da sie aus meiner Sicht noch in anderer Hinsicht unbrauchbar sind.
Ich werde mal auf die Suche gehen, ob es geeignete Erweiterungen gibt, mit denen ich Vivaldi, Opera und Firefox richtig schützen kann. Denn so sicher der Tor-Browser ist – darüber ist das Surfen langsamer und machen Seiten gehen auch nicht.
Videoaufnahmen laufen und der neue Entwicklertipp ist da
Nachdem ich gestern schon in mein Büro nach Eppstein gefahren bin – glücklicher Weise, denn bei einem Wasserhahn hatte sich was gelöst und es hat munter das Wasser gespringkelt 🙁 – und dort (nach einer provisorischen Kemptner-Notaktion) alles aufgebaut und eingerichtet habe, habe ich bereits gestern das Testvideo aufgenommen und auf Sharepoint hochgeladen. Dementsprechend konnte ich heute morgen direkt mit den Aufnahmen beginnen. Parallel ist aber auch wieder mein regelmäßiger Entwickler-Tipp zu Python bei LinkedIn Learning freigeschaltet worden. In diesem behandle ich das Erstellen eines Webservers mit Python, der den Inhalt eines Verzeichnisses über http verfügbar macht. Das geht mit Python fast schon erschreckend einfach.
Video-Calling
Es ist mal wieder Studiozeit. Ab morgen mache ich Aufnahmen für LinkedIn Learning (LiL), wobei das aufgrund von Corona immer noch in meinem Büro in Eppstein statt in Graz stattfindet. Ich werde schon heute am späten Abend rüberfahren und alles einrichten, damit ich morgen gleich mit den Aufnahmen loslegen kann. Ich habe nur 3 Tage Zeit, weil die Aufnahmesession zwischen eine regelmäßige Python-Schulung gequetscht werden musste, die im Februar jeden Montag und Dienstag stattfindet.
Ich ergänze in den Aufnahmen ein Training um ein noch nicht ausreichend behandeltes Thema (werden einfach 3 Erweiterungsvideos, die ohne großes Tamtam in das bestehende Training ergänzt werden) und ich nehme ein altes Training neu auf. Ich halte bei so Posts ein wenig mit den konkreten Themen hinter dem Berg (wie eine Autofirma mit einem Erlkönig), denn es ist nie klar, wie lange es zwischen Aufnahme und Veröffentlichung dauert und da will ich so früh keine Pferde scheu machen.
Nur soweit komme ich aus der Deckung – die Überarbeitung betrifft das 3. Training, das ich jemals für LiL bzw. damals Video2Brain aufgenommen habe. Und das war 2008, geht um ein Entwicklungstool und wurde auf DVD veröffentlicht. Zwar wurde das Training seit der Zeit immer wieder angepasst und sogar schon mal neu eingespielt, aber es ist trotzdem im Kern jetzt 14 Jahre alt. In der neuen Version wird es auf gut 30% der Zeit eingedampft und auf das Kerntool reduziert. Die Randtechniken, die bisher mit behandelt wurden, sind mittlerweile in eigene Trainings ausgelagert worden (meist auch von mir) und da viel besser aufgehoben.
Speicherbedarf eines Objekts feststellen – aus meinem Tutorial zu Python
Es ist wieder Mittwoch und damit der übliche Wochentag, an dem mein regelmäßiger Entwickler-Tipp zu Python bei LinkedIn Learning freigeschaltet wird. Der Tipp hat zum Thema, wie man den Speicherbedarf eines Objekts unter Python bestimmen kann.
Python und UML
Ich schule immer wieder UML und in dem aktuellen Entwickler-Tipp zu Python bei LinkedIn Learning betrachte ich die Verbindung zwischen UML und Python. So ganz perfekt spielen die Welten nicht zusammen, aber grundsätzlich kann man schon aus UML Python-Code erzeugen und vor allen Dingen aus Python-Code UML-Klassendiagramme generieren, um eine Übersicht von Klassenbeziehungen zu bekommen.
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 🙂
Ein Modul direkt ausführen
Im heute freigeschalteten Entwickler-Tipp zu Python bei LinkedIn Learning geht es darum, wie man Module in Python direkt ausführen kann.
Visual Studio 2022
Letzte Woche hatte ich eine Schulung zu C# gehalten und gestern wieder eine Anfrage für die kommenden Monate bekommen, die explizit das neue Visual Studio 2022 nutzen wird (Überarbeitung von Schulungsunterlagen). Auch wenn mein Standardkunde für die regelmäßigen C#-Schulungen noch auf Visual Studio 2019 setzt (der unternehmensweite Umstieg auf die Version 2019 wurde sogar erst Ende 2021 abgeschlossen), habe ich den neuen Auftrag zum Anlass genommen, die neue Version zu installieren und mal anzusehen.
Auf den ersten Blick ist fast alles gleich geblieben, aber mehr werde ich bei der Überarbeitung meiner Schulungsunterlagen rausfinden. Vorher kommen aber noch ein paar Schulungen, bei denen auch wieder eine der C#-Schulungen dabei ist, die mit Visual Studio 2019 gehalten werden müssen.
Das Windows-11-Update ist durch
Ich bin immer wieder erstaunt (oder besser erschrocken), wie lange ein Update von Windows dauern kann. Das Update von Windows 10 auf Windows 11 auf meinem UBook war gerade wieder so ein Frusterlebnis. Der Download der Installationsdateien von Windows 11 ging recht fix, da ich in meinem Büro in Eppstein DSL100 habe. Ich habe nicht wirklich aufgepasst, aber das war in so einer guten Stunde wohl durch. Danach habe ich die Installation auf meinem Microsoft-Surface-Billig-Klon von CHUWI gestartet. Den Installationsprozess habe ich etwa 1,5 Stunden so beiläufig verfolgt und dann bin ich ins Bett gegangen, um die Sache über Nacht durchlaufen zu lassen. Ich hatte es nicht eilig, den Rechner wieder in Gang zu bekommen.
Am nächsten Morgen stand auf dem Bildschirm, dass die Installation soweit beendet wäre und der Rechner zum Abschließen der Installation und erstem Einrichten neu gestartet werden könnte. Gemacht, Kaffee gekocht und gewartet. Nach gut 20 Minuten stand die Fortschrittsanzeige auf ca. 2%. Ich wollte sowieso den Garten hinter meinem Zweitbüros von Dornen und Unkraut befreien und habe, während Windows 11 die Einrichtung und den 1. Start versucht hat, den gesamten oberen Teil mit Gartenschere und Hacke von Dornen und Unkraut befreit. Dabei bin ich mit der Hacke gut 7 – 8 Mal den gesamten Bereich durchgegangen. Selbst in der Zeit hat es Windows nicht geschafft, sich einzurichten. Erst nachdem ich den Hof noch von Blättern befreit und gekehrt hatte, war Windows mit der Sache dann fertig. Das waren 4 Stunden! Wie gesagt – ich bin jedes Mal entsetzt, wenn ich so etwas mache.
Ich sollte nicht so viel Linux verwenden, denn das versaut die Erwartungshaltung. Linux wäre auf vergleichbarer Hardware in vielleicht 10% der Zeit durch.
Aber man installiert in der Regel ja nur einmal und wenn das durch ist, muss die Sache nur funktionieren. Auch wenn es um das Tablet nicht schade gewesen wäre, wenn die Installation schiefgegangen oder Windows 11 das Teilchen ruiniert hätte – ich wollte ja schon, dass ich Windows 11 mal ausprobieren kann. Und tatsächlich läuft Windows 11 auf diesem zwar ziemlich neuen, aber einfachen und recht schwachbrüstige Gerät.
Mein erster Eindruck von Windows 11 ist wie erwartet negativ, aber da greift sicher meine Aversion gegen Änderungen von Bewehrtem. Die Oberfläche finde ich grausam – sieht fast aus wie macOS (und das ist aus meinem Mund ein vernichtend negatives Urteil, weil ich mit Apple-Geräten einfach nicht zurechtkomme). Aber ich denke, dass ich die anpassen kann und vermutlich werde ich die Classic Shell bzw. Open Shell installieren, mit denen ich mich auch schon gegen den Desktop von Windows 10 erfolgreich verteidige. Aber erst einmal will ich die neue Oberfläche lassen (zumal Open Shell offiziell noch nicht für Windows 11 verfügbar ist) und schauen, ob meine Ablehnung wirklich nur die Aversion gegen das Neue oder fundiert ist. Denn bei Linux habe ich gegen neue Oberflächen meist weniger Aversion als bei Windows und macOS.
Microsoft hat auch unzähligen Bloatware mit Windows 11 installiert, aber die Deinstallation ging zumindest vernünftig. Weitere Bereinigungen und Optimierungen gehe ich die Tage an. Auch um das Gerät zu beschleunigen, denn gefühlt starten die Programme mi Vergleich zu Windows 10 extrem zäh und laufen auch langsamer. Ich habe zwar gehört, dass Windows 11 hier eigentlich besser als Windows 10 sein sollte, aber ich habe den gegenteiligen Eindruck. Was aber auch daran liegen kann, dass das UBook vermutlich am unteren Ende der notwendigen Hardware rangiert. Ich werde auf jeden Fall Windows 11 auf dem UBook lassen und je nach meinen persönlichen Erfahrungen entscheiden, ob ich weitere Rechner darauf umstelle oder nicht.
Risiko! Ich installiere Windows 11. Auf einem Billig-Klon eines Sureface
Ich bin gerade in meinem Büro in Eppstein und habe vor ein paar Minuten mein Microsoft-Surface-Billig-Klon von CHUWI gestartet. Der Update-Prozess hat mir dabei angezeigt, dass Windows 11 für meinem Rechner verfübar wäre. Kostenlos! Eigentlich wollte ich Windows 11 ignorieren bzw. überspringen, denn über die letzten Jahre hat sich die Erfahrung manifestiert, dass die ungeraden Windows-Versionen immer Schrott waren.
Aber um das Tablet ist es eigentlich nicht schade, wenn da die Installation schiefgeht oder Windows 11 wirklich so schlecht ist, wie ich es erwarte. Das Gerät ist im Gegenteil eigentlich perfekt, damit ich mir ein eigenes Bild machen und die Installation bzw. Deinstallation testen kann. Wäre schon eine Überraschung, wenn dieses doch einfache und recht schwachbrüstige (wenngleich ziemlich neue) Gerät es schafft, mit Windows 11 zurechtzukommen. Aber die Update-Routine von Windows 11 meint es anscheinend. Wir werden es sehen.
Im Moment sind ca 42% runtergeladen und ich werde sehen, ob das UBook nach dem Installationsversuch noch ein UBook oder ein totes Stück Elektroschrott ist. Ich gehe aber davon aus, dass ich im Problemfall bzw. bei Nichtgefallen wieder auf Windows 10 zurückgehen kann. Auch der Test ist spannend.
Meine wichtigen Rechner will ich aber nach derzeitiger Auffassung nicht Windows 11 aussetzen, denn die brauche ich auf jeden Fall funktionstüchtig. Wenn das Zeug auf dem Chuwi läuft, dann kann ich zumindest etwas Erfahrung mit Windows 11 aufbauen und das brauche ich eben auch auf jeden Fall – auch wenn ich Windows 11 eigentlich überhaupt nicht nötig habe.
Großes Reinemachen der Datenträger
Diese Woche habe ich eine Remote-Schulung zu C# gehalten. Am Ende so einer Schulung gebe ich immer die von mir erstellten Quelltexte an meine Schulungsteilnehmer weiter. Da ich im Fall von so einer C#-Schulung natürlich mit Visual Studio arbeite, sind in meinen Projekten aber immer die ganzen *.dll, *.exe, *.obj und andere Dateien abgelegt, die beim Compilieren und Ausführen der Schulungsprojekte entstehen. Solche kompilierten Sachen sind für die Weitergabe an meine Teilnehmer natürlich unnötig und sogar kontraproduktiv, weil damit die weiterzugebenden Daten ziemlich umfangreich werden und – beim Verschicken über das Internet – die Firewall der Firmen, wo meine Teilnehmer arbeiten, diese Dateien meist grundsätzlich blockiert. Also stelle ich fast immer eine ZIP-Datei zusammen, die nur die eigentlichen Quelltexte und meist auch die Projekt- und IDE-Einstellungen enthält, wenn das – wie im Fall von Visual Studio – relevante Informationen sind.
Nun bin ich insbesondere bei meinem MateBook mit seiner extrem sparsamen 256 GByte-SSD schon seit Monaten am Limit und habe sogar diverse Verzeichnisse und Programme schon gelöscht oder auf eine externe SSD verschoben, die ich eigentlich gerne dabei bzw. auf der internen SSD des Notebooks gespeichert hätte.
Ich habe keine Ahnung, warum mir nie aufgefallen ist, dass ich vollkommen unnötig bei meinen ganzen Quelltexten der Bücher, Videotraining bei LinkedIn Learning, Schulungen und Kursen oft ebenfalls die ganzen *.dll, *.exe, *.obj und andere binäre Dateien sowie auch PlugIns und ähnliche Projektergänzungen und sogar alte Software, die ich in den Maßnahmen gebraucht hatte, mit gespeichert habe. Oder aufgefallen war mir das wohl schon – ich habe mich einfach nicht drum gekümmert.
Denn sinnvoll ist es schon, zu jeder Maßnahme (gleich ob Schulung, Buch, Videotraining, Kurs oder Projekt) die wirklich relevanten Dinge zu behalten. Ich speichere deshalb nach jeder Maßnahme auch die Projektdateien hinsichtlich der Programmierung. Die Einsendeaufgaben, die ich etwa bei der ILS erhalte, behalte ich ebenso auf Dauer. Und ich lege davon dann im Rahmen meiner üblichen Datensicherung auch zig Kopien an. Aber da ich vor dem Speichern als auch den Datensicherungen auf meinen vielen redundanten Medien in Bodenheim, Eppstein, der Cloud und im Banksafe eben fast nie aufgeräumt hatte, sind auf den Datenträgern mittlerweile so viele GByte an unnützem und zudem mehrfach redundantem Zeug entstanden, dass einfach mal ein großes Reinemachen notwendig war.
Diese unglaublich vielen Dateien machen ja auch eine Datensicherung wahnsinnig zeitintensiv, da das ganze überflüssige Zeug eine Synchronisation zeitlich förmlich explodieren lässt. Das habe ich gerade wieder bemerkt als ich meine externe Festplatte, die ich in Eppstein deponiert habe und so etwa einmal im Monat synchronisiere, auf Stand bringen wollte. Mein Datensicherungsprogramm SyncToy ist nur mit Fehlern durchgelaufen und die folgende direkte Kopieraktion von meinem NAS auf die Festplatte hat etwa 18 Stunden gebraucht.
Das hat mir gelangt und ich beseitige gerade über alle Datenträger hinweg die unnötigen binären Dateien. Im Wesentlichen befinden die sich bei Visual Studio-Projekten in den Verzeichnissen Debug und Release und bei Eclipse & Co ist das .metadata-Verzeichnis oft auch riesig und kann jederzeit bei Bedarf reproduziert werden.
Also weg mit dem Zeug und noch den Installationsdateien einiger alter Software und ähnlichen Dingen. Ich denke, dass ich so pro Rechner bzw. Datensicherungsmedium vielleicht 10 – 40 GByte Platz gewinne. Kann auch deutlich mehr sein, aber die vielleicht 200 – 400 GByte, die ich damit over-all frei mache, sind gar nicht der Punkt.
Die Sache wird übersichtlicher und eben bei der Synchronisation während Datensicherungen deutlich schneller und auch stabiler. Der Upload auf Cloud-Datenspeicher geht natürlich ebenso viel schneller (gerade der) und eine komprimierte Datensicherung (auch Anlegen und Entpacken eines Archivs geht natürlich viel fixer) sollte vielleicht sogar wieder auf einen USB-Stick für den Banksafe passen.
Nur jetzt muss erstmal der bereinigte Stand synchronisiert werden und da greift nochmal das zeitlich aufwändige Problem, dass so viel Zeug an den verschiedensten Stellen auf NAS & Co gelöscht werden muss. Aber wenn die große Putzaktion durch ist, sollte ich auf Dauer viel Zeit gewinnen.
Variablen tauschen – Tutorial zu Python
Schon seltsamer Zufall. Ich halte gerade eine Remote-Schulung zu C# und habe eben als Abschluss-Übung ein Beispiel durchgespielt, in dem die Teilnehmer mit einer Methode den Inhalt von zwei Variablen vertauschen sollen. Eben schaue ich, was der heute veröffentlichte Entwickler-Tipp zu Python für ein Thema hat. Tja – Variablen tauschen mit Python. Ich wusste es wirklich nicht, denn die Reihenfolge der Tipps und deren Veröffentlichung wird bei LinkedIn Learning entschieden. Bei Python geht so ein Vertauschen allerdings extrem elegant und kompakt. Weit weniger aufwändig als etwa in C#.
TV als preiswerter Monitor
Die Preise für Monitoren sind ja – wie auch bei anderer PC-Hardware – im Moment jenseits von Gut und Böse. Ich hatte jedoch eine Weile in meinem Haus in Eppstein die Einliegerwohnung neben dem Büro als Monteurswohnung angeboten und dafür einen kleinen und damals äußerst billigen Fernseher angeschafft. Wenn ich bedenke, dass ich für dieses Gerät kaum mehr als 100 EUR bezahlt hatte und sogar ein Receiver verbaut ist, habe ich keine Ahnung, wie sich so etwas rechnen kann. Klar – war ein Sonderangebot damals, aber der Leistungsumfang ist dennoch Wahnsinn. Nachdem ich die Wohnung mittlerweile aber dauerhaft vermietet habe, war das TV-Gerät überzählig.
An der Dockingstation von meinem alten Terra-Notebook hat dafür ein Monitor gefehlt. Den habe ich mittlerweile als 4. Bildschirm an meine Workstation angeschlossen. Also aus der Not eine Tugend gemacht und bevor unnütz Geld für eine neuen Monitor ausgegeben, habe ich mal ausprobiert, wie sich das kleine TV-Gerät als Zweitmonitor macht. Das Teilchen ist wie gesagt für den Preis absolut gut ausgestattet und hat auch ein durchaus gutes Bild.
Auch – und darum geht es ja mir gerade – als Zweitmonitor taugt das Gerät. Ich bekomme bei Anschluss an die Dockingstation die gleiche Auflösung wie auf dem alten Terra-Notebook (die ist zugegeben auch verdammt niedrig mit 1366 x 768, aber das genügt). Funktioniert wunderbar unter Linux, aber sogar auch unter Windows. Wenn man die aktuellen Preise von Monitoren betrachtet, ist also ein einfaches TV-Gerät eine mehr als preiswerte Alternative, um – zumindest bei älteren PCs bzw. Notebooks – einen Zweitmonitor zur Verfügung zu haben. Wobei ich mit dem Gerät auch nicht dauerhaft arbeite, denn ob das dann gut für die Augen ist, bin ich wirklich nicht sicher.
Firefox-GAU
Zwischen der Probe meiner Band am Mittwoch-Abend und dem heutigen Tag habe ich meinem Büro in Eppstein übernachtet, weil ich heute von da aus eine kleine Wintertour mit dem eBike durch die Berge vom Vorder-Taunus Richtung Feldberg machen wollte.
Nach dem Aufstehen war es aber noch so neblig, dass ich erst einmal mit den Korrekturen für die ILS angefangen und auch erst einmal die Webcams im Taunus gechecked habe, ob denn in der Höhe bereits die Sonne rausgekommen ist. Ich habe für so Zwecke ja mein CHUWI UBook Tablet in Eppstein deponiert. Nur wurden nach den ersten Korrekturen bzw. Minuten im Internet plötzlich keine Webseiten mehr geladen. Ich habe das Problem auf meinen Internet-Anschluss in Eppstein geschoben, denn der ist manchmal instabil und die letzten Wochen hatte die Telekom da massive Netzstörungen. Bei meinem Anschluss hilft oft auch mal der Neustart des Routers.
Nachdem ich das gemacht hatte, kamen aber immer noch keine Webseiten in den Browser. Seltsamer Weise ging aber E-Mail. Ich habe das Problem dann erst einmal auf das doch recht billige CHUWI UBook Tablet geschoben, aber als ich mehr oder weniger zufällig die Webseiten mit Opera aufgerufen hatte, waren die sofort da. Und in Firefox ging weiter gar nichts.
Eben habe ich die Meldung dann in den Computer-Onlinemagazinen gelesen:
Firefox außer Gefecht
Zahlreiche Firefox-Nutzer hatten seit Donnerstagmorgen etwa 9:00 Uhr (genau die Zeit, wo die Probleme bei mir los gingen) Startschwierigkeiten mit dem Programm selbst als auch beim Schließen von Firefox und eben dem Aufrufen von Websites. Über mehrere Versionen von Firefox und auch mehrere Plattformen hinweg.
Ich habe in der Zeit halt mit Opera weitergearbeitet und bin dann um 10:15 Uhr auf die geplante Tour gegangen. Bei Firefox hat sich das Problem wohl gegen 13:00 Uhr beruhigt und auch bei mir läuft – allerdings im Büro in Bodenheim – der Browser wieder. Angeblich war ein Load-Balancer oder ein Cloud-Anbieter, mit dem sich Firefox mit Mozilla-Servern verbindet, in Verbindung mit einem bekannten HTTP3-Bug nach einem Update die Ursache für die massiven Probleme.
Objekte mit der dir()-Methode analysieren
Das Jahr 2022 ist angelaufen und in der Spur. Mittwoch ist damit der Tag für meinen regelmäßigen Entwickler-Tipp zu Python bei LinkedIn Learning. Dabei geht es um die Aussage, dass alles in Python ein Objekt ist. Dabei ist ein Objekt von der internen Struktur im Grunde immer ein Key-Value-System und mit der dir-Funktion, der man als Parameter ein Objekt übergibt, kann diese analysieren.
Missbrauch der Luca-App
Um mich gleich richtig zu positionieren – ich bin geimpft und sogar geboostert und (leider) führt m.E. kein Weg daran vorbei, dass sich alle impfen lassen.
Aber der Missbrauch der Daten, die zur Kontaktverfolgung von Corona-Infektionen von einer App wie Luca oder was auch immer gesammelt werden, geht gar nicht. Klar ist die Klärung eines Tötungsdelikts, wie es in dem konkreten Missbrauchsfall durch die Polizei der Hintergrund war, ein im Grunde legitimer Grund. Aber zum Einen werden jetzt alle Verschwörungstheoretiker Wasser auf ihre Mühlen und ein verdammt schweres Argument geliefert bekommen, warum sie die Corona-Maßnahmen ablehnen. Zum Anderen gelten Gesetze auch für Behörden. Klar – die Verantwortlichen bei der Polizei, welche die Daten in der Luca-App missbraucht haben, werden jetzt aufgrund des politischen Drucks einen Kopf kürzer gemacht.
Das sind aber Bauernopfer. Das eigentliche Problem ist unter der Oberfläche und besteht weiter – wenn Daten von Personen erfasst wurden, gibt es Begehrlichkeiten. Was auch immer dabei versprochen wird – die zusagte Sicherheit bzw. Vertraulichkeit wird niemals eingehalten. Das sollte jedem klar sein, der dieser aktuellen Aushebelung des Datenschutzes aufgrund der Corona-Lage unkritisch zustimmt. So gesehen ist dieser aktuelle Fall aus Mainz einfach nur der Beweis. Man sollte sich auch fragen, wie viele Fälle dieser Art nicht bekannt wurden bzw. werden?