Glasfaser-Drama

Ab heute habe ich in Bodenheim Glasfaser! Angeblich. Von wegen – der Anbieter Herznet macht auf „Toter Mann“. Nix is.

Kann man verstehen. Sie hatten ja nur knapp über 1 Jahr Zeit ;-(.

Oh man, was ein Schrott. Vielleicht ist das aber auch typisch für das digitale Hinterland Deutschland. Vollkommen unfähig in Sachen Digitalisierung. Ich habe das Gefühl, das läuft wie beim BER – eine never-ending-Chaosstorry.

Zwar wurde vor gut 3 – 4 Monaten die Glasfaserleitung ins Haus gelegt, Und es war auch schon einmal ein Techniker da, um diese anzuschliessen. Nur hatte der Provider vergessen, einen Router zu liefern. Der Techniker ist wieder abgezogen mit der Zusage, man würde sich „kurzfristig“ (!) darum kümmern.

Nichts ist bisher passiert und der Freischaltungstermin ist jetzt verstrichen. Wir haben sogar immer noch keinen expliziten Vertrag oder so etwas, sondern nur den Vorvertrag. Damit auch keine Vertragsnummer, mit denen uns telefonisch Auskunft gegeben werden kann. Auch wurde die Zusage aus dem Vorvertag nicht eingehalten, dass mein bisheriger Provider-Vertrag von dem neuen Provider gekündigt wird. Die Kündigungsfrist beträgt 1 Jahr und offensichtlich bin ich immer noch bei meinem alten Provider mit langsamen DSL. Was übrigens auf meine letzte Beschwerde bei Herznet damit begründet wurde, wie würden sonst ab heute vermutlich ganz ohne Internet dastehen.

Das ist alles nur noch ganz grosser Pfusch und Schrott, was die da abliefern 🙁

Der Apfel fällt nicht weit usw, usw …

Obwohl ich mich als einen eher ruhigen und introvertierten Typen sehe, verdiene ich dessen ungeachtet überwiegend mit „Reden vor Leuten“ im weitesten Sinn mein Geld. Wenn es fachlich wird und ich es bezahlt bekomme, funktioniert das anscheinend ganz gut. Immerhin habe ich einige Jahrzehnte Schulungen, Vorlesungen und Vorträge damit ja schon Erfahrung sowie nicht zuletzt mit meinen Kursen bei LiL samt der neuen Serie mit wöchentlichen Tipps & Tricks zu Python bei LinkedIn Learning. Und anscheinend gilt der alte Spruch vom Apfel, der nicht weit …

Denn meine Zwillinge haben definitiv die Fähigkeiten zum Reden vor Publikum geerbt und anscheinend noch erheblich ausgebaut. Auch wenn sie rein fachlich nichts mit IT machen – sie senden seit ein paar Tagen einen Podcast, was dann doch meine Welt ganz eindeutig wieder berührt. Wobei – für so ein „neu-modisches“ Podcast-Zeug bin ich wohl zu alt, denn die eigentliche Podcast-Schiene ist irgendwie an mir vorbei gelaufen (in der ersten Version von dem Beitrag hatte ich das sogar noch Broadcast genannt – das kenne ich wenigstens) und bisher habe ich noch nicht einen Podcast wirklich angehört. Aber streng-genommen sind meine Kurse bei LiL im Kern auch sowas wie Podcasts. Nur halt aufbereitet und „gezähmt“ sowie mit Video – wenn ich das richtig verstehe. Also wie ein Film in Relation zu einer Live-Radiosendung oder so.
Und auch wenn die Buben jetzt ganz neu mit ihrem Podcast begonnen haben (der Trailer und die erste Folge  sind draußen) – diese wohl vererbte Tendenz zum Vermitteln von Content ist schon seit Jahren zu bemerken. Von einem Youtube-Kanal ging es als Nachwuchs-Moderatoren zu einem kleinen privaten Radiosender (Radio Klinikfunk) bis hin zu einer kleinen Episode beim Jugendsender von FFH, um dann aktuell als Moderatoren bei Sportdeutschland TV und dem Kommentieren der Heimspiele von Mainz 05 in der Handball-Bundesliga der Frauen zu landen. Und genau daran knüpft nun der Podcast der Sohnemännchen an – als „Ableger“ des Podcasts der Fußballer von Mainz 05 geht es um die Handball-Bundesliga der Frauen im Allgemeinen und die Mainzer Dynamites im Besonderen.

CronTab, Schedule und Python

Nachdem ich vor ein paar Wochen meinen neuen V-Server auch gleich auf eine neue Version von Ubuntu umgestellt hatte, musste ich sämtliche Webseiten wieder neu einspielen. Bis auf meine Webseite zum Gleitschirmfliegen, in der ich eine Webcam und Wetterdaten von einem Flughang bereitstelle, konnte ich auch alle Seiten problemlos wieder einspielen. Nur diese Seite (ein Joomla!-System) hatte herumgezickt und deshalb habe ich sie einfach neu aufgesetzt (jedoch mit WordPress). Aber ein Feature habe ich da auf die Schnelle nicht hinbekommen – das Kopieren und Sichern des aktuellen Bildes der Webcam, das minütlich mit FTP auf meinen V-Server geladen wird.

Es ist aber ganz hilfreich, wenn man über eine gewisse Zeitspanne verfolgen kann, wie etwa schon vor Ort befindliche Gleitschirme oder Windfahnen sich verhalten, um zu entscheiden, ob sich ein Tripp an den Hang lohnt. Ich wurde sogar explizit gebeten, dieses Feature wieder bereitzustellen.

Die originalen PHP-Skripte hatte ich noch alle, aber das Zeug war so zusammengefrickelt (wie so oft), dass ich erst einmal meine eigenen Codes nicht mehr verstanden habe.

Aber da ich parallel im Moment Themen sammle, die ich irgendwann in meinen wöchentlichen Tipps & Tricks zu Python bei LinkedIn Learning (LiL) verwenden kann, kam ich auf die Idee, das Kopieren doch mit Python statt mit PHP zu machen sowie auch das Schedulen vielleicht auch gleich mit Python. Es gibt ja dazu das sched-Modul und/oder die klassischen Module shutil, datatime und time. Dazu gibt es noch in der Community das zusätzliche Module schedule. Also habe ich mich damit eine Weile beschäftigt. Allerdings kam ich darüber über kurz oder lang auch auf die eigentlichen Crontabs von Linux/Unix. Und wenn man die genauer ansieht, ist es fast einfacher, die direkt zu schreiben, als sie von einem Framework wie dem schedule-Modul generieren zu lassen.

Auf der anderen Seite musste ich zudem noch meinen V-Server weiter konfigurieren. Dabei habe ich auf dem Weg nano nachinstalliert, denn ich greife ja per SSH auf den V-Server zu und mit Erschrecken festgestellt, dass da bisher mir nur vim zur Verfügung stand. Also so rudimentär will ich doch nicht mehr arbeiten.

In der Folge habe ich meine neu erstellen Python-Skripte zum Kopieren der Dateien und dem täglichen Löschen des Verzeichnisses (mein Server soll ja nicht volllaufen) hochgeladen und in die CronTab direkt eingebunden. Das geht ganz einfach und logisch, wenn man sich von der Syntax nicht abschrecken lässt.

  • crontab -e öffnet die CronTab-Datei.
  • Wenn man mit nano arbeitet, kann man mit Strg+o die Datei speichern und mit Strg+x den Editor verlassen. Mehr braucht man da eigentlich nicht zu wissen.
  • Mit crontab -l kann man sich alle Cronjobs anzeigen lassen und
  • mit crontab -r bei Bedarf alle Cronjobs löschen (was aber brutal ist, weil direkt alles weg ist).

Die eigentlichen Einträge in der CronTab sehen etwa so aus:

# m h dom mon dow command
*/2 8-20 * * * python3 [pfad]/copierereichenbach.py >> /var/www/vhosts/rjs.de/rb.autoren-net.de/thumb/log.txt
* 5,23 * * * python3 [pfad]/loeschereichenbach.py

Das kopiert dann alle 2 Minuten in der Zeit von 8 bis 20 Uhr das aktuelle Bild der Webcam und um 5 und 23 Uhr wird das Verzeichnis gelöscht.

In Python selbst arbeite ich mit shutil.rmtree() und os.mkdir() beim Löschen des Verzeichnisses. Einfach alles weghauen und dann das Verzeichnis neu erstellen.

Beim Kopieren nehme ich shutil.copy2() und hänge an den Standarddateinamen einfach einen Timestamp an der von datetime.datetime.now().timestamp() geliefert wird.

Das Anzeigen der Bilddateien mache ich natürlich weiter mit PHP – da konnte ich eines meiner altern Skripts nach einer kleinen Anpassung wieder verwenden.

Titanic vs Google Zensur

Google hat sich wieder einmal das Recht herausgenommen zu entscheiden, was Satire darf und was nicht. In der guten (oder üblen) Tradition anderer US-Zensoren wie Apple oder Facebook wurde eine kleingeistige US-Moral als Leitbild der Welt verordnet. Die App von Titanic im Playstore wurde als unseriös gebrandmarkt. Entweder von einem dumpfen Algorithmus oder – noch schlimmer – von dumpfen Zensoren, denen Kunst und Meinungsfreiheit suspekt sind.

Zugegeben – Titanic geht meist bis an die Grenze des Geschmacks und oft darüber hinaus. Ich kann auch persönlich oft damit nichts mehr anfangen. Aber das ist eben die Grundfreiheit unserer Gesellschaft. Die Freiheit der Kunst wird durch unserer Rechtssystem geschützt.

Eigentlich dachte ich, dass die USA auf diesen freiheitlichen Weg zurückkommen, nachdem „ER“ endlich zum Golfen weggeschickt wurde. Aber es zeigt sich ganz deutlich, dass man US-Firmen einfach nie trauen darf. Die kümmern sich weder um unsere Rechtssysteme noch Freiheit der Kunst oder so etwas.

Wenn ich das richtig mitbekommen habe, hat aber Titanic nach der Zensur durch Google das Heft des Handelns in die Hand genommen und seine App aus dem Zensur-Store selbst zurückgezogen.

Skype for Business

Gerade habe ich meine Python-Onlineschulung beendet. Dabei habe ich das erste Mal Skype for Business verwendet (Kundenwunsch). Bisher habe ich immer nur mit Teams geschult bzw. privat Zoom und JamKazam eingesetzt. Aber Skype for Business hat sich wider Erwarten ganz gut geschlagen. Gelegentlich ist meine Bildschirmpräsentation zusammengebrochen und in der letzten Stunde des letzten Tags bin ich 1x aus der Session geflogen – aber sonst ist das System stabil gelaufen.

Tipp Nummer 2 der wöchentlichen Python-Entwicklertipps bei LinkedIn Learning

Letzte Woche ist meine Serie mit wöchentlichen Tipps & Tricks zu Python bei LinkedIn Learning (LiL) gestartet, in denen ich ergänzend zu meinen „normalen“ Kursen bei LiL über einige Monate jede Woche neu einzelne Videos mit Python-Entwicklertipps veröffentliche.

Der heute veröffentlichte Beitrag zeigt, wie man in Python über ein Objekt iterieren kann. Die Sache passt ganz gut zu dem heutigen Tag, denn genau das habe ich so ziemlich als Letztes in meiner aktuellen Python-Schulung, die ich über die Woche als Remoteveranstaltung halte, vorgeführt.

Amazon-Bewertungen – Fake-News

Gerade habe ich in meinem Büro in der Staufenstrasse ein smartes Thermostat montiert. Aber eigentlich wollte ich es im Büro in Bodenheim verwenden. Nur da hat der Adapter nicht gepasst und deshalb wollte ich das Thermostat an Amazon zurücksenden. Mit solchen Rücksendungen habe ich ganz wenig Erfahrung, weil ich normalerweise gezielt bestelle und nur ganz, ganz selten ewas zurückschicke. Aber grundsätzlich sollte das angeblich einfach gehen.

In dem Fall wurde als Rücksendeoption jedoch ausschließlich die Abgabe in einer UPS-Annahmestelle angeboten. So etwas gibt es bei mir in der Nähe nicht und die einzige theoretische Möglichkeit hat wegen Corona geschlossen. Auf mehrfache Anfrage von mir über Amazon wegen der fehlenden Möglichkeiten zu einer Rücksendung wurde nicht reagiert.

Das habe ich als Verweigerung der möglichen Rücksendung gesehen und eine schlechte Bewertung dahingehend auf Amazon gestellt. Amazon hat diese abgelehnt und nicht veröffentlicht. Letztendlich ist mir das egal und ich bekomme das Teil wie gesagt in Eppstein unter. Aber man sieht, was man von Amazon-Bewertungen halten darf. Nichts. Nur gute Bewertungen werden veröffentlicht, schlechte nur in geringer Anzahl als Alibi. Die meisten werden wohl unterdrückt.

Python-Entwicklertipps: Jede Woche neu bei LinkedIn Learning

Heute starten meine wöchentlichen Tipps & Tricks zu Python bei LinkedIn Learning (LiL). Ergänzend zu meinen „normalen“ Kursen bei LiL werden ab sofort über einige Monate jede Woche neu einzelne Videos mit Python-Entwicklertipps veröffentlicht.

Der heute als „Starttipp“ veröffentlichte Beitrag zeigt, wie man in Python eine angepasste To-String-Funktionalität bereitstellen kann.

Server-Umzug abgeschlossen

Der Umzug meines V-Servers sollte jetzt fertig sein. Der E-Mail-Server läuft und ist hinreichend konfiguriert. Der Spamschutz scheint besser wie vorher zu sein und auch die Kommunikation mit einer E-Mail-Adresse, die bisher nie durchging, hat eben funktioniert.

Soweit ich das sehen kann, sind jetzt auch alle Webseiten von mir wiederhergestellt und gleich mal auf den neusten Stand aktualisiert. Die unwichtigste Seite hat – natürlich ;-(  – die meiste Arbeit gemacht. Aber ich habe zumindest wieder etwas zu der Bedeutung von Eigentum und Gruppenzugehörigkeit unter Linux (und auch WordPress) gelernt und diverse Linux-Shell-Befehle geübt. Bisher war ich wirklich so naiv und dachte, dass Dateirechte die entscheidenden Stellen sind und man spätestens mit 755 auf der sicheren Seite hinsichtlich der Ausführung, dem Zugriff und ggfl. Schreiben in entsprechende Verzeichnisse auf dem Server sein sollte, wenn man Webseiten bereitstellt. Ich habe wegen diverser Probleme eine gefühlte Ewigkeit erfolglos mit den Schreibrechten herum experimentiert (sowohl über FTP als auch direkt per SSH mit chmod bis hin zu 777), bis mir aufgefallen war, dass bei den Webseiten ohne Probleme ganz andere Eigentumsrechte und Gruppenzugehörigkeiten da waren als bei denen mit Problemen. Da lag der Hase im Pfeffer und root ist nicht immer root (zumindest nicht im universellen Sinn – der root des SSH ist nicht immer der root der Webserver oder gar irgendeiner Verwaltungssoftware wie Plesk). Admin fuddeln vielleicht da rum – unglaublich.

Mit chown -R für den Eigentümer und chown : für die Gruppenzugehörigkeit haben sich dann aber (fast) alle Probleme in Luft aufgelöst. Nur die Zugriffs- bzw. Rechteprobleme bei der unwichtigsten Seite (einem Joomla!-System) habe ich einfach nicht in Griff bekommen. Die Seite habe ich dann kurzentschlossen komplett neu aufgesetzt (jetzt aber als WordPress-System) und dann einfach die wichtigsten Inhalte aus meiner lokalen Sicherung eingefügt.

Und da ich gerade dabei war, habe ich auf dem neuen V-CordovaServer Docker angeschaltet und gleich mit meinem Cordova-Skript für die kommende Vorlesung an der TH Bingen getestet. Das ging wie Butter durch ein heißes Messer – oder auch umgekehrt. Alle notwendigen Programme und Bibliotheken wurden problemlos (und fix) installiert und der Container ist sofort gelaufen. Das konkrete Erstellen der Cordova-App für eine Android-Plattform ging ebenso perfekt. Ich habe mich dann noch von einem anderen Rechner per SSH auf dem Server eingeloggt und aus dem Terminal die generierte App aus dem Docker-Container auf das Host-System kopiert. Null Problemo. Unter Linux läuft so Zeug die Docker einfach perfekt.

Ich komme immer mehr auf den Geschmack, meine Kenntnisse um Docker etwas zu intensivieren und zudem mehr mit dem Server zu machen als bisher.

V-Server-Upgrade des Betriebssystems mehr oder weniger geglückt

Ich bin wegen des Upgrades meines V-Servers seit über einem Jahr wie die Katze um den heißen Brei geschlichen. Es kann einfach zu viel schief gehen. Aber nachdem ich die Hardware durch den neuen Vertrag massiv aufgerüstet habe, wären ein Verweilen auf dem alten Ubuntu 12 LTS sowohl Blödsinn als auch langsam ein Sicherheitsrisiko gewesen. Nachdem ich gestern aus meiner Sicht alle relevanten Daten meiner bisherigen Installation gesichert hatte, habe ich den Sprung gewagt und über Nacht die Aktualisierung auf Ubuntu 18 LTS angestoßen. Die Nacht habe ich aber deshalb richtig schlecht geschlafen. Doch heute morgen war der Server auf dem neuen Stand – aber natürlich ohne alle meine bisherigen Daten und Einstellungen. Weder waren Webseiten da noch ging E-Mail. Was aber klar war. Und jetzt musste es sich zeigen, ob ich das Upgrade wirklich sorgfältig vorbereitet hatte und meine rudimentären Admin-Kenntnisse für das Wiederherstellen der Webseiten und der restlichen Dienste genügen.

Das Fehlen der E-Mail war erst einmal das größte Problem und ich habe versucht, meine gesicherten Einstellungen einfach zurückzuspielen, um möglichst schnell wieder per E-Mail erreichbar zu sein. Das ging gründlich schief und auch der 1. Versuch, meine gesicherten Webseiten wiederherzustellen, ebenso. 🙁

Also habe ich den Server gleich noch einmal vollkommen plattgemacht und ein 2. Mal neu installiert.

Wenn man es besonders eilig hat, sollte man langsamer gehen.

In dem zweiten Versuch habe ich nach der Neuinstallation erst meine Haupt-Domain rjs.de vollkommen neu und leer aufgesetzt und dann zuerst den E-Mail-Server neu konfiguriert und auch mein E-Mail-Konto komplett neu angelegt – natürlich mit den bisherigen Daten. Nach einigem Hin- und Her mit SMTP und Zertifikaten etc. ging das aber dann durch. Das ist schon mal das Wichtigste gewesen.

An die Wiederherstellung der Webseiten bin ich dann auch indirekt gegangen.

  1. Anlegen einer Datenbank mit den alten Zugangsdaten, die für die Webseite bisher eingerichtet waren.
  2. Einspielen des gesicherten Dumps.
  3. Kopieren alles gesicherten Dateien aus dem Sicherungsverzeichnis auf dem Server in das neu angelegte Verzeichnis

Das hat für meine zentrale Webseite und den Blog (offensichtlich) schon mal funktioniert und auf dem Weg werde ich wohl auch noch die anderen Seiten über den Tag reproduzieren können.

Aber es gibt diverse Kleinigkeiten wie FTP-Zugänge, Schreibrechte für die automatische Aktualisierung durch das CMS, Zertifikate (ich nutze Let’s Encrypt, aber da gibt es wohl auch im Vertrag eine Möglichkeit, ein anderes Zertifikat zu verwenden), Aktualisierungen etc., die noch einige Arbeit machen werden. Und ich will gar nicht wissen, was ich alles übersehen habe und/oder doch verloren gegangen ist.

Aber die wichtigsten Sachen sind wohl gutgegangen :-).

Gibt es Zufall? Oder leben wir alle in der Matrix?

Cordova

Ich bin nicht so ganz sicher, ob ich weiter an den Zufall glauben soll. Zu viele fachliche „Synergie“-Effekte und ineinander greifende Ereignisse in Verbindung mit Technologien, die ich entweder lange nicht mehr gemacht habe oder erst in Zukunft angehen will, treten im Moment auf. Wenn man mystisch veranlagt ist, kann man misstrauisch werden ;-), denn das ist alles zeitlich zu nahe beieinander und zu gehäuft.

  • Ich möchte die Aktualisierung von meinem V-Server schon seit über einem Jahr angehen. Im Moment habe ich Zeit und gestern kam das Angebot von meinem Provider für ein geeignetes Upgrade. Just-in-Time.
  • Seit einiger Zeit ist bei LinkedIn Learning Codebase ein Thema und mein Ansprechpartner in Graz kommt immer wieder darauf zu sprechen. Codebase habe ich bisher weitgehend unbeachtet gelassen, aber ich habe es in die Task-Pipeline gesetzt. Eben bekam ich eine Mail von einem ehemaligen Schulungsteilnehmer, ob ich ihm bei Codebase was helfen könne.
  • Ich lektoriere im Moment für LinkedIn Learning aus dem Englischen übersetzte Quiz-Fragen zu verschiedenen Programmierthemen. Gerade habe ich das Thema C abgearbeitet und dabei bemerkt, was ich mittlerweile zu C gar nicht mehr so richtig auf dem Schirm hatte. Denn vorher hatte ich mich seit Jahren nicht mehr mit purem ANSI-C beschäftigt, sondern nur noch mit darauf aufbauenden Sprachen wie C#, Java, JavaScript, Python, PHP, Perl etc. Gerade bekam ich die Frage über LinkedIn, ob ich bei einem Problem zu C weiterhelfen könne (in Verbindung mit genanntem Codebase).
  • Ich habe ja für das kommende Sommersemester an der TH Bingen einen Lehrauftrag zu Cordova angenommen. Und da muss ich mich seit langer Zeit mal wieder mit der Erstellung von Android-Apps beschäftigen. Gestern wurde ich gefragt, ob ich nicht auch die Quiz-Fragen zu Android lektorieren möchte?
  • Über die Vorbereitung zu Cordova kam ich auf Docker, um mir einfach einen passenden Container für die Entwicklungsumgebung zusammenzubauen. Mein neuer V-Server ist explizit „Docker-ready“, was mir beim Bestellen gar nicht aufgefallen war.
  • Die Fragen zu Codebase und C hatten mit Problemen bei der Konfiguration und Installation von Programmen und Tools zu tun. Ich habe Docker und den Docker Hub empfohlen. Da gibt es bestimmt passende Lösungen..

