Vorteile und Graus der Virtualisierung – Docker & Co

Cordova

Da ich für das kommende Sommersemester an der Technischen Hochschule Bingen wieder einen Lehrauftrag zum Thema Cordova und plattformneutrale App-Entwicklung angenommen und gerade Zeit für die Vorbereitung habe, habe ich die letzten Tage in den aktuellen Stand von Cordova reingeschaut und meine alten Projekte und Matrialien zusammengetragen. Ich hatte dieses Thema eine ganze Weile schleifen lassen, da Python, Big Data, Web-Programmierung, Cobol, C# & „Was auch sonst immer“ die Arbeit in eine andere Richtung gelenkt hatten.

Die meisten Dinge, die ich die vergangenen Jahre zusammengestellt und programmiert habe, sind jedoch noch weitgehend auf Stand. Allerdings haben sich auch durchaus Sachen geändert. Daher bedarf die neue Vorlesung einiger Vorbereitung und eine Anpassung.

Zudem habe ich auch ganz einfach Lust, meine ganzen Apps zu aktualisieren. Parallel will ich aus einigen Apps  Python-Programme machen. Ohne konkrete Ziele, aber vielleicht kommen mir dabei ein paar neue Ideen und ich lerne natürlich was dazu – auch wenn das im Grunde aktuell ein reines Programmieren aufgrund von Zeit und Lust darstellt.

Anyway – bei Cordova gibt es ein paar Sachen, die mich schon stutzig gemacht und zu einigen Arbeiten im Hintergrund sowie grundsätzlichen Überlegungen genötigt haben. Das reine Installieren der neuen Version von Cordova mit npm geht wie gehabt und das Erstellen von Cordova-Projekten in dem Cordova-CLI auch. Ebenso das Hinzufügen der verschiedenen Plattformen und das Ausführen in dem Browser-Emulator ist unverändert. Die eigentlichen Quellcodes auf Basis von JavaScript & Co sowieso.

Aber wenn man etwa beim konkreten Kompilieren Android als Plattform für die Cordova-Apps haben will, wird das JDK 8 vorausgesetzt. Im Moment ist aber schon das JDK 15 aktuell und damit funktioniert es nicht. Zumindest bekomme ich es im Moment nicht hin, mit der derzeit aktuellen Java-Version Android-Apps zu erstellen. Ehrlich gesagt ist mir nicht einmal klar, ob das an Android (da soll ja Java auch sukzessive abgelöst werden) oder Cordova liegt. Wie angedeutet, habe ich die App-Entwicklung eine Weile aus den Augen verloren.

Und dann hatte ich das Android Studio bzw. das Android SDK als auch Xcode komplett von meinen Rechnern gelöscht, da ich eben das Entwickeln für Android und iOS die letzte Zeit nicht gebraucht hatte. Zumal ich mich sowieso auch dabei auf das Visual Studio committed hatte. Dabei kann man ja wunderbar auch Android- bzw. iOS-Apps erstellen.

Aber um die verschiedenen Möglichkeiten im Vorfeld der Vorlesung mal wieder auszutesten, werde ich auf meinem Mac vermutlich Xcode neu installieren (wenn ich die Sache mit meiner Apple-ID geklärt habe – die habe ich auslaufen lassen) und das Android Studio habe ich mittlerweile wieder neu installiert.

Aber irgendwie hat es bei meinem ersten naiven Versuch nicht funktioniert, damit Cordova-Projekte zu öffnen – oder besser –  zum Laufen zu bringen. Irgendwie mag ich das Android Studio aber auch nicht wirklich. Ich sollte der Sache zwar auf den Grund gehen, aber ich werde ja sowieso Visual Studio nehmen.

