Android 13

Ich nutze seit ein paar Jahren ein einfaches Honor als SmartPhone, das „nur“ Android 10 hat und wohl auch keine neuere Version von Android mehr bekommt. Da dessen Display allerdings seit über einem Jahr gerissen ist und ich eigentlich permanent mit einem Ausfall rechne, habe ich vor ein paar Monaten ein einfaches Samsung XCover als Kronprinz angeschafft und weitgehend identisch konfiguriert, um im Fall des (Aus-)Falls nahtlos umsteigen zu können.

Da das Honor allerdings bisher durchhält, nutze ich dieses weiter und das XCover nur für Outdoor-Aktivitäten (wofür es auch explizit gemacht ist). Aber das XCover hat auf meiner Radtour eben Android 13 als verfügbar gemeldet und ich habe das aktuellere Betriebssystem gleich installiert.

Nur kann ich keine Unterschiede zu den letzten Versionen von Android erkennen. „Android 13“ weiterlesen

Warntesttag

Heute soll ja ab 11:00 Uhr getestet werden, ob und wie eine Warnung der Bevölkerung im Katastrophenfall in Deutschland funktioniert. Auch mittels „Cell Broadcast“, womit eine Nachricht direkt auf Smartphones gepusht werden kann. Ohne spezielle Apps. Das soll zumindest mit neuen Varianten von Android und iOS so gehen.

Mal sehen, ob das wirklich klappt. Angeblich haben die Provider Handybesitzer bereits vorab über eine SMS informiert. Ich habe zumindest keine entsprechende SMS bekommen. Geht schon gut los. „Warntesttag“ weiterlesen

Give me five

Man kann einfach nicht genug Bildschirme haben und ich habe jetzt an der Workstation deren 5. Die bisherigen 4 waren ja wirklich arm :-).

Aber bevor es ausartet – Monitor 5 wird als Zweitmonitor bei meinem Matebook Einsatz finden. An der Workstation habe ich die Sache nur ausprobiert.

Monitor 5 ist nämlich ein altes Tablet, für das ich einen Einsatzzweck gesucht haben. Ich bin ein Freund davon, alte Dinge solange wie möglich zu verwenden – sofern es sinnvoll ist. Was bei alten PCs nur begrenzt der Fall ist, denn die Anforderungen moderner Programme können die einfach nicht mehr erfüllen und die Performance macht meist auch keinen Spass (selbst mit Linux). Der meist recht hohe Stromverbrauch alter Rechner tut ein Übriges.

Aber bei Monitoren ist das etwas anderes. Bei meinem uralten Terra-Notebook habe ich einen Fernseher, den ich als solchen nicht mehr benötige, als Zweitmonitor im Einsatz. Geht wirklich gut, solange man nicht dauerhaft damit arbeitet.

Und dann habe ich eben noch ein kleines Tablet übrig, was eigentlich nur als Backup-Gerät für Verifizierungen verschiedene Art (2-Wege-Zertifizierung, Onlinebanking etc.) sein Dasein fristet. Zumal dessen Display gesprungen ist und die Leistung wirklich aus der Zeit gefallen, kann man es kaum noch für das Kerngeschäft eines Tablets verwenden. Gestern kam mir die Idee in den Sinn, ob man das Tablet aber nicht als Zusatzmonitor an einem PC verwenden könnte. X-Umleitung bei Linux und auch Remotedesktop bei Windows lassen so Sachen ja zu und warum sollte das bei einem Android-Gerät ein Problem sein? Ist es auch nicht und es gibt diverse Möglichkeiten. Ich habe auf die Schnelle Spacedesk ausprobiert. Treiber für Windows und App auf dem Tablet installiert und Out-of-the-box wurde das Tablet als neuer Monitor erkannt und eingerichtet (über das lokale Netzwerk – es soll aber auch über USB funktionieren, was ich noch nicht ausprobiert habe ). Total easy und problemlos. Ich bin begeistert.
Ich werde das Tablet aber dennoch an der Workstation wohl kaum einsetzen, aber wenn ich unterwegs mit dem Matebook Schulungen halte, meinen Bildschirm teile und kein Zweimonitor da ist, dann ist das Tablet als Zusatzmonitor definitiv eine wunderbare Option.

E-Mail-Spam – Kampf gegen Windmühlen

Es sah eine Zeit so aus als hätte ich die Flut an Spam-Mails etwas eingedämmt. Aber der Damm ist vor einigen Tagen wieder gebrochen und im Moment werde ich pro Tag mit gut 50 Spammails überrollt. Und das sind nur diejenigen, die durchkommen. Vermutlich wird die x-fache Menge bereits vorher abgefangen.

Klassisches Blockieren von Absendern und Domains funktioniert nicht mehr. Oder zumindest kommen eben noch unglaublich viele Dreckmails durch, weil nach meiner Erfahrung von den Gaunern derzeit nur Einmalmails verwendet werden. Ohne tatsächlichen Server hinter dem DNS-Namen zudem.

Das läuft vermutlich ähnlich wie bei Brute-Force-Angriffen. Aus Wortlisten werden Absendernamen und Domainnamen zusammengesetzt und dann die gleiche Mail zig-fach an eine E-Mail-Adresse geschickt. Der Betreff wird genauso generiert, aber da müssen natürlich die passenden Reizworte stehen. Und das ist dann die einzige Stelle, wo man außer Gray-Filtern funktionierende Filter ansetzen kann. Leider funktioniert auf meinem Server weder Gray-Filtern noch das Einrichten von Inhaltsfiltern. Ich habe keine Ahnung warum, aber ich kann und will meinen Server nicht von links auf rechts drehen mit der Gefahr, dass hinterher gar nichts mehr läuft. Der Preis ist aber, dass ich hier nur eine Brandschutzmauer der klassischen Art über Adressfilter und Standard-Tools wie SpamAssassin aufbauen kann.