Wenn ich noch ein bisschen nachdenke, werde ich sicher noch weitere Verschränkungen der Ereignisse finden, denke ich. Schon mystisch, die Sache 😉

 

Leider kein automatisches Betriebssystem-Update bei dem neuen V-Server

Der Umzug auf den neuen V-Server ging fix und sowohl die Beschleunigung beim Laden der Webseiten ist deutlich zu merken. Auch der zusätzliche Platz steht zur Verfügung. Aber leider wurde einfach nur mein bisheriges System gespiegelt. Was bedeutet, dass ich weiter Ubuntu 12 LTS als Betriebssystem habe und nicht – wie es in der Beschreibung des Angebots steht – Ubuntu 18 LTS. Ärgerlich. Zwar nachvollziehbar wegen Zugriffsrechten und Passworten etc. Aber dennoch hätte der Provider auf dem neuen System m.E. die neue Version so vorinstallieren können, dass das Upgrade ohne großen Aufwand geht. Zwar kann man aus der Verwaltungsoberfläche des Pakets mit einem Klick Ubuntu 18 installieren, aber dann wird der bisherige Server plattgemacht und alle Daten etc. sind weg.

Das automatische tägliche Backup könnte bei einem Neuaufsetzen des Server vielleicht helfen, aber mir ist nicht klar, ob das Backup auch dafür gedacht ist oder nur einen vorherigen Zustand wiederherstellen lässt.