Wobei es da auch ein seltsames Problem gibt. In Visual Studio 2019 ist die Erweiterung für Cordova nicht mehr dabei und damit kann man weder Cordova-Projekte anlegen noch vorhandene Cordova-Projekte öffnen. Also musste ich die schon gelöschte Version 2017 von Visual Studio mit der Cordova-Erweiterung wieder auf meine Rechner aufspielen. Damit geht aber alles wunderbar und ich habe mittlerweile diverse Cordova-Apps erstellt, aus Visual Studio in verschiedenen Emulatoren sowie per USB-Debugging sogar direkt auf mehreren Geräten ausgeführt. Auch die Installation auf ein paar Testgeräten funktioniert problemlos. Seltsam sind die Begleiterscheinungen jedoch schon und ich bin nicht sicher, ob Cordova noch lange auf dem Markt bleibt. Was Cordova aber nicht als gute Basis für die kommende Vorlesung diskreditiert, um grundsätzlich die Erstellung von plattformneutralen Apps auf Basis von Webtechnologien zu lernen. Denn im Umfeld von Xamarin sind die gleichen Bedingungen/Probleme vorzufinden. Die Frage ist also wohl eher, ob Apps auf Basis von Webtechnologien sich auf Dauer etablieren oder nicht?

Wie dem auch sei – ich habe eigentlich keine Lust, das alte JDK 8 auf meine Rechner zu installieren und auch nicht die ganzen Emulatoren und SDKs von Android Studio auf Teufel komm raus zu konfigurieren. Entweder es geht „out-of-the-box“ wie bei Visual Studio 2017 oder die Sache kann mir im Grunde gestohlen bleiben. Es geht mir um die eigentlich Programmierung innerhalb des Cordova-Wrappers mit JavaScript und HTML/CSS und nicht um das Geraffel rundherum. Das hat mich schon immer an der App-Programmierung genervt.

Und da kam ich auf die Idee, eine andere Sache mal wieder aufzugreifen, die ich vor einigen Monaten angefangen, dann aber wegen anderer Dinge – wie so oft – beiseite gelegt habe: Docker.

Warum nicht einfach ein gut konfiguriertes Docker-Image für Cordova laden und dann ohne das ganze Installieren und Konfigurieren die Apps bauen? Das war meine Idee. Sollte doch einfach sein.

Und wie immer, wenn etwas auf den ersten Blick so einfach und logisch aussieht, steckt der Teufel im Detail. Genau genommen sind es in dem Fall sogar gleich mehrere Teufel gewesen.

Denn obwohl ich mich schon mit Docker beschäftigt und auch schon Images bzw. Container zum Laufen gebracht hatte, habe ich das Zeug zwischenzeitlich wieder von meinen Rechner gelöscht gehabt. Also musste ich Docker erst einmal „schnell“ installieren. Was (natürlich) wieder gar nicht schnell war und letztendlich sogar auf meinen Windows-Rechnern gescheitert ist. Weder unter Windows 10 Pro noch unter Windows 10 Home ist Docker bei mir richtig gelaufen. Natürlich kam ich bei den Problemen mit Windows 10 Pro sofort auf Hyper-V und diesen ganzen Virtualisierungs-Kram im Hintergrund von Windows, denn damit habe ich schon seit Jahren Ärger im Zusammenspiel mit VirtualBox und dem VMWare Player. Und auch wenn der VMWare Player ab der Version 16 wohl mit dem Hyper-V-Geraffel kann und auch Docker in Windows 10 Pro irgendwas mit Hyper-V macht und ich die Anleitungen für die ganzen Einstellungen umgesetzt habe, hat das Zeug irgendwelche Probleme mit den Rechten. Dazu kommt – bei Windows 10 Home gibt es ja kein Hyper-V und da muss man dann andere Sachen konfigurieren bzw. installieren. Alles doch ein elendes Gefuddel, was ich ja ausdrücklich vermeiden wollte und ich habe nach diversen Versuchen die Lust verloren.

Also auf meinen Linux-Rechner gewechselt, auf dem Docker erwartungsgemäß problemlos läuft. Zwischenzeitlich war ich auch in Eppstein und habe Docker mal auf meinem iMac getestet – auch keine Probleme. Also Docker sollte doch ein lohnenswerter Ansatz sein.

