Dateimanager-Kidnapping

Wenn ein Programm sich erdreistet, Nautilus als Standard für das Öffnen von Ordnern abzulösen (Hallo, EasyTag!), reicht ein gio mime inode/directory org.gnome.Nautilus.desktop, um den Standard wieder herzustellen.

Mit gio mime inode/directory
lässt sich übrigens nachsehen, welche Programme sich zum Öffnen von Ordnern im System angemeldet haben. Visual Studio Code ist da auch ein möglicher Troublemaker.

Thunderbird: Schrift zu klein im Nachrichtenfenster

Wenn die Augen schlechter werden (oder der Bildschirm immer mehr Pixel auf dem gleichen Raum unterbringt) muss letztendlich die Schriftgröße erhöht werden. Auch Gleitsichtbrillen haben ihre Grenzen.

Den UI-Toom bei Thunderbird findet man ja leicht: Ansicht -> Zoom.
Die Schriftgrößen befinden sich in den Einstellungen.
Trotzdem bleiben einige Emails in der Vorschau und in den Nachrichtenfenstern einfach mit zu kleiner Schrift zurück. Man kann zwar mit Mausrad oder STRG++ zoomen, aber der Zoomfaktor wird nicht dauerhaft gespeichert. Grrrr!

Abhilfe schafft ein Post in diesem Reddit-Thread:

  • Das Addon „Control Button“ in Thunderbird installieren.
  • Damit „about:config“ in Thunderbird öffnen.
  • „font.minimum-size.x-unicode“ auf einen höheren Wert als „0“ setzen. Bei mir hat sich „22“ bewährt.

Ubuntu: IR Webcam bei Tuxedo Laptop dauerhaft ausschalten

Wie ich beim Starten von OBS lustigerweise feststellen durfte, hat mein neuer Tuxedo-Laptop eine Infrarot-Webcam eingebaut. Das ist sicherlich nett, wenn man in völliger Dunkelheit an einer Videokonferenz teilnehmen möchte, stört mich allerdings doch sehr.

Erschwerend kommt hinzu, dass der Schieber, der die normale Webcam abdeckt, die IR Variante nicht abdeckt. Das wäre auch egal, da auch ein Bekleben mit einem dieser kleinen Aufkleber vom Bundesministerium für Familie, Senioren, Frauen und Jugend nicht geholfen hat. Ich habe es extra ausprobiert.

Wie wird man diese Kamera also los?
Gucken wir doch mal nach den Komponenten:

joachim@nargacuga:~|⇒  lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 004: ID 8087:0032 Intel Corp. AX210 Bluetooth
Bus 001 Device 016: ID 045b:0209 Hitachi, Ltd 
Bus 001 Device 017: ID 045b:0209 Hitachi, Ltd 
Bus 001 Device 018: ID 046d:c077 Logitech, Inc. Mouse
Bus 001 Device 019: ID 046d:0a9c Logitech, Inc. G432 Gaming Headset
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 05e3:0620 Genesys Logic, Inc. GL3523 Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 2b7e:c858 Kingcome FHD WebCam
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Treffer: Bus 003 Device 002: ID 2b7e:c858 Kingcome FHD WebCam ist die Webcam. Anscheinend sowohl die IR als auch die normale Webcam. Ich hatte ja gehofft, es wären getrennte Komponenten, aber man kann ja nicht alles haben.

Jetzt zügig eine Datei namens: /etc/udev/rules.d/80-kingcome-fhd-webcam.rules erstellt mit folgendem Inhalt:

# blacklist Kingcome FHD WebCam
SUBSYSTEM=="usb", ATTRS{idVendor}=="2b7e", ATTRS{idProduct}=="c858", ATTR{authorized}="0"

Einen Reboot später ist die Webcam deaktiviert.

openSUSE -> Ubuntu

Nach acht Jahren Dauerbenutzung (und einem Lüfterwechsel) war klar, dass mein Laptop ersetzt werden musste. Da ich mit der Hardware von Tuxedo Computers sehr zufrieden war, wurde es natürlich wieder ein Linux-Laptop des gleichen Herstellers.