Es bleibt mir also nichts übrig als alles zu sichern, was ich nach dem Neuaufsetzen wieder brauche (Webseiten, Datenbanken, E-Mails, etc.) und zu hoffen, dass ich nichts vergesse sowie nach dem Neuaufsetzen des Servers mit Ubuntu 18 auch wieder alles einspielen kann und alles wieder funktioniert.

Es gibt auf dem Server nun ein Verzeichnis, dass beim Neuaufsetzen angeblich nicht gelöscht wird und dahin habe ich per SSH-Zugriff alles kopiert, was m.E. gesichert gehört. Aber ich traue dem Braten nicht so richtig.

Zusätzlich will ich deshalb wenigstens meine Webseiten und die Datenbanken lokal sichern. Aber das dauert – zumindest bei meinem grottenschlechten Internet-Anschluss hier in Bodenheim. Die Webseiten übertrage ich jetzt schon seit gut 8 Stunden per FTP auf meinen lokalen Rechner und es fehlen immer noch über 6000 Dateien. Den Dump der MySQL-Datenbank habe ich noch gar nicht gemacht.

Zwar ist das alles nicht wirklich viel Arbeit, aber es dauert eben eine elende lange Zeit, die ggf. auch der Upload wieder dauern wird, wenn die Sicherung in dem Backup-Verzeichnis auf dem Server doch nicht funktioniert hat.