Aber dann bin ich auf das nächste blöde Problem gestoßen, erst einmal ein geeignetes Cordova-Image für Docker zu finden. Auf Git gibt es da was, aber der Git-Zugriff scheitert durch Rechteprobleme. Das Image scheint entweder gesperrt oder verschoben worden zu sein. Dann habe ich noch eine Anleitung gefunden, wie ich mir selbst ein Cordova-Image erstellen kann, aber das ist ja das Gegenteil von dem, was ich eigentlich wollte – keine Arbeit mit der blöden Konfiguration. Letztendlich habe ich nur ein Docker-Image gefunden, dass (angeblich) mit einem einfache Pull vom Docker Hub zu installieren wäre. Also so (vermutlich als root notwendig):

sudo docker pull beevelop/cordova:latest

Das Starten des Image soll dann einfach so funktionieren:

sudo docker run -it beevelop/cordova bash

Unter Windows habe ich wie gesagt Docker nicht stabil zum Laufen gebracht und das Image wurde angeblich nicht gefunden. Beim iMac muss ich es noch probieren, aber auf meinem Linux-Rechner ging der Pull einwandfrei. Bis 98% durch waren. Dann kam reproduzierbar immer wieder der Abbruch.

Mittlerweile war es Krieg – die Technik gegen mich. Oder umgekehrt. Und wenn etwas einfach nicht laufen will, werde ich zum Berserker. Auch wenn im Grunde alles Notwendige zur Vorlesung über Cordova mit Visual Studio bereit gestanden hat – ich lasse mich doch nicht von so einem Mist in die Knie zwingen.

Mein Mint Linux-Rechner ist noch in der Version 19 und das System wollte ich auch nicht verpfuschen. Von daher kam mir die Idee, meine Linux-VM (Mint Linux 20) unter Windows 10 zu verwenden. Nur konnte die plötzlich auf meiner Workstation mit VirtualBox nicht mehr gestartet werden und auch die Installation einer neuen Linux-VM ist gescheitert. Möglicherweise aufgrund der Hyper-V-Einstellungen und dem Kram, aber ich hatte einfach keinen Bock mehr auf das Gefummel. Also eine neue Version von VMWare-Player aufgespielt, dort eine Version von Mint-Linux 20 installiert und da ging dann der Pull des Docker-Images. Ohne Probleme. Wenn man „Von hinten durch das Auge“ wortwörtlich haben will, ist das diese Konstruktion – eine Virtualisierung in einer Virtualisierung.

Wer aber jetzt glaubt, die Sache wäre vorbei, täuscht sich. Denn in dem Cordova-Image war kein passendes JDK 8 dabei. Die Erstellung eines Cordova-Projekts ging damit problemlos, aber das geht ja auch in meiner normalen Cordova-CLI und damit bringt mich ein Docker-Image keinen Millimeter weiter.  Als ich eine Android-App kompilieren wollte, war war auch im Docker-Container Schicht im Schacht.

Aber es war mittlerweile schon lange persönlich und jetzt wollte ich es durchziehen. Also in dem Docker-Container das JDK 8 nachinstalliert. Das geht so:

apt-get update && apt-get install -y openjdk-8-jdk && apt-get install -y ant && apt-get install -y gradle && apt-get clean

Unter Umständen tut ein Update der Zertifikate noch gut (bei mir nicht notwendig gewesen):

apt-get update && apt-get install ca-certificates-java && apt-get clean && update-ca-certificates -f

Und letztendlich müssen u.U. die Umgebungsvariablen gesetzt werden (bei mir auch nicht mehr notwendig gewesen):

ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/

oder

set JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/

und dann:

export JAVA_HOME