Mein alter Laptop. Mit vielen Aufklebern versehen.
Mein alter Laptop. Mit vielen Aufklebern versehen.

Diesmal allerdings nicht mit openSUSE Tumbleweed, also der Rolling-Release Version, sondern mit Ubuntu LTS. Die Gründe dafür sind vielfältig:

  1. Ich nutze Ubuntu LTS auf meinem heimischen DNS/Printer-Server. Der installiert Updates zwar fast automatisch und muss daher kaum gewartet werden, aber zwei unterschiedliche Distributionen zu verwalten wurde auf die Dauer doch anstrengend.
  2. openSUSE Tumbleweed ist ein gutes Produktivsystem. Trotzdem hatte ich in der letzten Zeit immer wieder Probleme bei den Updates, die zwar leicht zu beheben waren, aber immer Zeit kosteten, die ich auf die Dauer nicht mehr investieren wollte.
  3. Einige Software, die ich unter openSUSE selbst kompilieren musste (Hallo, uxplay und LocalSend!) ist unter Ubuntu bereits als Paket verfügbar. Das spart Zeit und Nerven!

Also „fix“ das alte /home auf eine externe SSD kopiert und nach dem Auspacken des neuen Laptops auf den neuen Rechner transferiert. Nach dem Neustart war das System direkt wieder einsatzbereit, aber mein Desktop sah aus wie eine häßliche Mischung von openSUSE-Gnome und Ubuntu-Gnome. Ein beherztes dconf reset -f / setzte sämtliche Gnome-Einstellungen zurück und die Oberfläche wurde zu einem reinen Gnome mit Ubuntu-Geschmack. Sieht nicht schlecht aus, kann daher erstmal bleiben. Ein paar Änderungen habe ich allerdings vorgenommen:

  1. Freon: Ich möchte einfach ein paar Systemdetails im Blick behalten. Das Paket lm_sensors musste ich zusätzlich noch installieren, da es nicht zur Standard-Installation von Ubuntu zu gehören scheint.
  2. Coverflow Alt-Tab: Ganz ehrlich, der Gnome Tab-Wechsler zieht niemandem die Wurst vom Brot. Coverflow Alt-Tab ist daher ein Muss. Es sieht nicht nur besser aus, sondern lässt sich auch einfacher bedienen.

Damit war der erste Teil des Umzugs erledigt. Was folgte waren die Druckereinrichtung, welche sich dank des Printer-Servers im Netzwerk als sehr angenehm erwies. Der steinalte (>15 Jahre) HP Farblaser wurde direkt gefunden und funktionierte ohne weitere Installation oder Einstellungskorrektur. Für den neueren S/W-Laser von Kyocera habe ich das Treiberpaket installiert damit der Duplexdruck möglich ist. Getestet habe ich ihn allerdings noch nicht.
Seit mein Schulträger unseren Schülerinnen und Schülern eine 1:1 Ausstattung mit iPads ermöglicht hat, ist mein Bedarf an Ausdrucken merklich zurück gegangen.

Jetzt wollte noch die restliche Software installiert werden, was dank apt und aptitude zwar erfreulich einfach geht, aber voraussetzt, dass man den Paketnamen schon kennt. Vom Hersteller runtergeladene Pakete (Visual Studio Code, Vivaldi, LocalSend, Signal, …) sind mit einem einfachen sudo apt install ./[Paketname.deb] schnell auf dem System.

Suchen nach Software mit aptitude ist allerdings ein Graus, weshalb ich recht zügig Synaptic nachinstallierte. Das vereinfacht die Suche sehr.

Bin ich jetzt rundum glücklich? Nicht ganz, denn mit pCloud gibt es Synchronisationsprobleme, die noch gelöst werden wollen.
Außerdem fehlt mir, zumindest für einige Konfigurationsschritte tatsächlich das von openSUSE erstellte Tool YaST. Das Gnome-Control-Centre ist wunderbar, aber nicht in allen Fällen ein vollwertiger Ersatz.

Türklopfer, Türzieher und Co.