Server-Upgrade

Ich habe seit 2012 einen V-Server und in der Zeit da nicht wirklich viel aktualisiert. Das System ist mit den Eckdaten Ubuntu 12.04 LTS , 1 vCore, 2 GB RAM und 25 GB Speicherplatz mittlerweile ziemlich in die Jahre gekommen bzw. einfach im Vergleich zum Status quo zu schwach auf der Brust. Als eben die Werbemail von meinem Provider für ein Upgrade hereinkam, habe ich es kurzentschlossen angenommen. Das neue Paket kostet monatlich nur unwesentlich mehr und sollte mit 6 virtuellen Kernen, 16 GB RAM garantiert und einer SSD mit 300 GB signifikant besser den modernen Anforderungen genügen. Die Datenanbindung ist ebenso schneller als beim alten Paket und auch was die bereits installierte Software angeht, sollte es moderner sein oder aber ich gehe die Aktualisierung parallel zum Upgrade noch an.

Docker unter Windows

Nachdem Docker auf meinem alten Terra-Notebook mit Windows 10 Pro einwandfrei gestartet ist, wollte ich der Sache auf meiner Workstation doch mal auf den Grund gehen. Und siehe da – den Docker Desktop gerade nochmal installiert und die Sache läuft. Keine Ahnung, warum das jetzt durch gegangen ist. Aber umso besser und ich werde morgen mal dran gehen und statt vorgefertigter Images eigene Docker-Skripte zusammenbauen.