Mein Python-Skript, das die letzten Monate Inhalte gefiltert hat, hat plötzlich Probleme gemacht. Da wurde an irgendeiner Stelle eine Aktualisierung oder Änderung im API oder meinen Protokolldaten des E-Mail-Servers vorgenommen und ich habe noch nicht raus, was deshalb einen Fehler auslöst. Deshalb habe die Skripte im Moment deaktiviert, wobei ich da sicher nochmal rangehe.

Bleiben noch die Mail-Agents, um damit Inhaltsfilter anzulegen. Die arbeiten ganz gut, nur muss eben erst einmal der passende Mail-Agent aufgerufen werden, der auch richtig filtert. Die Filter von Thunderbird greifen (und komischer Weise funktioniert bei  Thunderbird das Einrichten einer Zertifikatsausnahme auch wieder, nachdem ich die portable Version älterer Bauart einfach in einen anderen Ordner entpackt hat – und die wurde mittlerweile automatisch aktualisiert, aber es geht immer noch) bzw. die habe ich mittlerweile soweit angepasst, dass der meiste Dreck zuverlässig in den Spam-Ordner wandert.

Nur unter Android klappt das nicht so ganz bei MailDroid. Inhaltsfilter gibt es da nur gegen das Verschicken von Werbung für das Programm an 10 Kontakte. Das finde ich nicht gut und lasse es deshalb. Jetzt habe ich ein neues, kostenloses E-Mail-Programm für Android entdeckt. Nennt sich einfach „E-Mail“ von Edison Software (oder auch Edison-Mail) und macht auf den ersten Blick einen sehr guten Eindruck. Man kann mehrere Accounts einrichten (was out-of-the-box funktioniert hat) und ein sogenannter „Fokussierter Modus“ filtert nach meinen ersten Versuchen den Spam-Dreck auch auf dem SmartPhone ziemlich gut. Damit sollte das Problem entfallen, dass die Drecksmails zwar nicht belästigen, wenn ich zuerst den PC starte und Thuderbird aufrufe, aber wenn ich bisher zuerst auf dem SmartPhone geschaut hatte und dann der Schmutz sofort da war und das E-Mail-Postfach verdreckt hat.

Und ja – ich bin stinksauer auf diese Dreckschleudern und deshalb die wütende Wortwahl.

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.

 

Preisexplosion beim Raspi

Ich muss zugeben, dass ich mir lange keine Preise für Hardware angesehen habe. Und schon gar nicht für den Raspberry Pi. Hin und wieder krame ich meinen alten Raspi der Version 1 raus und experimentiere damit rum. Aber die Version 1 ist wirklich so schwach auf der Brust, dass man damit eigentlich nur testen kann, welche Minimalhardware für gewisse Dinge notwendig ist und dabei braucht man viel Zeit und Geduld, bis die Programme starten bzw. fertig sind. Und wirklich nützliche Anwendungen habe ich in dem Bereich wenig gefunden, weil ich keine Hardwaresteuerung programmiere. Einzig die Ausführung von einem Python-Skript zur Spamabwehr ist derzeit eine produktive Anwendung des kleinen Raspi. Aber obwohl ich immer noch unter massivem Spambeschuss stehe, haben sich mittlerweile wohl die Antispam-Cloud-Dienste und die internen Spam-Abwehrmechanismen auf die neue Art des Spams eingestellt, die vor einigen Wochen wie eine Schlammlawine durchs Netz gewalzt ist. Der Raspi hat also als Torwächter wieder weniger zu tun. Bei einer anderen Anwendung hat aber die extrem schwache Hardware die Hürden nicht geschafft. Ich wollte für die kommende Cordova-Vorlesung, die ich an der TH Bingen ab übernächster Woche halte, ein Linux-System so konfigurieren, dass Cordova-Android-Apps kompiliert und nach Möglichkeit auch in einem Emulator (oder zur Not auf einem per USB angeschlossenen SmartPhone) ausgeführt werden. Da für Cordova eine ganze Reihe an recht alten Bibliotheken (JDK 8) auf der einen Seite und den elend vielen Ressourcen im Fall von Android auf der anderen Seite verlangt werden, ist meine Workstation nicht passenden konfiguriert – von meinem Matebook mit der kleinen SSD ganz zu schweigen. Und ich habe keine Lust, nur für die Vorlesung meine gesamten Konfigurationen durcheinander zu bringen und zig Sachen da zu installieren, die ich sonst nicht mehr brauche.

Zwar habe ich einen passenden Docker-Container noch von der letzten Vorlesung vorbereitet und auf den neusten Stand gebracht und auch mein altes Terra-Notebook hat Cordova sogar mit Visual Studio verfügbar (das geht maximal bis Visual Studio 2017 und das habe ich aus dem Grund auch noch auf dem alten Notebook gelassen). Aber unter meinen Linux-Systemen klappt die Installation von Cordova und den Android-Ressourcen nicht so richtig. In dem parallel auf dem alten Notebook installierten Linux ist irgendwas zerschossen und ich kann gar keine Aktualisierungen vornehmen. Das muss ich vermutlich komplett neu aufsetzen. Und bei den virtuellen Maschinen habe ich sowohl bei VM Ware als auch VirtualBox eine Reihe von anderen – und ganz verschiedenen – Problemen. Alles nix Tragisches, aber es kostet Zeit und wenn ein Problem gelöst ist, kommt das nächste. Unbefriedigend und es raubt Zeit.