Danach konnte ich endlich eine Android-App im Docker-Container kompilieren. Nur sind Docker-Systeme ja flüchtig und wenn der Docker-Container beendet wird, sind alle Änderungen samt der gespeicherten Daten weg. Also waren Snapshots des aktuellen Stands notwendig. Das geht aus einem zweiten Terminal heraus etwa so:

sudo docker commit -p 532a5b3584e8 container1

Dabei braucht man die ID oder den Namen des Docker-Containers.Bekommt man so:

sudo docker ps

Dann bekommt man was der Art angezeigt:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
532a5b3584e8 container1 „bash“ 19 minutes ago Up 19 minutes eloquent_liskov

Und dann muss die kompilierte App ja auch noch raus aus dem Docker-Container oder man muss was reinkopieren. Also stellte sich die Frage, wie man aus einem zweiten Terminal aus dem Clientsystem auf den Host rauskopiert oder umgekehrt? Das geht formal so (wieder mit sudo):

docker cp <SRC> <DEST>

Also konkret was der Art (in den Container):

sudo docker cp /home/ralph/Schreibtisch/www eloquent_liskov:/tmp/HalloWelt
sudo docker cp /home/ralph/Schreibtisch/rjsedv.jks eloquent_liskov:/tmp/HalloWelt
sudo docker cp /home/ralph/Schreibtisch/build.json 532a5b3584e8:/tmp/HalloWelt

Aus dem Container auf den Host geht für die generierte Android-App etwa so:

sudo docker cp eloquent_liskov:/tmp/HalloWelt/platforms/android/app/build/outputs/apk/debug/app-debug.apk /home/ralph/Schreibtisch

Die späteren Neustarts der Snapshots zeigten, dass noch (weitgehend) alle Daten waren und jetzt schien alles ok.

Pustekuchen. Denn auf meinem Notebook mit Windows 10 Home konnte der VMWare-Player die virtuelle Maschine nicht starten, die ich auf der Workstation erstellt hatte. Und ist auch beim Neuinstallieren eines Linux-Systems gescheitert. Irgendwas mit der Anzeige ging schief. Warum auch immer.

Also habe ich auf dem Notebook VirtualBox genommen, denn das ist dann dort im Gegensatz zum VMWare Player auch mit Linux als Clientsystem sauber gelaufen. In der damit erzeugten VM für Mint-Linux 20 das ganze Zeug mit Docker nochmal gemacht und das hat dann auch funktioniert.

Letztendlich hat das „Mal schnell“ zu gut einem vollen Tag Arbeit geführt, aber ungelöste Probleme lassen mir keine Ruhe und ich habe dabei vor allen Dingen wieder eine Menge gelernt. Vielleicht kann ich das neue Wissen ja nochmal brauchen.

 

Update: Irgendwann habe ich dann festgestellt, dass das Docker-Cordova-Image die Cordova-Version 9 verwendet hat und mittlerweile die Version 10 aktuell ist. Was im Grunde nicht schlimm ist, aber so kann man das dann im Container noch aktualisieren:

npm i -g cordova to update

 

 

Mint Linux 20

Mittlerweile bin ich hinsichtlich Betriebssystemen Multisprachler. Selbst einen iMac Mini habe ich gelegentlich im Einsatz (für Remotesessions mit JamKazam), obwohl ich an die Apple-Welt einfach nicht ran will und den eigentlich nur einige Jahre zur iOS-Programmierung mit XCode gebraucht habe. Natürlich muss ich mit Windows arbeiten und in der Version 10 fand ich das Betriebssystem bisher auch durchaus gut. Aber die aktuelle Update-Politik von Microsoft ist ärgerlich und zudem würde ich niemals sicherheitskritische Dinge wie Onlinebanking auf einem Windows-PC machen. Da geht für mich einfach nichts über Linux. Linux ist halt sicher, schnell, bequem, mächtig, ressourcenschonend.