Das Cordova-Image, das ich bisher verwende, muss ich ja sowieso innerhalb des Docker-Containers noch anpassen und da macht es Sinn, dass gleich in das Build-Skript auszulagern.

Speed oder nicht?

Eben kam meine neue externe SSD an (eine Samsung MU-PA1T0B/EU Portable SSD T5 1 TB), die gerade in einer Preisaktion herunter gesetzt war und in allen mir verfügbaren Quellen sehr gute Bewertungen herum hat. Ich habe die Zeit von der Bestellung bis eben genutzt und einmal meine drei Standard-PC mit deren ganzen Datenträger mit CrystalDiskMark getestet. Schon interessant, welche Messwerte da rauskommen. Diese weichen zwar bei mehreren Messungen immer wieder etwas ab, aber der Grundrange ist immer ähnlich.

Das Programm testet sowohl sequenziell als auch per Random-Verfahren die Lese- und Schreibgeschwindigkeiten. Natürlich sind die sequenziellen Zugriff erheblich performanter und die Maximalwerte können damit auch nur da erreicht werden. Aber interessanter sind eigentlich die Random-Zugriffe, weil die m.E. in der Praxis häufiger vorkommen (gerade bei fragmentierten Datenträgern).

Bei meiner Workstation hat die SSD ganz gute Werte – die Hardware ist ja auch schon etwas betagt. Sowohl beim Lesen und Schreiben gibt es sequenziell zwischen 520 – 550 MB/s in der Spitze. Aber auch die HDD, die ich zusätzlich als Datengrab in der Workstation habe, kommt beim sequenziellen Lesen auf über 200 MB/s und beim Schreiben noch auf 150 MB/s. Das ist wirklich nicht schnell, aber mehr als erwartet. Nur beim Random-Zugriff bricht die HDD extrem gegenüber der SSD ein. Das ist teils brutal. Da geht es um Faktoren zwischen 10x und 100x(!) langsamer als bei der SSD.