Da kam mir die Idee, entgegen meiner bisherigen Planungen vielleicht doch einen neuen Raspi zu kaufen und den als Linux-System ins lokale Netz zu hängen und je nach notwendigem Ziel immer wieder neu aufzusetzen. Also so eine Art Hardware-Docker-Container-VM-Ersatz. Ich hatte für den ersten Raspi so um die 35 – 40 EUR ausgegeben, bin mit der Erwartung gerade auf die Suche gegangen und fast vom Glauben abgefallen. Die wollen ja teils weit über 200 EUR für die Platine mit ein bisschen Krimskrams dazu. Ne, wirklich nicht. Das hat ja gar nichts mehr mit der ursprünglichen Idee einer möglichst billigen Platine zu tun. Ich schaue mal weiter oder vielleicht gebe ich doch alternativen Platinen eine Chance, bei denen nicht noch zusätzlich ein Hype die Preise hochtreibt. Oder lasse es.

Derzeit kann man wohl weder Sprit bzw. Öl als auch Hardware kaufen. Benzin muss leider ab und zu sein (auch wenn ich weniger fahre und zudem wenn möglich auf das Rad oder eBike umsteige), aber Hardwarekauf kann verschoben werden, bis die Preise wieder normal sind.

Mein Gerät finden – oder besser nicht?

Gerade überlege ich, ob ich das Feature „Mein Gerät finden“ auf meinem SmartPhone aktiviere – oder eben besser nicht. Auf der einen Seite wird das SmartPhone immer wichtiger. Nicht zuletzt durch Corona. Ob man will oder nicht. Auf der anderen Seite wird man durch zig Unternehmen und Organisationen bereits bis auf die letzten privaten Dingen ausspioniert. Neben Fratzenbuch und anderen a(sozialen) Netzwerken zeichnet sich ja auch Google (wahlweise Apple) durch ungebremste und vollkommen unkontrollierte Sammelwut aller persönlichen Daten aus. Jetzt auch noch permanent den Standort des SmartPhones denen überlassen? Irgendwo erinnert mich das an Faust und den Teufel.

Andererseits kann der Verlust des SmartPhones oder sogar nur die temporäre Nichtverfügbarkeit mittlerweile ziemlich negative Konsequenzen haben.

Klar – wer finanzielle Transaktionen mit dem SmartPhone macht, der ist selbst daran Schuld. Zahlungen mit Bargeld sind ja sowieso der beste Schutz der gesellschaftlichen Freiheit (unter dem Wirtschaftsaspekt) und wenn man schon nicht bar bezahlen kann, dann nimmt man eine EC-Karte oder macht Onlineüberweisung an einem etwas sicheren PC und nicht einem Tablet oder SmartPhone. Aber selbst dann kommen Freischaltcodes oft auf das SmartPhone.

Die Sache mit dem Impfstatus und Zugangsregeln wegen Corona wird auch aktuell ohne SmartPhone ebenso ziemlich unbequem bis schwierig. Als ich mich am Mittwoch „geboostert“ habe, war vor mir eine Schlange von über 50 Leuten, die alle vor dem Gebäude getestet werden mussten. Die Schlange war innerhalb von vielleicht 10 Minuten abgearbeitet – aber nur, weil das Testergebnis per E-Mail auf das Handy geschickt wurde. Eine andere Möglichkeit zum Erfahren des Testergebnisses gab es nicht. Deshalb extrem flotte Abarbeitung, aber Ausschluss von Leuten ohne SmartPhone. Echte Impfausweise aus Papier sollen ja in einigen Situationen demnächst auch nicht mehr anerkannt werden. Das zwingt zum SmartPhone, auch wenn damit m.E. das Fälschen von Impfzertifikaten extrem leichter ist. Aber das ist ein anderes Thema.

Schleichend ist das SmartPhone also immer wichtiger geworden und deshalb muss man es – zumindest aktuell – immer griffbereit haben, wenn man aus dem Haus geht. Ob man es gut findet oder nicht. Tja – und deshalb ist dieses Feature, mit dem man über ein anderes Android-Gerät oder einen Webbrowser herausfinden kann, wo sich sein Smartphone gerade befindet, so verführerisch. Ist es verloren, kann man das Gerät außerdem einen Ton abspielen lassen, sperren oder sogar Daten darauf löschen.

Aber damit das funktioniert, muss die Geolocation ständig an sein und natürlich das Gerät selbst. Punkt 1 habe ich immer deaktiviert – außer bei der Navigation – und auch sonst schalte ich das SmartPhone immer wieder aus oder zumindest offline. Das müsste ich lassen und mich damit voll in des Teufels Fänge begeben. Es ist ja so einfach – nur in den Einstellungen auf „Sicherheit“ tippen und dort „Mein Gerät finden“ aktivieren. Dann kann ich es halt leichter finden. Ich, Google und wer weis noch alles. Nur dann muss man ja auch über die Spracheingabe, die Kamera, das W-LAN, die mobilen Daten im Hintergrund etc. nachdenken und eigentlich alles deaktivieren. Was das SmartPhone letztendlich nutzlos macht. Klassisches „Wasch mich, aber mach mich nicht nass“-Problem.

EDIT: Mittlerweile habe ich die Sache mal ausprobiert. Wenn ich mich mit meinem Google-Account anmelde, kann ich aus dem Browser heraus auch das Gerät klingeln lassen, bei dem ich das Feature ausgestellt(!) habe und das Gerät auf lautlos steht. Krass – nur die Lokalisierung geht nicht. Zumindest nicht genau, denn in welchem W-LAN das Gerät angemeldet ist bzw. vor ein paar Minuten war, bekomme ich dennoch mitgeteilt. Da ich mehrere SmartPhones habe, habe ich auf meinem Testgerät das Feature aktiviert und da bekomme ich die Position so genau, wie es etwa bei der Navigation üblich ist. Einfach nur krass – in positiver als auch negativer Hinsicht.

Flottenzuwachs bei meiner Hardware

Sieht es nicht aus wie ein Microsoft Surface? Zumindest auf den ersten Blick?

