Vergangene Woche ist bei meinem Fahrrad vollkommen unerwartet, dort wo der Fahrradständer an den Rahmen geschraubt ist, ist der Rahmen gebrochen. Da das ein Aluminium-Rahmen ist und das an einer stark beanspruchten Stelle ist, ist das ein Totalschaden. Plötzlich, einfach aus dem Nichts, ohne Unfall, als ich das Fahrrad einfach nur kurz abstellen wollte.

Das Fahrrad hatte ich mir vor knapp zehn Jahren ganz nach meinen Wünschen bei Poison Bikes zusammen bauen lassen. Dabei hatte ich das erste Mal auf Riemenantrieb, Nabenschaltung und Scheibenbremsen gesetzt und mir vorgenommen sämtliche Wartungen am Fahrrad selbst vorzunehmen. Das hat auch recht gut funktioniert. Während der Zeit hat das Fahrrad keine Fahrradwerkstatt von innen gesehen. Neben üblichen Wartungstätigkeiten habe ich auch einige Umbauten vorgenommen und so zum Beispiel die Federgabel gegen eine starre Gabel ausgetauscht und den Riemen und die Riemenscheiben ersetzt und dabei die Übersetzung der Schaltung optimiert.

Seit Kauf war ich mit dem Fahrrad 39.186 Kilometer gefahren und es war mir sehr ans Herz gewachsen. Ich hatte gehofft, es noch mehrere Jahrzehnte nutzen zu können. Daraus wird nun nichts und ich überlege, wie ich an einen würdigen Nachfolger komme. Noch mal eins über Poison Bikes zu kaufen fällt als Option leider raus, da die inzwischen pleite gegangen sind. An sich würde es sich anbieten ein Fahrrad von Grund auf selbst aufzubauen, ob ich dazu aktuell allerdings die Zeit und Nerven habe ist fraglich.

Bis ein neues Fahrrad da ist, kann ich glücklicherweise das Vorgängerfahrrad nutzen, dass ich vor ein paar Jahren komplett überholt und genau für solche Fälle vorgesehen habe. Das ist nicht optimal, aber allemal besser als komplett ohne Fahrrad da zu stehen.

Ich weiß nicht, ob es nur mir so geht, aber seit einer Weile, vielleicht seit einem Jahr, beobachte ich, dass bei Supermärkten immer mehr Einkaufswagen unangeschlossen da stehen und keine Münze als Pfand benötigen. Zwar ist ein Großteil der Einkaufswagen immer noch angeschlossen, aber bei den meisten meiner Supermarktbesuche gibt es direkt einen oder meist sogar mehrere unangeschlossene Einkaufswagen. Während ich das aus Gründen der Benutzbarkeit begrüße, irritiert und amüsiert es mich doch gleichermaßen.

Gerade läuft auf dem Portal des Petitionsausschusses des Bundestags eine Petition, die mir sehr am Herzen liegt: Petition 180180: Vermögenssteuer auf alle Vermögensarten

Dabei geht es um die Wiedereinsetzung der seit 1997 ausgesetzten Vermögenssteuer. Die Schere zwischen arm und reich geht seit Jahren steil auseinander und während diverse Politiker und Medien gerne nach unten treten und eine weitere Aushöhlung des Sozialstaates fordern, gibt es genügend Bürger die mehr als genug Vermögen haben, um zum Wohle aller auf einen kleinen Teil davon zu verzichten.

Ich würde mich freuen, wenn der eine oder andere diese Petition mitzeichnet, so dass am Ende nicht nur das Quorum von mindestens 30.000 Unterstützern erreicht wird, sondern mit einem vielfachen dessen ein deutliches Zeichen für die Wichtigkeit dieser Forderung gesendet wird.

Ich höre gerne und viel Musik. Teils über Lautsprecher, teils über Kopfhörer. Bisher habe ich als Kopfhörer „Sennheiser HD 202“ verwendet, die ich vor 15 Jahren für 20 € gekauft habe und die vom Klang her für meine Ansprüche vollkommen in Ordnung waren. Da die Kopfhörer aber kürzlich mit einem Kabelbruch das Zeitliche gesegnet haben und es dieses Modell längst nicht mehr zu kaufen gibt, war ich auf der Suche nach neuen Kopfhörern. Wichtig war mir dabei, dass die Kopfhörer möglichst neutral klingen und nicht wie viele „moderne“ Kopfhörer Bässe überbetonen. Dafür war ich auch bereit mehr Geld auszugeben.