Beim Terra-Notebook, wo ich vor Jahren die interne HDD durch eine 1-TB-SDD ausgetauscht habe, beschränkt wohl die alte Hardware die Performance. Aber mit etwa 250 MB/s im Lese- als auch Schreibzugriff sind die Werte durchaus noch brauchbar. Vor allen Dingen für so eine uralte Kiste, die ich fast schon ausgemustert hätte, wenn ich damals nicht günstig die Austausch-SSD geschossen hätte. Die Zugriffe auf externe HDD am Terra-Notebook sind hingegen erwartungsgemäss grauenvoll langsam. Aber die dienen sowieso nur noch zu Backups und die sind nicht zeitkritisch.

Aber eigentlich geht es mir ja um mein Matebook, bei dem die neue externe SSD meine massiven Speicherplatzprobleme beseitigen soll. Bei dessen interner SSD ist mir beim Test die extreme Ungleichheit der Zugriffszeiten zwischen Lese- und Schreibzugriff aufgefallen. Bei allen anderen Datenträgern und Rechner ist der Lesezugriff zwar auch immer schneller, aber der Unterschied ist nicht so gravierend. Beim Matebook kam ich bei einer Messung beim sequenziellen Lesezugriff in der Spitze auf bis zu wahrhaft rasante 2350 MB/s, während es beim Schreiben nur ca. 300 MB/s waren. Nur bei einem Random-Zugriff ist der Lesezugriff sogar etwas langsamer als der vergleichbare Schreibzugriff. Da ist bei der internen SSD die Gewichtung aber extrem auf Lese-Performance gelegt worden.