Wobei ich zugeben muss, dass ich im Moment aber nur zwei Rechner unter Linux laufen lasse – die zudem mit Dualboot mit Windows. Und auch meine virtuellen Maschinen mit Linux nutze ich selten. Dennoch – alles in Allem ist und bleibt Linux mein Lieblingsbetriebssystem, wobei ich gar nicht so sicher bin, welche Distribution mein Favorit ist. Aber irgendwie bin ich bei Mint Linux hängen geblieben.

Jetzt habe ich gerade in einer Computerzeitschrift gelesen, dass die Version 20 von Mint Linux freigegeben wurde und dabei ist mir erst bewusst geworden, dass ich bei meinem Linux-Hauptrechner (meinem Terra-Notebook) auf der Version 18 (Sarah) stehen geblieben bin. Die habe ich zwar regelmäßig auf den neusten Stand gebracht, aber eben nicht upgeradet. Die Version 19 habe ich mir nur in einer VM angesehen und verpasst, diese dann in die Praxis zu übernehmen.

Jetzt musste ich den Preis zahlen, denn ein direktes Upgrade von 18 auf 20 geht nicht. Wenn man in Linux Zwischenversionen auslässt, ist das Upgrade leider etwas aufwändiger.

Erst einmal musste ich mit der Aktualisierungsverwaltung auf 18.3 upgraden und dabei zuerst den Displaymanager von MDM auf LightDM wechseln (sudo apt install lightdm lightdm-settings slick-greeter, dann sudo apt remove –purge mdm mint-mdm-themes* und dann sudo dpkg-reconfigure lightdm mit anschließendem Reboot), wobei vorher bereits mit sudo apt install timeshift Timeshift zu installieren und für Snapshots auszuführen war.

Erst danach konnte ich das eigentliche Upgrade durchführen, wobei erst auf die Version 19, dann auf 19.3 mit der Aktualisierungsverwaltung und dann (vermutlich – die genauen Upgrade-Anweisungen kommen erst im Juli raus) mit der gleichen Befehlsfolge auf die Version 20 aktualisiert werden kann:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install mintupgrade

mintupgrade check

mintupgrade download

mintupgrade upgrade

Wenn alle Rückfragen bejaht wurde und alles sauber durchgelaufen ist, kann man die Versionsnummer mit cat /etc/issue oder inxi -Sz oder auch lsb_release -a überprüfen.

Aber da die konkreten Upgrade-Features für die Version 20 wie gesagt im Juli rauskommen, lade ich mir die ISO-Dateien für XFce und Mate und installiere passende VM. Und darin werde ich mal die nächsten Tage testen, ob Mint Linux 20 wirklich so gut ist, wie es in dem Beitrag in der Computerzeitschrift beschrieben wurde.

Mein Linux-Hauptrechner ist aber zumindest auf die Version 19.3 hochgeschoben.

Speed it up – Vol 2

Ich bin verwirrt – ich habe die MTU-Werte bei meinem Linux-Rechner als auch die iMac Mini in Eppstein kontrolliert und beide stehen auf dem ungünstigen Wert von 1.500. Trotzdem ist die Download-Geschwindigkeit deutlich über den Werten, die ich mit meiner Windows-Workstation in Bodenheim erreiche. Bei dem iMac kann ich das auf die bessere Leitungsqualität in Eppstein schieben, aber warum reproduzierbar mein altes Linux-Notebook in Bodenheim einen bessern Datendurchsatz hat als die viel potentere Windows-Workstation am gleichen DSL-Anschluss, bleibt mir ein Rätsel. Aber auch mein relativ neues Huawei-Notebook (mit Abstand der leistungsfähigste PC in meiner Armada von mehr als ein Duzend Rechnern) schafft nur unwesentlich bessere Downloadergebnisse als die Workstation. Auf jeden Fall unter den Werten von dem alten Linux-Notebook – trotz dessen ungünster MTU-Einstellung.

Es bleibt mir eigentlich nur der Rückschluss, dass Windows das Problem ist und sowohl Linux als auch das macOS einfach besser sind. Auch wenn die Tests nach der Anpasung des MTU-Werts in Windows reproduzierbar weniger schlechte Messwerte im Download liefern.