Mein Rechner, den ich als permanenten PC in mein Büro in Eppstein verlagert hatte, macht langsam echte Zicken. Immer wieder versagt der Start. Der Akku des Motherboards scheint den Geist aufgegeben zu haben und auch sonst pfeift das Gerät auf dem letzten Loch. Die Hardware von heute taugt einfach nichts mehr. Nach gerade mal 15 Jahren solche Probleme ;-). Aber im Ernst – den Rechner habe ich nur noch im Dienst, weil ich darauf Windows XP habe und diese Windows-Version für Spellforce brauche. Aber da ersteigere ich mir auf ebay wohl eine Version, die auch unter Windows 10 dann laufen sollte. Und wenn ich mit der Kiste arbeiten will, wird Linux hochgefahren, aber wie gesagt – da muss ich ständig dem MBR rekonstruieren und vermutlich werden die Ratten demnächst die gesamte Hardware fressen. Das Teil werde ich wohl demnächst nur noch mit meinem Live-Linux vom USB-Stick zum Laufen bringen.

Bliebe noch mein halbherziger Apple-Versuch. Meinen Mac mini hatte ich bisher auch in Eppstein deponiert, aber ich komme mit Mac OS bzw. Apple einfach nicht zurecht. Für Musikmachen mit JamKazam ist der Mac mini genial, aber arbeiten kann ich damit einfach nicht. Und ich werde es nicht weiter versuchen, mich auf der Kiste zurechtzufinden. Das Ding trete ich an einen meiner Söhne ab – die sind sowieso schon iPad-verseucht.

Jetzt könnte ich mein Android-Tablet nach Eppstein verlagern, aber auch mein Tablet ist nicht mehr auf dem Stand der Zeit und hat mittlerweile ebenfalls ziemlich Gebrauchsspuren. Das Display ist etwaseit gut einem Jahr gerissen – auch wenn es sich noch bedienen lässt..Aber Tablets erscheinen mir sowieso als ziemlich überflüssige Gerätegattung. Sie können nichts wirklich besser als SmartPhones und alles schlechter als echte PCs. Und nur für ein bisschen im Bett in die Glotze zu schauen oder was zu lesen, brauche ich eigentlich kein Tablet.

Der perfekte Rechner ist im Grunde mein Matebook, Außer, dass die SSD etwas klein ist. Leicht, schmal, schnell, ausdauernd. Aber dennoch möchte ich auch das Ding nicht ständig zwischen meinen beiden Büros hin und her tragen. Vor allen Dingen nicht, wenn ich die 35 Kilometer durch Wald und Feld mit dem Rad fahre. Und es kommt auch vor, dass ich mal spontan in Eppstein vorbei schaue und da sollte dann ein voll synchronisierter Rechner stehen, mit dem ich ohne Einschränkungen arbeiten kann und Zugriff auf alle wichtigen Daten habe.

Was mich zu einem dauerhaften Windows-PC für da als einzige Option bringt. Aber die Möglichkeiten eines Tablets wollte ich dann doch haben und daher kam ich auf ein UBook oder wie das heisst. Also sowas wie eben ein Surface. Nur einmal sind dessen Preise abartig hoch und so oft brauche ich auf der anderen Seite das Ding dann doch nicht, dass es wirklich ein Power-Bolide werden musste.

Beim Prime Day von Amazon gab es nun für wirklich kleines Geld einen chinesischen Surface-Klon, den ich dann auch geschossen habe. Von einer Firma CHUWI, deren Name ich bisher noch nie gehört hatte. Vermutlich ist die aber – wenn man die chinesischen Dimensionen betrachtet – größer als alle Computerfirmen in Europa zusammen.

Egal – es ist ein absolutes Billiggerät und ich bin bewusst das Risiko eingegangen, dass ich Lehrgeld bezahlen muss, wenn das Teil Schrott ist. Nach dem klassischen Lehrsatz: „Wer billig kauft, kauft 2x“.

Aber der erste Eindruck ist gar nicht schlecht. Fühlt sich gar nicht billig an und die Ausstattung ist der Wahnsinn, wenn man den Preis betrachtet. Selbst Stift und Tastatur (leider nicht Deutsch) sind dabei. Leider nur Windows 10 in der Home-Edition, aber bei dem Preis kann man nicht mehr erwarten.

Die reinen Daten sind die:

CHUWI UBook Tablet mit Tastatur und H6 Stift, 11,6 Zoll IPS Touchscreen Windows 10 Tablet PC 2 in 1, Intel Gemini-Lake N4100 Quad-Cores, 8GB RAM 256GB SSD, BT5.0, Dual Band Wi-Fi, Type-C, USB3.0

Ich habe den Kleinen gerade mal gestartet und Windows soweit aktualisiert. Jetzt werde ich noch die nächsten Tage alle wichtigen Programme installieren, den überflüssigen Microsoft Schrott löschen (soweit möglich) und das Gerät so konfigurieren, dass ich damit arbeiten kann. Und ich muss natürlich ein bisschen genauer die Hardware ansehen und ein paar externe Geräte anschließen (das soll ganz gut gehen). Was ich aber schon direkt am Anfang bemerkt habe – der Tablet-Modus von Windows 10 ist ja grauenvoll. Ich hatte bisher noch nie diesen Modus gesehen und war einfach nur entsetzt. Ich werde das Teilchen wohl niemals in dem Modus betreiben – auch wenn ich es als Tablet einsetze.

Aber grundsätzlich scheint dieses kleine Ding für einen Apple-and-a-egg Ressourcen zu bieten, für die man bei anderen Herstellern locker das 5-Fache und auch noch mehr zahlen kann.

Bücher diktieren mit der Android-Spracherkennung