Der Zugriff auf meine bisherige externe USB-Festplatte am Matebook war erwartungsgemäss nicht berauschend von der Performance. Insbesondere beim Schreiben und vor allen Dingen bei Random-Zugriffen, aber deshalb soll da ja die neue SSD zum Einsatz kommen.

Die neue Samsung MU-PA1T0B/EU Portable habe ich nun ausführlich an verschiedenen USB-Anschlüssen und mit oder ohne Adapter dazwischen getestet.

Zuerst hatte ich den Eindruck als würde der Anschluss eine Rolle spielen, denn meine erste Messung ergab die am USB-C-Anschluss im sequentiellen Lesezugriff ca 560 MB/s und im Schreibzugriff 373 MB/s. Alle andere Messung ergaben dahingegen in beide Richtungen etwa 450 – 460 MB/s. Also ausbalanciert und eine weitere Messung an dem ersten Anschluss haben auch da diese Werte ergeben. Die erste Messung war irgendwie ein Ausreisser.

Auf der Festplatte war auch eine spezielle Software von Samsung vorhanden, die ich dann auch mal installiert habe. Die ist hauptsächlich zur Verschlüsselung der SSD und das brauche ich nicht. Aber ich wollte sehen, ob die Installation der Software die Performance ändert. War nicht der Fall und da bereits die Installation der Software mit einer unverschämten Frage genervt hat, ob ich in einem Land mit DSGVO wohne (was Samsung einen Sch… angeht und absolut nichts mit der Hardware zu tun hat), habe die Software gleich wieder deinstalliert. Dazu habe ich die Platte formatiert und dann nochmal mit verschiedenen Dateisystemen getestet, was aber nichts an der Performance geändert. Aber der schöne Nebeneffekt sollte sein, dass die Samsung-Trojaner damit auch plattgemacht wurden. Diese elenden Spionageprogramme diverser Hardwarehersteller sind einfach eine Unverschämtheit, die Nutzern immer wieder untergejubelt werden soll.