Docker & wasm

Im Moment geht es in der IT mit neuen Themen schneller wie beim Bretzelbacken. Und vor allen Dingen gibt es permanent was Neues. Bzw. ich komme einfach nicht hinterher, was die Lage besser trifft.

Aktuell habe ich „Big Data“ und „Maschinelles Lernen“ im Zusammenhang mit Python „in Arbeit“. M.a.W – ich bin gerade am richtigen Einarbeiten, wobei da ja ziemlich viel Überschneidung zu meinem Studium und dem sonstigen täglichen Programmiergeschäft die Sache einfach macht.

Aber irgendwie habe ich zwei andere Megatrends bisher weitgehend ignoriert.

  • Docker
  • Webassemblies

Docker habe ich zumindest am Horizont schon länger wahrgenommen, aber einfach noch nie ausprobiert. Und da Docker mittlerweile auch schon massiv in der Kritik steht, wollte ich da eigentlich nicht ran. Aber die Entwickler auf der letzten Schulung in Köln haben auf Docker-Container geschworen und deshalb bin ich jetzt doch wieder neugierig geworden. Zumal ich eine Anfrage nach einer SQL-Schulung in der Pipeline habe, die aber nicht – wie sonst bei mir üblich – unter MySQL oder zur Not MS SQL-Server, sondern DB2 laufen soll. Ja woher soll ich denn jetzt auch noch eine DB2-Installation haben? Mit dem Teil hatte ich noch nie vorher direkten Kontakt. Antwort – ich installiere mir gerade einen passenden Docker-Container! Es ist wohl doch so, dass meine bisherige geringe Anteilnahme an der Docker-Welt ein Fehler war. Wobei ich die Installation von dem Docker-Desktop unter Windows gleich wieder gelöscht habe. Das läuft ja mit Hyper-V und das wiederum killed mein Virtual Box. No way. Ich will keine permanente Umschaltung der Virtualisierungsumgebungen. Einfach zu lästig. Also wird aus der Not eine Tugend gemacht und Docker in seinem natürlichen Habitat – Linux – betrieben. Entweder auf meinem Notebook mit dem Dualboot oder aber auf der Workstation mit Windows 10 in der Linux-VM in der Virtual Box. Geht wunderbar bei 12 Kernen und 32 Gigabyte RAM.

Das Thema Webassemblies ist dagegen vollkommen an mir vorbeit gegangen. Nur habe ich vor wenigen Tage die Meldung mitbekommen, dass wasm neben HTML, CSS und JavaScript nur die 4. offiziell von W3C abgesegnete Technologie im Web ist. Das erzwingt dringend, dass ich mir das die nächsten Tage mal genauer ansehe.

 

Windows mittlerweile viel sicherer als macOS

Ich bin überzeugt, dass Linux (von BSD ganz zu schweigen) erheblich sicherer und eigentlich auch ganz allgemein besser als Windows ist. Aber Windows 10 ist m.E. dennoch ein richtig gutes Betriebssystem. Was mich aber überrascht – ein ehemaliger Hacker der NSA hat nun dokumentiert, dass macOS erheblich unsicherer als Windows ist. Dabei stehlen sich zahlreiche Anwender von Macs aus der technischen Verantwortung, indem sie das Märchen glauben oder gar verbreiten, dass ein Mac nicht zu hacken wäre.

Dummheit trifft Sorglosigkeit – Ransomware „Wanna Cry“

