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.

Bis vor einer Weile war ich immer wieder erstaunt, wenn mir Bekannte davon erzählten, was sie wieder alles ausgemistet und weggegeben haben. Das ging hin bis zu eigenen Ständen auf Flohmärkten, um alte Sachen loszuwerden. Ich fragte mich dabei immer: Wie viel müssen die gekauft haben, um jetzt so viel loswerden zu wollen. Ich jedenfalls habe nicht so viele ungenutzte Sachen … dachte ich.

Dann las ich “Magic Cleaning” von Marie Kondo, was letztes Jahr dank einer Fernsehserie in aller Munde war. In “Magic Cleaning” geht es darum, wie man unnötige Dinge in seinem Leben identifiziert und los wird. Das Buch kann ich wärmstens empfehlen, denn auch wenn mir Marie Kondo’s Konsequenzen an einigen Stellen zu radikal sind, so öffnet dieses Buch doch den Blick dafür, welche Besitztümer man wirklich braucht und welche eigentlich mehr Last als Freude sind.

Seitdem krame ich immer mal wieder in Schubfächern und Kisten und finde regelmäßig Sachen, die ich nicht mehr brauche. Früher habe ich diese Sachen getreu dem Motto “das ist zu gut zum wegwerfen” aufgehoben, aber inzwischen trenne ich mich konsequent von ihnen. Dazu kam für mich die Erkenntnis, dass man über Ebay Kleinanzeigen für praktisch alles einen Abnehmer findet: Eine 15 Jahre alte, hoffnungslos veraltete DVB-T-PCI-Karte, mit der man heutzutage kein Fernsehen mehr gucken kann? Kein Problem. Benutzte Fahrradreifen? Finden ebenfalls einen Abnehmer.

Auch wenn der Aufwand, solche Sachen über Ebay Kleinanzeigen zu verkaufen, in keinem Verhältnis zu den Beträgen steht, die man dafür bekommt, so freut es mich doch jedes Mal, wenn jemand noch Verwendung für etwas hat, für das ich keine mehr habe. Und so bin ich fleißig dabei nach und nach alle möglichen Dinge loszuwerden und es fühlt sich gut an. Weniger Krams, weniger Ballast.

Ich werde regelmäßig beim Radfahren von Autofahrern angehupt, obwohl ich vollkommen regelkonform fahre. Solch ein Hupen kommt insbesondere dann vor, wenn Autofahrer mich aufgrund von Gegenverkehr nicht überholen können (dabei bin nicht mal ich derjenige mit dem breiten Fahrzeug 😉). Offensichtlich sind die Autofahrer der Meinung ich solle woanders als auf “ihrer” Straße fahren. Zum Beispiel auf einem neben der Straße gelegenen Radweg. Was die Autofahrer dabei übersehen ist, dass das keine benutzungspflichtigen Radwege sind und ich als Radfahrer daher das gleiche Recht wie sie habe die Straße zu benutzen.

Dass die genannten Radwege nicht benutzungspflichtig sind hat einen einfachen Grund: Sie entsprechen nicht den dafür nötigen Standards. Entsprechend sind sie für Radfahrer unbequem und teilweise sogar aufgrund geringer Abstände zu Fußgängern und parkenden Autos gefährlich zu befahren. Deshalb haben Radfahrer die Wahl, ob sie den Radweg oder die Straße benutzen wollen. Ich wähle dabei oft die Straße, da ab einer gewissen Geschwindigkeit schmale, kurvige Radwege mit unebenem Bodenbelag einfach nur hinderlich sind (aus ähnlichen Gründen ziehen Autofahrer ja auch meist Autobahnen kurvigen Landstraßen vor). Viele Autofahrer scheinen sich des Unterschiedes zwischen benutzungspflichtigen und nicht benutzungspflichtigen Radwegen nicht bewusst zu sein, was zu den besagten Reaktionen führt.

Hier in Hamburg werden seit einer Weile die Fahrbahnmarkierungen für Einmündungen von der Straße auf nicht benutzungspflichtige Radwege so gestaltet, dass eindeutig ersichtlich ist, dass Radfahrer die Wahl haben, ob sie auf den Radweg wechseln oder weiter auf der Straße fahren können. Das ist eine gute Sache, scheint aber den hupenden Autofahrern noch nicht aufgefallen zu sein.

Ich frage mich, wie man Autofahrern erklären kann, dass Straßen genauso für Radfahrer da sind. Die Gelegenheit mit einem hupenden Autofahrer kurze Zeit später entspannt sprechen zu können, hat man in solchen Situation ja doch eher selten. Für Ideen dazu bin ich dankbar.