Ich gestehe, ich habe ein Faible für Türklopfer, Türzieher, Türverzierungen und andere häufig in alten Innenstätten auftretenden Verzierungen an Häusern und Türen.
Jedes Mal, wenn ich etwas derartiges sehe, muss ich einfach ein Foto davon machen. Auf dem aktuellen Urlaub hat sich da wieder mal etwas angesammelt, von dem ich hier eine kleine Kostprobe geben möchte.

Fangen wir mit einem Konterfei von Dante Alighieri an. Zu finden über einer Tür in Lucca:

Ein sehr angenehmer, grimmiger Blick. Da möchte man doch gerne eintreten, oder?
Da lächelt der folgende Türklopfer ja geradezu freundlich. Es scheint, der Inhaber dieses Hauses hat einen zum Fressen gern. Ebenfalls entdeckt in Lucca:

Einen Hauch einladender gebiert sich dieser Türknauf, ebenfalls aus Lucca. Ein schönes Stück und ein echter Handschmeichler:

In Pisa dagegen, also der Stadt mit dem schiefen Turm, geht es teuflisch zu. Hier muss man an manchen Eingängen sehr mutig sein. Hoffentlich wird nicht die Seele als Pfand bei Eintritt hinterlegt. Interessant, aber nicht sehr einladend:

Aber es geht ja auch anders. Beim folgenden Türklopfer scheint es geistigen Beistand zu geben. Zumindest mir scheint dieser Klopfer eine kreuzförmige Form zu haben. Ob er sich an einer Kirchentür befand, verrate ich aber nicht.

Gleiches gilt auch für die folgenden sehr auffälligen Kreuze an einer Tür in Pisa:

Ein Kreuz ist bekanntermaßen das Wappen der Stadt, allerdings schaut es ganz anders aus.

Verlassen wir kurz die Toskana und bewegen uns etwas nach Norden. Dort befindet sich, direkt am Gardasee, die kleine, leider mit sehr vielen Touristen gefüllte, Stadt Sirmione. In der Altstadt kann man eine Menge entdecken:

Diese Sonnenuhr zum Beispiel. Die Zeit zeigte sie nie an, weil die Gasse so eng war, dass kein direkter Sonnenstrahl sie treffen konnte.

Nicht weit von der Sonnenuhr entfernt fand sich diese abstrakte Skulptur neben einer Haustür. Aus der Entfernung sah sie zunächst wie ein zerknülltes Taschentuch aus, bei näherer Betrachtung war es dann doch Kunst. Zum Schluss noch ein verwitterter Türbogen. Leider ist das Wappen nicht mehr zu entziffern:

Machen wir noch einen letzten Abstecher in die Toskana: Florenz!
Und ich muss sagen: Florenz ist echt eine Reise Wert. Nicht nur wegen des Galileo Galilei Museums, sondern auch wegen der zahlreichen Türornamente.

Vor allem Löwen in allen Varianten scheinen dort sehr beliebt zu sein. Von goldenen Löwen …

… über doppelte, schon etwas zerknautschte, Löwen …

… zu sehr königlich geschmückten Häuptern war alles zu finden.

Florenz: Museo Galileo

Wer in Florenz den Touristenmassen entfliehen möchte (oder kein Ticket/keinen Timeslot für eines der bekannteren Museen ergattern oder buchen konnte) sollte sich das kleine Museo Galileo ansehen.

Thematisch beschäftigt sich das Museum natürlich mit der Beschreibung und Vermessung unserer Welt, ist aber nicht darauf beschränkt. So werden neben verschiedenen Instrumenten zur Navigation (z.B. Astrolabien und Jakobsstäbe) auch Rechenhelfer, Uhren, Mikroskope, Karten und Globen präsentiert. Auch die Verwendung der Exponate für kriegerische Zwecke findet Beachtung.
Ein Teil des Museums widmet sich der früheren Vermittlung von naturwissenschaftlichem Wissen durch Experimente und Modelle. Sehr sehenswert sind hier die medizinischen Modelle zu Schwangerschaft und Geburt.

