Braucht man ständig neue Hardware?

Ich „leide“ darunter, dass ich die letzte Zeit viel zu wenig berufliche Ausgaben geltend machen kann. Denn durch Corona sind meine Reisekosten gesunken und irgendwie sehe ich keine zwingenden Gründe, warum ich meine Rechner, SmartPhones, Büromöbel oder gar Tablets anschaffen/erneuern soll. Solange der alte Kram noch geht und eine Neuanschaffung keine signifikanten Vorteile bringt oder ich keine echte Verwendung sehe, kann ich mich einfach nicht zu einem Kauf von neuer Hardware entschließen. Das mag betriebswirtschaftlich nicht sinnvoll sein, aber für die Umwelt zumindest besser. Trotzdem gibt es so ein paar Sachen, die ich anschaffen oder umorganisieren muss.

Ich wollte gerade in der Hängematte die Europa-Meisterschaften in München schauen, aber mein Tablet ruckelte ohne Ende und ist immer wieder ausgegangen. Das Teil ist einfach fertig, zumal ein Riss über das gesamte Display geht. Ich war schon drauf und dran, mir ein neues Tablet zu bestellen. Aber dann kam der Gedanke wieder durch, den ich immer bei Tablets habe – im Grunde nutzlos, weil sie irgendwie die Nachteile von einem SmartPhone mit den Nachteilen eines Notebooks verbinden. Andere mögen dafür eine echte Anwendung haben, aber außer ein bisschen Fernsehen oder Videos schauen und ein bisschen Surfen mache ich mit einem Tablet eigentlich nichts. Nicht einmal das Anzeigen von Schulungsunterlagen, was ich irgendwann als eine möglicherweise nützliche Anwendung von solchen Geräten mir eingebildet habe, mache ich wirklich. Und dann gibt es ja noch in meinem Büro in Eppstein noch den chinesischen Microsoft Surface-Klon, den ich mir 2021 angeschafft habe. Der läuft mittlerweile mit Windows 11 und kann als UBook sowohl als PC aber eben auch als Tablet verwendet werden. Sogar ein Stift ist dabei, Das CHUWI UBook Tablet langweiligt sich vermutlich sowieso ziemlich, weil ich das Ding nur selten einsetze. Dabei arbeitet das Billigteil gar nicht so schlecht, wenn ich denn man wirklich damit etwas mache. Also statt ein neues Tablet anzuschaffen, werde ich das CHUWI herholen. Nur dann brauche ich in Eppstein einen Rechner für die Tage, wo ich ohne mein Matebook da hinkomme und was arbeiten will. Ich könnte meinen alten Mac Mini da wieder hinschaffen (wie ich es schon mal gemacht habe), aber der dient mir im Moment als Druckserver und ich komme ja zudem mit macOS einfach nicht zurecht. Aber ich habe noch ein uraltes Terra-Notebook, das für die meisten Anwendungen immer noch ausreicht und ansonsten hauptsächlich das Backup von meinen beiden Hauptrechnern ist. Die Rolle kann das CHUWI auch übernehmen. Also geht das Terra-Notebook nach Eppstein.

Was zu dem Problem führt, dass ich dann keinen echten Linux-Rechner (das Terra-Notebook hat Win 10 und Mint Linux im Dualboot) mehr in Bodenheim habe. Meinen Raspi Pi kann ich nicht ernsthaft in Betracht ziehen, weil die Version 1 einfach viel zu schwachbrüstig ist. Linux in einer VM ist keine Lösung für mich. Ich habe einen Rapberry PI 4 in Erwägung gezogen, aber die kosten zwischen 140 und 180 EUR (je nach RAM). Das ist zuviel für die Platine und ich habe deshalb eben spontan einen gebrauchten Mini PC bei ebay gekauft. Einen alten Lenovo Desktop PC ThinkCentre M71e Intel G850 4GB RAM 120GB SSD Tiny mini, der mit Versand keine 50 EUR kostet. Darauf sollte eine Linux-Distri vernünftig zu installieren sein und die Verlagerung des Terra Notebooks auffangen.

Was mein Problem mit den fehlenden Geschäftsausgaben nicht löst, aber da mein SmartPhone – wie das Tablet – einen großen Riss im Display hat, werde ich vermutlich im Laufe des Jahres noch ein neues Gerät anschaffen und ein Business-Gerät in Erwägung ziehen.

Was ein Gefuddel für Android

Nachdem mir die Raspberry PIs als auch vergleichbare Platinen im Moment einfach zu teuer sind, habe ich mich daran gemacht, ein uraltes Notebook, dass ich vor einigen Monaten mit Deepin Linux neu eingerichtet habe, für die Cordova-Entwicklung einzurichten. Das ist zwar fertig, liegt aber sowieso da rum und einen Test war es mir wert.

Im Grunde geht das Einrichten von Cordova ja auch recht einfach, wenn es nicht die elenden Fallen geben würde.
Einmal ist da im Fall von Android das Problem mit der Java-Version. So richtig geht es – falls man für Android die App erstellen will – nur mit Java 8 bzw. dem JDK 8. Das Problem habe ich schon vor gefühlten Ewigkeiten bemerkt und mir immer damit geholfen, dass ich eben Java 8 installiert habe. Neben den aktuellen Versionen. Leider ist es dann aber blöde, weil man für Gradle-Skripte (zumindest die vorgefertigten von Cordova) die Default-Version von Java auch auf eben dieses Java 8 umstellen muss. Das geht in Linux (Debian, Ubuntu, Mint und Derivate) so:

sudo update-alternatives --config java

In der Folge kann man zwischen den installierten Java-Versionen auswählen und eine davon zur Default-Version machen. Aber dann muss man dann auch noch JAVA_HOME korrekt setzen. Etwa so:

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