Neben meinen ganzen Videoaufnahmen für LinkedIn Learning (LiL) ist das Schreiben von Büchern immer noch eines meiner beruflichen Standbeine. Aber definitiv bin ich da nicht mehr so aktiv wie früher, denn der Buchmarkt ist beileibe nicht mehr attraktiv, wie es zu meinen Anfangszeiten als Autor war. Wenn ich mir vorstelle, dass mein – von den Verkaufszahlen – erfolgreichstes Buch mit allen Folge- und Querauflagen bei ca 175.000 Exemplaren gelegen hat (gut 90.000 in Deutschland und der Rest als Übersetzungen), kann einem schwindelig werden. Heute sind 1.000 verkaufte Exemplare von einem Buch schon bemerkenswert.

Trotzdem – ich schreibe auch weiter Bücher, weil es mir einfach Spaß macht und zudem habe ich dann Material für Schulungen. Ebenso macht es viel Sinn, um sich ein Thema gründlich zu erarbeiten, zu vertiefen oder zu reaktivieren. Wobei neue Themen in den letzten Jahren eher selten kamen. Vielleicht 1 Buch oder eine Schulungsunterlage im Jahr für meine großen Verlage, wenn ich das richtig sehe, aber durchaus auch mal mehr, wenn ich ein Thema im Selbstverlag herausbringen wollte. Häufiger überarbeite ich aber vor allen Dingen Werke von mir, die in die Zeit gekommen sind. So auch aktuell, wo ich eine Schulungsunterlage und ein Buch in der Werft liegen habe.

Eben kam mir die Idee, ob ich nicht die Möglichkeit zum Diktieren von Textpassagen nutzen sollte. Das hatte ich früher schon gemacht und mir damals eine Dragon-Lizenz gekauft. Das Programm könnte ich mir – da vom alten Rechner mittlerweile gelöscht – ganz legal auf die Workstation bzw. mein Matebook neu installieren. Aber meine lizenzierte Dragon-Version ist in die Jahre gekommen und so viel will ich damit nicht aufnehmen, dass sich eine neue Lizenz für mich lohnt – so gut das Programm auch ist.

Nun gibt es aber auch Spracherkennung in Windows 10 oder mit Microsoft Dictate oder Speak A Message. Habe ich gerade alles mal in Verbindung mit einem Editor ausprobiert. Nicht schlecht, aber auch nicht so gut, wie ich es etwa von der Spracherkennung auf meinem Android-SmartPhone gewohnt bin.

Also kam ich auf die Idee, warum nicht die Spracherkennung des SmartPhones nutzen. Die Qualität der Erkennung ist da einfach richtig gut – Datenschutz wegen Erfassung in der Cloud und bei Google außen vor. Nur müssen die so auf dem SmartPhone erfassten Texte dann auf den PC. Klar – das Ergebnis kann man mit E-Mail, WhatsApp etc. dann teilen. Aber das schien mir zu wenig „smart“.

Hier habe ich dann eine schöne Anleitung gefunden, wie man mit Unified Remote auf dem PC einen Server aufsetzt, der per W-LAN Kontakt zu der passenden App aufbaut. Dort kann man dann mit dem Basic Input und der Tastatureingabe auf der App das Mikrofon nutzen, um Text in die App zu bekommen, der parallel auf dem PC in einem Editor oder einem Textverarbeitungsprogramm auftaucht, da Client auf dem SmartPhone und Server auf dem PC synchronisiert werden. Einfach mal die Anleitung ansehen – easy und smart und die Texterkennungsqualität ist wirklich gut. Es ist aber ganz klar, dass ich dennoch die Texte erheblich nacharbeiten muss. Aber das ist sowieso bei mir der Fall – ich schreibe meine Ideen frei Schnauze runter und bringe sie erst mit mehrfacher Überarbeitung dann ins endgültige Format.

Wir wollen beim Mac Mini unser geliebtes „Space Grey“ wieder

Ich war früher regelrechter Apple-Gegner und habe mich von dem gesamten Habitat und dem Hype rund um diese „Religion“ richtig angewidert gefühlt. Außer bei ein paar Onlinetraining zur App-Entwicklung unter iOS bei LinkedIn Learning (LiL – damals noch Video2Brain) habe ich rein gar nichts mit Apple-Produkten zu tun gehabt. Aber da musste ich ja zwangsläufig mit einem Mac arbeiten (ein Mac Mini, der bei mir im Zweitbüro immer noch sein Gnadenbrot fristet). Aber sonst wollte ich einfach nicht an das Zeug ran. Selbst bei meinem Buch zu Cordova, bei dem es ja um Cross Plattform Entwicklung für Apps (und damit auch iOS) geht, konnte ich rein mit Linux und Windows als Entwicklungsplattform und Android, Windows Mobile und den Browser als Ziel-Plattform bzw. Emulation auskommen und damit iOS nebenher erschlagen.

Meine Kidds hingegen verwendeten irgendwann an der Schule und jetzt der Uni iPads, aber auch die haben mich absolut nicht überzeugt.

Eigentlich habe ich das erste Mal einen Apple als „richtiges“ IT-Gerät statt reines Mode- und Statusspielzeug wahrgenommen, als wir Corona-bedingt mit meiner Band nur noch virtuell mit JamKazam zusammenspielen konnten. Mit keinem anderen Rechner ist die Sache so gut gelaufen wie mit besagtem alten Mac Mini, der in meinem Büro in Eppstein verstaubte.

Nun bin ich sogar mittlerweile so weichgekocht, dass ich mir die Anschaffung von einem der neuen Mac Mini mit dem M1-Prozessor oder eventuell kommenden M2-Prozessor vorstellen kann. Die neue Architektur von Apple soll ja wirklich herausragend sein.