Performance von SSD und HDD testen

Ich bin mit meinem Huawei Matebook sehr zufrieden. Nur ist die Festplatte einfach zu klein. Ich bin dermaßen am Limit, dass ich immer wieder Sachen löschen muss, wenn ich neue Daten oder Programme da benötige. Gerade aktuell musste ich wegen Cordova noch zusätzlich Visual Studio 2017 installieren und damit ist meine Festplatte jetzt nahezu dicht. Ich habe schon diverse Sachen deinstalliert und nur noch eine Auswahl meiner Daten auf der SSD.

Nun hänge ich sowieso immer wieder eine externe Festplatte per USB an. Das taugt für Daten ganz gut (etwa Videos, die ich für LinkedIn Learning einspiele). Aber da die Festplatte nicht einmal USB-3 unterstützt, ist das Auslagern von Programmen auf die Festplatte nur suboptimal und auch bei großen Datenmengen dauert das Laden und Schreiben mir zu lange. Deshalb habe ich mir eine externe SSD mit USB-3/Thunderbold-Anschluss bestellt. Darauf sollte auch das Installieren von Programmen Sinn machen. Gerade portable Versionen werde ich darauf auslagern.

Um aber überhaupt einmal mitzubekommen, wie groß die Unterschiede beim Lesen und Schreiben sind, habe ich mir gerade das Programm CrystalDiskMark geladen. Aber im Grunde kann man die Performance von Datenträgern auch mit Windows-Bordmitteln testen.

In einer Admin-Console oder der Powershell kann die Tests ausführen:

winsat disk -seq -read -drive x
winsat disk -seq -write -drive x
winsat disk -ran -read -drive x
winsat disk -ran -write -drive x

Das werde ich mal auf meinen Rechnern durchspielen – sowohl auf die fest verbauten SSD und HDD als auch die externen Ressourcen an verschiedenen Anschlüssen.

Ghana als Vorbild für unsere Gesundheitsämter – keine Satire

Da die Nachverfolgung infizierter Corona-Kranker in den deutschen Gesundheitsämter extrem schlecht ist, gibt es mittlerweile interessante Länder als Vorbilder, wie man es richtig macht. Während in Deutschland in Behörden noch mit Fax und teils handschriftlicher (!!) Erfassung von Daten gearbeitet wird und – falls doch IT zum Einsatz kommt – jedes Bundesland bis teils nach ganz unten zu verschiedenen Behörden mit unterschiedlicher Software (teils selbstgestrickt) arbeitet, wurde im ZDF Ghana (ab 12:30 im Video der Mediathek) als Vorbild  vorgestellt. Zusammen mit anderen Ländern in Zentralafrika bekommen die Leute und Behörden da die Nachverfolgung von Epidemien seit vielen Jahren bereits perfekt in Griff.

Da sieht man, wie es IT-Technisch um Deutschland steht. Vor allen Dingen in Behörden :-(.

Noch abstruser – Ghana arbeitet zur Verfolgung Erkrankter mit einer Software aus Deutschland (was etwas optimistisch stimmt, dass zumindest die IT-Fachbrance auf internationalem Niveau ist). Aber die bekommen die deutschen Gesundsheitsämter nicht gebacken.