Die Schadsoftware „Wanna Cry“ hat die letzten Tage zehntausende Computer weltweit blockiert. Vor allem bei Unternehmen und öffentliche Institutionen. Angeblich handelt es sich um einen der bislang größten Angriffe auf Computersysteme in aller Welt. Der Erpressungstrojaner verschlüsselt Daten und die Ersteller verlangen zur Entschlüsselung ein „Lösegeld“ in Form von BitCons. Betroffen waren unter anderem Krankenhäuser, Energieversorger oder die Deutsche Bahn.
Doch zumindest dieser Angriff war nur möglich, weil bei den Betroffenen Dummheit und Sorglosigkeit zusammen gekommen sind.

  • Wer immer noch Windows XP verwendet (was davon wohl so gut wie ausschließlich betroffen war), ist beides. 
  • Und da der Trojaner per Spam in Netzwerke infiltriert wurde, haben auch die Anwender auch ihren Teil beigetragen. Der Anwender, der jeden E-Mail-Anhang anklickt, kombiniert eben auch Dummheit mit Sorglosigkeit. 
  • Und wer nicht regelmäßig Backup macht? 
  • Und wer nicht regelmäßig Updates einspielt? 

Seltsam, dass es immer nur eine Antwort gibt. Man kann sich so einfach schützen – zumindest gegen so triviale Attacken. Zumindest soll Windows 10 immun gegen diesen einen Trojaner sein.
Mich würde auch mal interessieren, welche Konsequenzen diese Attacke für die Entscheider bei den betroffenen Unternehmen und öffentliche Institutionen hat? Müssen die den Schaden ihrer Fahrlässigkeit selbst tragen? Die angekündigten Ermittlungen gehen aber vermutlich in die falsche Richtung und versuchen die Hacker zu finden. Why? Das sind vermutlich Spy-Kiddies, die eine Einladung angenommen haben.
Auch wenn ich mittlerweile Windows 10 gut finde – bei Sicherheit gibt es keinen Kompromiss und da hilft auf die Schnelle nur Linux und mittelfristig ein gehärtetes Linux. Hallo München!! Auuuuuuffwachen! Eure Stadtverwaltung ist (noch) sicher und ihr stellt bewusst auf eine Sicherheitslücke mit riesigem Ausmaß um. Wie dumm ist das denn? Letztendlich kann der Hinweis darauf, dass Linux-Systeme so gut wie nie betroffen sind, leider bestochene (dumme und sorglose) Entscheider und unkundige Anwender aber wohl nie überzeugen.

Mit Volldampf zurück in die Steinzeit – die Münchner Stadtverwaltung migiert zurück auf Windows

Seit gut 10 Jahren arbeitet man in der Stadtverwaltung München erfolgreich mit einem angepassten Linux mit Namen LiMux. Das war bisher das(!) Vorzeigeprojekt rund um Open Source und Linux im professionellen Umfeld. Doch jetzt kommt scheinbar das Aus. Es geht zurück zu Windows. Über die Gründe wird in der Szene heftig spekuliert:

  • Bestechung der Entscheidungsträger durch Microsoft
  • Politische Gründe
  • Ideologische Gründe
  • Doch zu ausgeprägte Dummheit der Beamten