Mich schreckt noch das Betriebssystem ab (ich kann mit Mac OS nicht arbeiten – fertig), aber ich habe gelesen, dass ein virtualisiertes Windows 10 auf den Geräten schneller laufen soll als auf vergleichbaren Intel-PCs nativ. Das wäre ein gangbarer Weg, wobei die Kosten schon heftig sind und es derzeit wohl die Geräte nur mit winziger SSD (gerade mal 512 GB) und ebenso winzigem RAM (m.W. nur 8 GB oder vielleicht 16 GB) gibt. Aber ich denke schon, dass da demnächst praxisgerechtere Varianten mit vielleicht 1 TB SSD und mindestens 32 GB RAM auftauchen. Weniger sollte es in aktuellen Zeiten auf keinen Fall mehr sein und je nachdem, wie teuer sich Apple sich die Dinger bezahlen lässt, würde ich vielleicht sogar zuschlagen.

Nun habe ich deshalb ein bisschen in Apple-Magazinen gestöbert und eine Schlagzeile zu dem Mac Mini hat mich schon wieder massiv ins Zweifeln gebracht, ob ich mich wirklich in diese Welt begeben sollte? Da war das zu lesen:

Mac Mini – Space Grey kommt zurück
Viele stellten sich die Frage: Warum hat Apple den M1-Mac-Mini nicht in der Farbe Space Grey 2020 gebracht? …

Geht es noch? So etwas ist Thema in diesem Umfeld? Die Farbe?

Au weiha …

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.

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

 

 

Android Open Source Project

Ich habe gerade die Vorstellung von dem neuen Huawei Mate 30 gelesen und dort wurde als Problem aufgezeichnet, dass Huawei nicht an das vollständige Android von Google kommt, sondern aufgrund des Handelskriegs mit den USA „nur“ mit AOSP ausgeliefert werden darf.

Es würde also etwa der Play Store und all das vorinstallierte Zeug fehlen, was sonst auf den SmartPhone üblich ist.

Aber das ist doch klasse. Genau das, was ich will. Kein zugemülltes Gerät, bei dem man das störende Zeug nicht einmal deinstallieren kann. Sondern gezielt im Nachhinein auswählen kann, was man denn wirklich braucht.

Ich suche ja schon lange nach einem SmartPhone, das werkmäßig mit LineageOS oder einem anderen Custom Android ausgeliefert wird. Das ist einfach nicht zu finden und die USA erzwingen nun, dass zumindest Huawei-Geräte im Moment so ein verbessertes Android nutzen müssen – auch wenn das System, auf dem ja die Custom-Varianten explizit aufsetzen, von denen leider selbst wieder ziemlich missbraucht wird. Schon ein Witz.

Wenn nur das neue Huawei nicht so abartig teuer wäre (über 1.000 EUR, was schon fast Apple-Irrsinn nahekommt) und nicht ein paar elementare Harddetails (wie ganz primitiv eine Kopfhörerbuchse) fehlen würden, wäre das in der Tat ein Kandidat für mich.

Aber mal schauen – der Handelskrieg wird auch andere Geräte in vernünftigen Preisregionen in die richtige Richtung hinsichtlich des Betriebssystems bringen. Muss nur schauen, wie schwer die Chinafirmen das Rooten dann machen. Denn dass auch die kein Interesse daran, dass der Anwender sein Gerät unter Kontrolle hat und ohne Ausspionage verwenden kann, ist leider klar. In dem Punkt sind nicht nur die USA böse.

Wie finde ich ein geeeignetes neues Smartphone?

Mein Smartphone ist nicht mehr auf dem Stand der Technik (2013 erschienen) und macht immer mehr Mucken. Die Laufzeit lässt nach, obwohl ich bereits einen Austauschakku drin habe. Wobei das verständlich ist, denn auch den habe ich schon mindestens 2 Jahre in Verwendung. Dazu nervt es gewaltig, dass die anfängliche Lokalisierung per GPS immer ziemlich Zeit braucht. Das ist insbesondere beim Verwenden als Navi im Auto blöd. Überhaupt ist die Verwendung von meinem alten S4 als Navi nicht wirklich gut, denn – obwohl am Ladekabel des Autos angeschlossen – zieht diese soviel Strom, dass die Navigation der App nach etwa 2,5 Stunden den Akku leer gesaugt hat. Außerdem habe ich vermehrt Abstürze bei mehreren Apps (u.a. der Kamera) und mein LineageOS ist nicht mehr ganz auf dem Stand der Zeit. Für das alte Gerät gibt es m.W. aber auch keine aktuelleren Versionen oder zumindest klappt bei mir das Einspielen der Updates nicht (warum auch immer – ich habe zugegeben auch keine Lust, da zuviel Mühe reinzustecken). Und gerade im Urlaub die letzten Tage hatte ich immer wieder massive Probleme online zu gehen. Was durchaus am Provider bzw. dem Vertrag liegen kann, aber das alte Gerät hat vermutlich auch eine Teilschuld.

Ich denke also, dass ich mir mal wieder ein neueres Gerät zulegen könnte. Nur – ich finde kein Smartphone, dass meinen Anforderungen gerecht wird. Es gibt im Internet einige Konfiguratoren für Smartphones, aber die lassen nur die Auswahl von Kriterien zu, die mir vollkommen egal sind. Die Kriterien, die mir wichtig sind, lassen sich fast alle in keinem dieser Konfiguratoren eingeben (außer Preis und Betriebssystem).

Ich gebe mal die Kriterien zuerst an, die für mich ein Must-have sind:

  • Austauschbarer Akku mit mindestens 3000 mA – wenn möglich mehr – und maximal mögliche Laufzeit, was auch für die Navigation unabdingbar ist
  • Externe Speicherkarte
  • Kopfhöreranschluss (das ist in der Tat nicht mehr immer vorhanden)
  • Android oder ein alternatives Linux-OS
  • LTE/USB/W-LAN/IR/Bluetooth – dabei möglich guter Empfang für Telefon/Internet (da bräuchte ich Testergebnisse)
  • Möglichst gute Testergebnisse beim GPS-Empfang (Testergebnisse?), denn wie erwähnt – das Smartphone muss sich als Navi perfekt eignen