Erfreulicherweise gibt es in den Räumen Videodisplays auf denen durch Filmvorträge die Funktionsweise der Exponate erklärt werden. Leider nur auf Italienisch oder Englisch. Den hilfreichen Museumsführer gibt es glücklicherweise auch auf Deutsch.
Aber auch ohne den Führer lohnt sich der Besuch. Mir wurde hier zum ersten Mal klar, wie so ein Astrolabium tatsächlich zur Navigation genutzt wurde.

Faszinierend fand ich, dass bei einigen Instrumenten auch die dazugehörigen Anleitungen bzw. Handbücher ausgestellt waren. Da hat doch tatsächlich jemand über hunderte von Jahren die Handbücher aufbewahrt!
Hier ist ein Beispiel für ein mir völlig unbekanntes Instrument:

Galileo Galilei ist übrigens auch im Museum anwesend. Zumindest sein rechter Mittelfinger als wohl skurilstes Exponat:

Lustiges mit Wear OS: TicWatch Pro 3 Ultra GPS

Nach einigen Monaten mit einem Xiaomi Band 8 am Handgelenk fielen mir zwei Dinge auf:

  1. Es ist nett, am Handgelenk benachrichtigt zu werden während das Telefon in der Tasche bleiben kann. Das ist im Unterricht ein echter Vorteil.
  2. Das Display dieses smarten Gerätes ist verdammt klein. Viel zu klein für meine alten Augen.

Es musste also etwas größeres her. Bei einem guten Freund hatte ich eine TicWatch gesehen, die mir echt gut gefallen hat. Vor allem der Essential Mode, bei dem das Display ohne Beleuchtung die wichtigsten Informationen konstant anzeigt, hat mir gefallen.

Es wird smarter…

Meine erste SmartWatch wurde somit eine TicWatch Pro 3 Ultra GPS. Selbige updatete sich direkt erst einmal auf Wear OS 3.5 und ich ergänzte sie anschließend um einige Zifferblätter und Apps. Besonders hervorheben kann ich zwei Apps von Amoledwatchfaces:

  • Komplikationen-Suite – Wear OS
    • Bringt einige Komplikationen auf die Uhr, die mir vorher gefehlt haben: unter anderem Kalenderwoche, Mondphase, …
  • Favorite Apps Tile for Wear OS
    • Bietet die Möglichkeit, häufig genutzte Apps gruppiert auf Ansichten abzulegen. Ein Gefummel mit der App-Liste läßt sich damit gut vermeiden.

Gefummel

Apropos Gefummel: Meinen Paypal-Account mit Google Wallet auf der TicWatch zu verbinden war ein Gefummel sondergleichen. Ich habe es drei Tage immer wieder probiert und es brach immer wieder mit der gleichen Fehlermeldung ab. (Natürlich war die Fehlermeldung nicht hilfreich. Und selbstverständlich läßt sich der Account schon seit Jahren auf dem Handy zum Bezahlen nutzen.) Am vierten Tag, klappte es dann doch noch und zwar ohne das ich irgendetwas geändert hatte. Verrückte Welt.

Verrückte Welt

Da wir gerade bei der verrückten Welt sind: Die TicWatch kann ja einiges automatisch: ganztägiges überwachen von Blutsauerstoff und Puls, automatisches Erkennen von sportlichen Übungen und Schlaf.
Dabei ist mir etwas lustiges aufgefallen. Wenn man, zum Beispiel weil man kein Sportler ist, die automatische Erkennung von sportlichen Übungen ausschaltet, funktioniert auch die Schlaferkennung nicht mehr. Schaltet man die Übungsüberwachung wieder ein, wird auch der Schlaf wieder erkannt. Komisch, aber so steht es geschrieben.

Mermaid Spickzettel

Durch einen Post im Fediverse bin ich auf Mermaid.js gestoßen, eine wunderbare Möglichkeit schnell und einfach verschiedene Diagrammtypen innerhalb eines Markdown Dokumentes zu erstellen. Die Syntax ist sehr einfach, aber trotzdem mächtig genug für komplexe Diagramme.

iWriter Pro auf dem iPad. Links die Live-Vorschau, rechts das editierte Markdown Dokument.