oder

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

Ging unter Deepin als normaler User, aber komischer Weise hat das als root nicht funktioniert bzw. die Einstellungen wurden nicht übernommen. Letztendlich habe ich viel rumgebastelt, wieder viel gelernt, bin aber wie so oft im Grunde gescheitert.
Wobei das Problem mit Java 8 ist vermutlich ein ganz anderes, als man vermutet. Denn vor einigen Monaten hatte ich eine Schulung rund um Java EE gehalten und da hatten wir bei JSF ein ähnliches Problem. Die Meldung sah so aus als wäre die Version von Java nicht passend bzw. zu alt, obwohl sie neuer als die geforderte/angezeigte Version war. Ganz wie hier bei Cordova. Aber dann ist mir aufgefallen, dass die Versionsnummern in dem Framework nur einstellig (!) evaluiert wurden. Also Java 11 oder Java 17 werden als Java 1 interpretiert. So was vermute ich mittlerweile auch bei Cordova bzw. den Gradle-Skripten. Man müsste es mal mit Java 9 testen, aber dazu habe ich im Moment keine Zeit.
Letztendlich ist aber sowieso das Hauptproblem dieses elende Android-Gefuddel. Das Android-SDK und die Android-Tools etc. habe ich nach und nach alle installiert, aber ständig kam die Meldung, dass das Zeug nicht da wäre. Genaugenommen hat das Gradle-Skript diese Meldung gebracht. Letztendlich habe ich sogar das Android Studio auf dem uralten Notebook mit Deepin installiert, dort diverse Fernzugriffservice eingerichtet und gestartet, alle möglichen SDK-Versionen nachinstalliert und sogar ein Cordova-Template im Android Studio als Plugin eingerichtet.
Resultat – das Gradle-Skript weigert sich, die Android-Ressourcen zu finden. Und selbst das Android Studio nimmt dieses Gradle-Skript und kennt sich quasi dann selbst nicht mehr.

Irgendwann hatte ich die Faxen dicke, denn so schön Deepin Linux von der Oberfläche auch ist – es hat so ein paar Macken, die ich von der administrativen Seite nicht wirklich gut finde. Und der VNC- als auch RDP-Zugriff haben darauf ums Verrecken nicht funktioniert. Nur ssh – auch mit X-Umleitung von einem anderen Linux-Rechner.
Apropos anderer Linux-Rechner – das ist mein Terra-Notebook, auf dem ich Windows 10 und Mint Linux im Dualboot betreibe. Unter Windows habe ich das Cordova (auch für Android) mit Visual Studio 2017 im Griff (und im Prinzip auch mit dem Android Studio – das macht aber keinen Spass). Die Linux-Version kann ich aber seit Monaten nicht mehr aktualisieren oder da ein Programm installieren. Die Sache hier war für mich der Anlass, dass Problem mal anzugehen. Denn egal was ich probiert habe die letzte Zeit – mit der Fehlermeldung, dass die Quellen nicht zu lesen wären, haben sämtliche Aktualisierungsversuche als auch Installationsversuche abgebrochen.
Ich bin nun auf den Lösungsansatz gestoßen, dass man die Datei mit einem geeigneten Repo füllen sollte. Etwa das:

sudo nano /etc/apt/sources.list
deb http://de.archive.ubuntu.com/ubuntu bionic main restricted

Habe ich gemacht – keine Wirkung!
Dann habe ich endlich die Meldung genauer angesehen – Linux hat nicht die Datei /etc/apt/sources.list beim Installieren/Aktualisieren ausgelesen, sondern die Datei /etc/apt/sources.list.d/vivaldi.list.
Aus irgendeinem Grund wurde der Pfad umgebogen. Wo genau, habe ich noch nicht raus, aber einfach das Repo da reingeschrieben. Und gut ist es – aktualisieren und installieren geht wieder.
Jetzt kann ich auch mal den Linux-Rechner nutzen und versuchen, da Cordova-Apps für Android zu kompilieren. Wenn das auch da nicht geht, habe ich ja immer noch Visual Studio 2017 und meinen Docker-Container.

Und so ganz unwahrscheinlich ist es nicht, dass ich darauf beschränkt bleibe. Denn bei dem Mint-Linux ist node.js und damit auch npm in einer alten Version dabei. Was nicht schlimm wäre, wenn nicht jede Art der Installation, die ich versucht habe, immer diese uralte Version 8 installiert hätte. Mit apt bzw. apt-get entfernt, neu installiert, andere Quellen genommen, verschiedene Package-Manager ausprobiert -> immer die Version 8, obwohl es schon die Version 18 gibt. Ein Problem führt bei den ganzen Aktionen – wie eigentlich immer – zum nächsten.

Ich bin jetzt auf das Level zurückgegangen, dass ich die Quellcodes von Git geholt und dann bei mir neu kompiliert und installiert habe.

Also klassisch

git clone https://github.com/joyent/node.git

Und dann:

./configure
make
make install

Dazu gibt es im Netz eine ziemlich gute Anleitung.

Der kleine Hinweis dort, dass das Kompilieren ein „bisschen länger“ dauert, war aber untertrieben. Ich bin mit der Erwartung von vielleicht 30 Minuten maximal in den make-Befehl rein und nach gut 5 Stunden war noch kein Ende zu sehen. Das Zeug ist dann über Nacht durchgelaufen und heute morgen war es erledigt. Das dauert also brutal lang, wobei mein Terra-Notebook auch schon in die Jahre gekommen ist.

Anyway – die Sache ging durch und nun habe ich node.js bzw. npm in der Version 18. Cordova ist damit auch eben fix installiert und wie es mit Android aussieht, schaue ich mir später an. Das ist ja die einzige kritische Stelle.