Dann gibt es noch eine Reihe an Features, die mir wichtig sind, deren Fehlen aber kein Ausschlusskriterium sind:

  • Wasserdicht und staubgeschützt
  • Max 5,5 Zoll-Display
  • Leicht zu rooten (ja, ich bin da mittlerweile nicht mehr so darauf fixiert, das Smartphone um jeden Preis rooten zu müssen – die Faulheit hat gesiegt und ich werde nur dann das Gerät rooten, wenn das mit vertretbarem Aufwand geht)

Vollkommen uninteressant für mich sind die Qualität der Kamera, des Displays, die Farbe, das Image und auch der Hersteller (außer natürlich kein Apple). Der Preis sollte natürlich nicht zu hoch sein (m.E. muss kein Smartphone 500 EUR oder mehr kosten – bis 150 EUR gibt es im Grunde alles, was man braucht). Kabelloses Laden brauche ich nicht, Fingerscanner und NFC will ich nicht (werde ich never-ever verwenden, aber bevor man deswegen ein Gerät ausschließt, kann man den Schrott ja ignorieren).

Aber wie gesagt – leider lassen sich die wichtigen Kriterien in keinem Konfigurator auswählen. Bleibt also nur die mühsame manuelle Suche nach einem Smartphone, dass sich sehr gut als Navi eignet und die Must-have abdeckt. Leider bisher noch keinen Kandidaten entdeckt, der ansatzweise infrage kommt? Jemand Ideen?

HarmonyOS statt Android und in Zukunft vielleicht macOS, Windows, …

Zyniker könnten behaupten, dass es Trump geschafft hat. Er hat einen großen Sargnagel für einige amerikanische IT-Unternehmen eingetrieben und sie zumindest wirtschaftlich massiv geschädigt. Denn es ist ziemlich offensichtlich, dass der Handelskrieg mit China im Allgemeinen und Huawei im Besonderen, den der verwirrte alte Mann im Evil Office ausgelöst hat, zur Entwicklung von HarmonyOS entscheidend beigetragen hat. Zumindest hat Trump China so unter Druck gesetzt, dass China bzw. dessen Staatsunternehmen alles unternimmt, um von den USA unabhängiger zu werden. Und bei Huawei führt das dazu, dass man in Zukunft Android nicht mehr braucht. Apple ist sowieso außen vor und damit bricht zumindest in China ein riesiger Markt für Google bzw. dessen Mutterkonzern Alphabet Inc. weg. Aber mit Android ist es nicht vorbei. Auch Windows & Co wird damit in vielen Bereichen möglicherweise obsolet, denn dieses HarmonyOS, wie HongmengOS im Westen genannt wird, kann und soll zwar am Anfang nur Android ersetzen, soll aber schon jetzt nicht nur auf Smartphones, sondern weiteren IoT-Geräten laufen. Was m.E. letztendlich irgendwann dazu führen wird, dass dieses System auch auf „normalen“ Computern oder eigentlich allen Systemen laufen kann.
Natürlich stellt sich die Frage, ob man dieses System im Westen einsetzen wird? Auch wenn es Open-Source ist, wird das System von der chinesischen Staatsmacht kontrolliert und dabei wird vielen Leuten sicher unwohl.

Aber der „winzige“ europäische Markt als auch der immer noch sehr kleine US-Markt sind aus dem Blickwinkel nicht wirklich wichtig. Der riesige Markt in China geht verloren. Und die aufstrebenden anderen Märkte in Asien und Südamerika sowie Afrika – warum sollten Sie US-Produkten den Vorzug geben, wenn die Politik dieses Landes so aggressiv rein auf US-Vorteile ausgerichtet und seit Trump vollkommen unkalkulierbar ist?

Ich prophezeie, dass der größte Teil des IT-Zukunfsmarkts in den nächsten Jahren mit fliegenden Fahnen auf HarmonyOS & Co überlaufen wird und die Amerikaner Trump dafür verfluchen werden.

irplus – Infrarot Fernbedienung

Ich mache normalerweise in meinem Blog nur Werbung für meine Videotrainings und Bücher respektive Produkten von diesen Verlagen. Aber jetzt muss ich mal eine Ausnahme machen und eine App loben, die ich gerade installiert habe und ich wirklich klasse finde – irplus – Infrarot Fernbedienung.
Seit ein paar Tagen ist die Fernbedienung von unserem TV-Reciver verschwunden und nachdem die sowieso ziemlich fertig war und zudem ständig die Batterien leer, bin ich auf die Suche nach einer App gegangen, mit der man per Infrarot den Reciver und auch noch gleich das TV-Gerät steuern kann. Ich habe dabei diverse Apps gefunden und auch einige ausprobiert. Gefunden habe ich von Top (eben besagte irplus, aber auch RCoid free oder AnyMote Smart Fernbedienung) bis Flopp alles. Manche Apps sind reine Fakes oder von Werbung verseucht oder unterstützen nur wenige Geräte. Und bei den wirklich guten Apps war irplus – Infrarot Fernbedienung die einzige kostenlose App, bei der man direkt mehrere Geräte parallel fernsteuern kann. Die Datenbank mit den verfügbaren Geräte ist riesig, die Einrichtung einfach und dennoch super zu konfigurieren. Das will ich in dem Blog honorieren und von mir eine uneingeschränkte Empfehlung aussprechen. Eine der besten kostenlosen Apps, die mir seit Langem untergekommen ist.

Spionage auf dem Tablet deaktivieren – zumindest ein bisschen