Nachdem ich aufgrund von Empfehlungen erst die beyerdynamic DT 770 PRO ausprobiert hatte und aufgrund der für mein Gehör fast schon schmerzhaft aggressiven Höhen ziemlich enttäuscht davon war, bin ich nun bei beyerdynamic DT 700 PRO X Kopfhörern gelandet. Die kosten mit 225 € zwar mehr als zehnfache der alten Sennheiser HD 202, aber meine Güte sind die gut. Ich ertappe mich regelmäßig dabei, dass ich darauf aufmerksam werde, wie detailliert und klar Musik mit diesen Kopfhörern klingt. Und das ist auch der Grund, weshalb ich diesen Post schreibe: Falls jemand auf der Suche nach wirklich guten Kopfhörern ist, die „beyerdynamic DT 700 PRO X“ sind ziemlich beeindruckend. Einziges Manko: Durch die Qualität der Kopfhörer hört man umso deutlicher, wenn Musik nicht gut gemastert wurde.

Seit knapp acht Jahren fahre ich ein Fahrrad mit Gates CDX Riemenantrieb. Eine häufige Frage, die ich dazu bekomme ist, wie oft der Riemen getauscht werden muss. Eine wirklich gute Antwort auf diese Frage habe ich nicht, denn auch nach über 28.000 Kilometern funktionierte der originale Riemen noch tadellos.

Gestern habe ich dann aber doch mal den Riemen und die beiden Riemenscheiben getauscht, denn auch wenn der Riemen noch gut funktionierte, so waren die Riemenscheiben schon ziemlich abgenutzt und ich hatte die Befürchtung, dass insbesondere die vordere Riemenscheibe demnächst aufgeben könnte. Wie auf den Bildern zu sehen, war da bei den einzelnen Zähnen kaum noch Material übrig. Jetzt hoffe ich, dass der neue Riemen und die neuen Riemenscheiben wieder genauso lange halten.

Ab Juli fällt das Nebenkostenprivileg, mit dem Hauseigentümer bisher Kabelanschlusskosten für alle Mieter auf die Nebenkosten umlegen konnten, weg. Das Ganze basierte auf der Annahme, dass es in Summe günstiger ist, wenn Hauseigentümer Verträge mit größeren Volumina abschließen, als wenn das jeder Mieter einzeln tut.

Entsprechend wurde bei der Entscheidung das Nebenkostenprivileg abzuschaffen vorhergesagt, dass dadurch die Kosten für Mieter, die weiterhin einen Kabelanschluss nutzen wollen, steigen würden. So schrieb zum Beispiel die Verbraucherzentrale:

Realistisch gesehen wird sich der Kabelanschluss zwar leicht verteuern, aber diese Erhöhung wird sich nach Einschätzung der Verbraucherzentrale im Bereich von maximal 2 bis 3 Euro pro Monat bewegen. Erste Erfahrungen zeigen, dass bei gekündigten Mehrnutzerverträgen der Preis für den entsprechenden Einzelnutzervertrag bei ca. 8-10 Euro pro Monat liegt.

In der Realität sieht das bei uns erfreulicherweise anders aus: Bisher zahlen wir 8,68€ pro Monat für unseren Kabelanschluss, ab Juli dann nur noch 4,90€ für die gleiche Leistung. Ein freier Markt hat doch manchmal etwas gutes.

Since version 8.1 Android implements something called “anti-falsing” for swipe actions on the lock screen, which are supposed to bring up the controls to input the pin or passphrase for unlocking the phone.

Anti-falsing in this context simply means that Android tries to figure out if a swipe action was intentionally or not. While I’m not entirely sure about the intention behind this behavior, I believe it’s to avoid unintended tries to unlock the phone and unintended emergency calls in cases where the phone is in a bag or pocket.

While the heuristics for identifying an unintentional swipe aren’t as simple, in practice this behavior means that a swipe on the lock screen has to cover a larger distance than everywhere else to be successful. With its default settings on my phone this means it’s required to swipe across half of the screen to get the controls shown, which is annoying to say the least, as it becomes difficult to do so successfully with a single hand.