Da gibt es die wildesten Spekulationen und viele sind sicher weit hergeholt. Trotzdem – ich persönlich kann die Entscheidung in keiner Weise nachvollziehen und keinerlei objektiv greifbare Gründe finden. Und ich bin wirklich kein Microsoft-Feind (zumindest die letzten Jahre nicht mehr). Gerade die Woche habe ich C#-Programmierung geschult und ich nutze auch Windows 10 recht oft.
Aber für Laien ist Windows m.E. im öffentlichen Dienst und auch meist im Business-Umfeld einfach nicht zu gebrauchen. Als reiner Anwender, der auf seinen schmalen und eingefahrenen Wegen bleibt und bei dem ein Crash des Systems oder Befall durch Viren und Trojaner nicht wirklich relevant ist, kann man damit gerne arbeiten. Windows ist ein gutes Spiel-, Customer- und Normalanwender-System.
Aber es geht hier um die öffentliche Verwaltung und damit sensible, sicherheitskritische Bereiche. Da hat Windows rein gar nichts zu suchen.
Zumal Linux gerade für Laien so viel einfacher zu bedienen ist. Fast jeder kommt mit einem Android-SmartPhone klar. Hat schon irgend jemand ein SmartPhone mit Windows bedienen können? Solche Leute sind m.E. seltener als der Yeti ;-). Und auch die Integration in das Web ist bei Linux um Welten besser. In Zeiten von RIAs und Web 2.0 bzw. HTML5 ist das ein unschätzbarer Vorteil. Darüber hinaus klappt der Datenaustausch mit Linux und Programmen wie LibreOffice einfach besser als mit dem eingeschränkten Microsoft-Zeugs.
Die klassischen Tugenden von Linux gegenüber Windows wie Sicherheit, Stabilität, Performance, Quelloffenheit, bessere Hardwareunterstützung greifen zusätzlich.
Und wenn all das nicht überzeugt – in Zeiten von einem unberechenbaren Trump darf man einfach keine Kontrolle an US-Firmen abtreten. Never-ever. Die werden garantiert gezwungen alle Firmen, Behörden, etc. auszuspionieren, um diesem „America first“-Wahnsinn zu dienen.
Es bleibt also nur die Umstellung zu stoppen und Ermittlungsverfahren gegen die Entscheider einzuleiten, warum man in diese offensichliche Falle gezwungen werden soll.

Update auf Windows 10 bei meinem Dual-Boot-Notebook

Nachdem ich auf meiner Workstation mit Windows 10 ganz zufrieden bin, habe ich mich auch bei meinem Notebook (bisher immer noch mit Windows 7 bestückt) zu einem Update entschlossen. Zumal Windows 7 wirklich in die Jahre kommt und es über kurz oder lang mit Updates eng werden wird. Und mit der Classic Shell kann man auch unter Windows 10 das Look an Feel von Windows 7 wiederherstellen und muss sich nicht mit den Verirrungen der Oberflächengestaltung und extremen Behinderung bei der Bedienung über Kacheln  ab Windows 8 quälen. Mit der neuen SSD sollte die Hardware von dem Notebook auch ausreichend leistungsfähig sein.

Microsoft kennt immer noch kein Dual-Boot 🙁

Dummerweise verwende ich auf dem Notebook Windows parallel mit einem Linux und Dual-Boot über Grub. Tja – ich hatte gedacht, dass es Microsoft endlich geregelt bekommt, wenn es außer Windows noch weitere Betriebssysteme auf dem Rechner gibt. Falsch gedacht :-(. Die Upgrade-Routine haut Grub dermaßen in die Tonne, dass danach gar nichts mehr geht. Windows muss beim Update mehrfach neu starten und beim 2. Neustartversuch konnte weder Windows noch Linux starten. Ganz toll – nur noch Grub rescue war da. Klar gibt es die üblichen Befehle (von ls über set bis insmod), um Grub manuell wiederzubeleben. Aber leider gab es auch dabei ständig die Meldung, dass das Dateisystem nicht zu erkennen sei. Ich hab dann schnell die Faxen dicke gehabt und mein Mint Linux als Live-Version vom USB-Stick gestartet und dann einfach nochmal neu installiert. Da hatte ich sowieso keine wichtigen Daten drauf und das repariert ganz nebenbei und vollkommen problemlos Grub. Danach konnte sich dann Windows weiter aktualisieren.

Wir warten auf das Christkind

Das gesamte Update hat gefühlte Ewigkeiten gedauert. Als ich vor einigen Monaten meine Workstation von Windows 8.1 auf Windows 10 aktualisiert hatte, war das erheblich schneller abgelaufen. So genau kann ich das nicht mehr sagen, aber für dieses Update hat die Setuproutine die 3 – 4-fache Zeit gebraucht, denke ich. Das war der nächste Punkt im Updateprozess, den ich für mich als grottenschlecht bewerte.

Als dann aber die Geschichte endlich durch war, schien soweit alles erhalten geblieben zu sein und das System zu laufen. Muss jetzt in der Praxis ausprobieren, ob der Umstieg wirklich sinnvoll war.