Im Moment ist ja das Thema Sicherheit durch „Wanna Cry“ wieder für ganz kurze Zeit in den Medien ziemlich laut. Und viele Leute sind aufgeschreckt und „wollen endlich mal was tun“. Das verläuft aber wie immer im Sand – bis zum nächsten großen Angriff, den die Medien ausschlachten können. Aber ein kleines Ärgernis in Hinsicht darauf, dass man vollkommen ausspioniert wird, kann man auf einem Android Tablet zumindest ausstellen (bei iOS wird das wohl auch ansatzweise gehen).
Etwas, was eigentlich so trivial und offensichtlich ist, dass ich bisher gar nicht darüber nachgedacht habe. Auch deswegen, weil mein altes Tablet kaum noch funktioniert hat und ich da eigentlich nur noch Schulungsunterlagen mit angezeigt hatte.
Aber als ich mit meinem neuen Tablet Youtube-Videos geschaut habe, ist mir wieder bewusst geworden, wie stark Google spioniert.
Ich achte zwar wie ein Schießhund darauf, dass ich am PC niemals bei Google, Facebook, etc. angemeldet bin, wenn ich anderen Content lade. Aber leider passiert es im Tran hin und wieder doch. Zudem kann ich beim SmartPhone kaum vermeiden, dass alle meine Aktionen von Google protokolliert werden. Natürlich werde ich da keine sensiblen Aktionen durchführen wie Onlinebanking, Onlineshopping etc. oder sonst persönliche Daten eingeben. Aber ich bin eben mit einem Konto eingeloggt und damit spionieren Google und Co alles aus – da hilft auch kein Firewall wie DroidWall. Wenn ich also auf Youtube was ansehe, dann speichert das Google.
Damit sind wir beim Ausgangspunkt – ich habe auf dem Tablet plötzlich Vorschläge für Videos erhalten, die ganz offensichtlich auf mich zugeschnitten waren. Denn ich verwende ja ein gemeinsames Konto. Nur ist es nicht so leicht mit einem Tablet zu surfen und vor allen Dingen nicht spezialisierte Apps zu verwenden, ohne dass da eben die Kontodaten zur Spionage verwendet werden.
Von daher nutze ich jetzt das umständliche, aber wohl einzig wirkungsvolle Verfahren, und lösche immer wieder alle Konten auf meinem Tablet. Wenn ich ein Konto brauche (etwa zum Installieren einer App aus dem Play Store), erstelle ich schnell das Konto neu und danach wird es wieder sofort gelöscht. Wirklich unbequem, aber wie oft braucht man eine neue App? Oder warum muss Google oder sonst ein Spion wissen, was man mit dem Tablet macht? Ein kleiner Schutz nur, aber ein bisschen mehr an Sicherheit und Privatsphäre.

Schnittmenge zwischen Job und Hobby

Es gibt hin und wieder Überschneidungen zwischen meinem Job und meinen Gleitschirm-Hobby. Gerade ist mal wieder so ein Tag. Dabei ist der Zusammenhang erstmal nicht offensichtlich, denn heute ist nur einfach mein neues Vario für das Gleitschirmfliegen angekommen. Das Vario – und das ist ja mein Aufhänger für diesen Post – hat es in sich und berührt auch meine fachliche Seite.

Ich habe ein Kobo Mini erstanden. Eigentlich nur ein ebook-Reader. Genau wie der Kindle. Der Kobo basiert auf einem Android/Linux-System und lässt sich hervorragend mit passender Hardware zu einem Vario aufrüsten. Ich habe das Gerät bei einem Fliegerkollegen im Einsatz gesehen und war sofort überzeugt. Das Display mit eInk-Technologie erlaubt ein perfektes Ablesen in
grellem Sonnenschein und aus jedem Winkel und zudem ist der Stromverbrauch sehr gering. Die Kommunikation kann kabellos über Bluetooth erfolgen, oder mit einem Kabel. Also eine super Basis. Dazu braucht es neben der Hardware aber noch gewisse weitere Software, damit das zu einem Vario wird.

Nun könnte ich meine Flieger-App, die ich mit Cordova für ein Buch als Referenz-App geschrieben habe, vermutlich auf das System sogar portieren.
Aber das ist gar nicht notwendig.
Die OpenSource Software XCSoar wurde entsprechend für diese Geräte angepasst. Da die Installation in jedem Fluggerät individuell gestaltet werden muss, ist auch hier etwas Arbeit notwendig, um das Teil zum Vario aufzurüsten. Wenn das jemand kann und die Zeit investieren möchte. Also Softwarearbeit (im Prinzip mein Job, aber auch Hardwarearbeit – und das mache ich nicht gerne). Ich wollte einfach ein neues Vario und deshalb habe ich nach einem entsprechenden schon konfigurierten Gerät gesucht und auf GGZ (Gebrauchtmarkt für Gleitschirme und Zubehör) wurde da ein aufgebaute Kobo Mini angeboten. Ich denke, dass ich bei den fertig zu kaufenden Standardvarios ein Vielfaches mehr bezahlen müsste, um etwas Gleichwertiges zu bekommen – selbst bei den Gebrauchtsangeboten.

Ich bin gespannt, wie sich das Gerät nutzen lässt und hoffe auf baldige fliegbare Bedinungen zum Ausprobieren.

Die Sache habe ich zum Anlass genommen und mein altes Vario Favorit von Aircotec auf ebay anzubieten. Ist schon eine ältere Version, aber immer noch zuverlässig. Optische Gebrauchspuren, aber technisch guter Zustand. Die zusätzliche Halterung kann am Gurtzeug befestigt werden. Das Vario ist ein Einsteigermodell ohne GPS, aber ich bin es über Jahre geflogen und kam gut damit zurecht.

Dazu auch gleich mein altes Gurtzeug Clever Karpofly. Das liegt seit Jahren im Keller nur rum (nach dem Motto – Ersatzgurtzeug für alle Fälle).

Das Gurtzeug ist m.E. noch ok, aber hat einige deutliche Gebrauchspuren bzw. kleine Beschädigungen (aber nicht an tragenden Teilen) und wird deshalb zum Groundhandlen oder Fliegen am Strand angeboten.