As I had no problems with unintended swipes before, I searched for ways to disable this behavior. While older Android versions provided a build time configuration option to disable it, this option got removed with Android 12. So with Android 12 I had to look for other ways and as it turned out there are certain conditions which disable this behavior as well. Anti-falsing gets disabled if the device is for example sitting in a dock or if accessibility features are enabled. This meant that installing and enabling an accessibility service which did nothing other than being an accessibility service was sufficient to get it disabled and that’s what I did.

Unfortunately that didn’t last for long as Google tweaked the criteria for disabling the anti-falsing behavior with Android 12L to not only require any accessibility service to be enabled, but to have one enabled which implements touch exploration. As using an accessibility service which implements touch exploration would’ve meant changed behavior for touch events in general, I started looking for another solution again.

What I found in the end is much better than any of the previous solutions. While it’s no option to disable the anti-falsing behavior, it’s an option to change the value for the necessary distance covered by the swipe to be detected as an intended swipe. That means by using this option it’s not only possible to completely disable anti-falsing, but also to tweak its sensitivity to personal preferences. This option can simply be set via adb like that:

adb shell cmd device_config put systemui brightline_falsing_distance_screen_fraction_max_distance 0.1

Once set swiping on the lock screen should feel much more natural again.

Ich bin gerade etwas sprachlos. Ich habe hier ~35GB JSON-Daten. Diese Daten sind das Ergebnis des crawlens einer öffentlich verfügbaren API alle fünf Minuten für ein Jahr. Die Antworten der API haben eine durchschnittliche Größe von ~330KB und unterschieden sich oft nur im Zeitstempel oder zusätzlich in kleineren Details. Das sind also durchaus viele redundante Daten. Initial habe ich jede Antwort mit gzip komprimiert und als einzelne Datei gespeichert. Im Vergleich zur unkomprimierten Größe hat das zwar nur 2GB Speicherplatz benötigt, aber ich war unglücklich mit der großen Anzahl an Dateien und wollte die Daten gerne noch etwas besser komprimiert haben, so dass ich sie jetzt zu einer einzelnen JSONL-Datei zusammengeführt und diese anschließend mit Zstandard (mit Kompressionstufe 19) komprimiert habe. Anschließend habe ich mir erst mal verwundert die Augen gerieben und meinen Fehler gesucht, denn das Ergebnis war nur noch 5,3MB groß. Megabyte, nicht Gigabyte! Aber offensichtlich hat das alles seine Richtigkeit: Dekomprimiere ich die 5,3MB große Datei, bekomme ich alle 35GB an JSONL-Daten wieder. Das nenne ich mal effiziente Kompression.

I discourage use of machine learning, because it’s really difficult. Unless you have to use machine learning, don’t do it. It’s usually a red flag when somebody is saying “We wanna use machine learning to solve this task”. I’m like: That sounds like bullshit. 99.9% of the time you don’t need it.
– Elon Musk

That’s a statement made by Elon Musk during past weeks “Tesla AI Day” when being asked if Tesla also uses machine learning for other applications than autonomous driving.

It sums up pretty nicely what I think about useful use cases for machine learning as well. I believe there is often a much more simpler and faster way to achieve a desired result. Machine learning done right is hard and requires a lot of knowledge, training data and compute capacity to get right. Otherwise you might end up with an unfit model whose output looks good, but actually isn’t, which might not be obvious as the reasons for decisions made by the model are too opaque.

Heute hat mir das jahrelange Rumgenerve mit Outlook.com und allen Domains die da noch so dazugehören (z.B. hotmail.de) gereicht: Es war praktisch nie möglich E-Mails an solche Adressen zu senden, weil Microsoft nur E-Mails von absendenden E-Mail-Anbietern zulässt, die auf einer Whitelist stehen. Und da kommt man entweder mit viel betteln oder gar nicht drauf. Jetzt ist Schluß damit. Ab jetzt wird jede eingehende E-Mail, die über Outlook.com kommt, mit dem Hinweis abgelehnt, dass der Sender auf seine E-Mail sowieso keine Antwort bekommen könnte und deshalb lieber einen anderen E-Mail-Anbieter zum Versand nutzen soll. Ich bin gespannt wie das ankommt.