Netterweise unterstützen sowohl Visual Studio Code (mit einem Markdown Plugin) am PC und iWriter Pro auf dem iPad die Syntax, so dass ich wohl in Kürze im Unterricht darauf zurück greifen werde und meine kläglichen handschriftlichen Kritzeleien damit endlich ein Ende finden können.

Für die wichtigsten Diagrammtypen habe ich mir einen Spickzettel erstellt, den ich euch nicht vorenthalten möchte:

create-table: Tabellen für Markdown in Python erstellen

Da ich hin und wieder Tabellen in meinen Markdown-Dateien benötige, aber eigentlich immer wenig Lust habe diese händisch anzulegen, habe ich mir ein kleines Python-Skript erstellt, das die Arbeit für mich erledigt.

Mit einem „create-table.py Spalten Zeilen “ erhält man eine Tabelle mit der gewünschten Spalten- und Zeilenanzahl. So ergibt „create-table.py 3 4“ diese formschöne Tabelle direkt in der Konsole:

|   |   |   |
|---|---|---|
|   |   |   |
|   |   |   |
|   |   |   |

„create-table.py Spalten Zeilen Dateiname“ gibt die Tabelle nicht nur auf der Konsole aus, sondern speichert sie auch in einer Datei. Ich find’s praktisch.

Wer sich das Skript anschauen mag: Hier ist das Github-Repository.

Python und Gleitkommazahlen

Da ich dieses Halbjahr im Wahlpflichtfach Informatik nach langer Zeit mal wieder in Python programmieren wollte, habe ich meine Beispielprogramme einer kurzen Prüfung unterzogen. Bei einem Programm stutzte ich allerdings dann doch über die Ausgabe:

# Variablen
geld = 10
kostenProTuete = 1.20
anzahlTueten = 0

# Twilight Sparkle geht einkaufen
while geld - kostenProTuete > 0:
    geld = geld - kostenProTuete
    anzahlTueten = anzahlTueten +1

print("Twilight Sparkle hat", anzahlTueten, "Panini Tüten gekauft.")
print("Sie hat noch", geld, "übrig.")

Folgendes wurde vom Programm ausgegeben:

Twilight Sparkle hat 8 Panini Tüten gekauft.
Sie hat noch 0.3999999999999999 übrig.

Äh, what?
Ich dachte eigentlich, dass Münzen kleiner als 1 Cent nicht mehr im Umlauf wären, der Halfpenny ist ja schon länger nicht mehr zu bekommen.

Tja, vermutich ein Bug in Pyto, der Entwicklungsumgebung, die der beste Schulträger von allen auf den iPads der Schüler installiert hat. Also schnell auf dem heimischen iPad mit Pythonista getestet: Gleiches Ergebnis.

Ok, es gibt ja noch a-shell, da ist auch ein Python mit dabei! Gleiches Ergebnis. Wie übrigens auch unter Python auf dem PC. Dort habe ich dann direkt noch etwas herumgespielt:

10-1.1
8.9
8.9-1.1
7.800000000000001
7.8-1.1
6.699999999999999
6.6-1.1
5.5
5.5-1.1
4.4
4.4-1.1
3.3000000000000003
3.3-1.1
2.1999999999999997
2.1-1.1
1.0

Das sieht nicht gesund aus. Das sieht gar nicht gesund aus! Eine kurze Recherche später landete ich auf dieser Seite: What Every Programmer Should Know About Floating-Point Arithmetic or Why don’t my numbers add up?

Kurz eingelesen und schlau gemacht: Rundungsfehler bei der Speicherung der Zahlen sind für die merkwürdigen Ergebnisse verantwortlich. Übrigens in fast allen Programmiersprachen, wie dieser wunderbaren Übersicht zu entnehmen ist.

Als Lösung kann man in Python das Modul „decimal“ verwenden, wie der Spickzettel vorschlägt. Ich glaube aber nicht, dass ich meinen SchülerInnen das vorschlagen werde, schließlich sind es allesamt Programmieranfänger. Außerdem tut es ihnen gut zu wissen, dass Computer zwar schneller rechnen können, aber nicht besser!