Die wunderbare Welt von Isotopp

Discord Nitro Spam and 2FA

- November 30, 2021
This morning the Discord account of my son started to send “free nitro” spam to his friends on the friend list, and to some Discords he was a member of. He had 2FA (Google Authenticator) on the account. That fact alone made this a recoverable failure. My son is playing minecraft, has a friend list of around 100 fellow players, and is member of around 40 Discords. He also connected his Discord to Spotify, YouTube and other servies, and he authorized around 12 application services, mostly Discord/Minecraft bot services.

MySQL: Moving Average

- November 24, 2021
MySQL window functions can be used to calculate daily averages or moving averages for a 24h time window relatively easily. In an earlier article basic window functions were already discussed. In this article, we want to see how we can get daily buckets and moving averages. A sample program is available, as usual, on GitHub . Getting sample data We will be working with a data table named data, with three columns: a sensor id, a measurement datetime d and a metric value m that was sampled at that time.

Arista Type 7 Passwords

- November 22, 2021
A friend of mine wanted to provision BGP passwords for their Arista switch configuration. So a config stanza such as router bgp 65001 router-id 10.1.1.1 neighbor mydevices peer-group neighbor mydevices password 7 8kjYaye5DsQh0epELyKNe0oZ3E3zp39X requires generation of the Password (actually “supersecretpassword”) in an encrypted form. Arista switches can do this using CLI tools, apparently. They seem to have an onboard Linux, which seems to provide limited tooling, but is good enough to run a 32-bit Python 3.

A01:2021 - Broken Access Control

- November 16, 2021
Dieser Artikel wurde von Lenz Grimmer auch ins Englische übersetzt. In einem Twitter-Thread von Christian Basl ging es um die von zerforschte App “Learnu” . Basl schreibt: Die Betreiber von Learnu sagen, sie hätten keine Fachkenntnisse in IT-Sicherheit und hätten sich auf externe Berater verlassen. So kam Learnu unbekannterweise unsicher auf den Markt. In der sich entwickelnden Diskussion vertrat Andreas Dewes den Standpunkt Die meisten Start-ups die ich kenne gehen durch eine Phase, in der IT-Sicherheit und Compliance eher im Hintergrund stehen.

A01:2021 - Broken Access Control (en)

- November 16, 2021
Translation by Lenz Grimmer, German version here . A twitter thread by Christian Basl discussed the dissection of the “Learnu” app . Basl wrote: Learnu operators say they have no expertise in IT security and have relied on outside consultants. As a result, Learnu came to market insecurely, unbeknownst to them. In the discussion that developed, Andreas Dewes took the view that Most startups I know go through a phase where IT security and compliance tend to take a back seat.

Die kommende Kündigungswelle

- November 12, 2021
Ein guter Freund sinnierte gestern mit anderen Freunden von mir über die Situation auf der Arbeit und schrieb mir heute: Wie man es auch dreht und wendet: Corona ist auch ein Lackmustest für Unternehmen in ihrer Rolle als Arbeitgeber. Anhand der vierten Welle lässt sich das hervorragend nachvollziehen. Denn Unternehmen und Organisationen, denen am Wohl ihrer Mitarbeiter/-innen etwas liegt, haben schon vor Wochen überall dort, wo es möglich ist, ihre Leute kategorisch wieder ins Homeoffice geschickt und Präsenzveranstaltungen untersagt.

AMD und 128 cores

- November 8, 2021
Wir sprachen in Software Defined Silicon darüber, wie die CPU-Bedürfnisse von Hyperscalern und normalen Kunden divergieren. Hyperscaler haben Interesse an immer größeren CPUs mit immer mehr Kernen, und immer höherer Dichte in ihren Rechenzentren. […] Normale Kunden sehen das nicht so: man kann in einer 64C/128T-Core-Single-Socket-Konfiguration mit 2-4 TB RAM unter Umständen den gesamten Serverbedarf einer kleineren Firma in einer einzelnen physikalischen Maschine in VMs unterbringen. Das Problem dabei: Explosionsradius, wenn mal etwas ausfällt.

MySQL: Parallel Replication

- November 8, 2021
At work, replication is a central feature in our MySQL Standard Architecture. But until MySQL 5.6, replication was strictly sequential: Even if transactions happened in parallel on a primary, they would be downloaded to the replica by the IO_THREAD into the relay log. From there, a single SQL_THREAD would apply them, one after the other in strict binlog order. That can lead to Replication Delay. We had a monitor for that, courtesy of Dennis Kaarsemaker .

This Blog is now Hugo powered

- November 7, 2021
I started blogging almost 20 years ago, because a piece of software I was using to manage calendars and discussion boards to organize the “Dienstag” also offered blogging functionality. That software was very buggy and full of HTML injections. My patches to fix things touched almost all files, and were rejected, because they… touched too many files. So I was looking around for something better, and the good people on ircnet:#php.

MySQL: Python and WHERE ... IN ()

- October 28, 2021
As a developer using Python, I want to be able to hand a list to an SQL statement with a WHERE id IN (…) clause, and it should do the right thing. Well, that is not how it started, because it was asked on the internal no-work-channel, so it kind of escalated more. A question The original question was: Dev> Why is it 2021, and SQL prepared statements still can’t deal with IN?

Metaverse (en)

- October 27, 2021
I wrote on Twitter something about the term “Metaverse”. That led to a contact with Michael Carl , who wanted to make an episode for his Podcast with me. My german notes and talk prep are now also available here: Metaverse The term “Metaverse” was initially coined by Neal Stephenson in 1992, but in the context of the current discussion it was defined as in The Metaverse: What It Is, Where to Find it, Who Will Build It, and Fortnite by Matthew Ball.

Metaverse

- October 26, 2021
Ich schrieb auf Twitter was zum aktuellen Begriff “Metaverse”. Das hat zu einem Kontakt mit Michael Carl geführt, der mich in seinem Podcast haben wollte. Meine Gesprächsnotizen und Vorbereitung habe ich nun auch hier: Metaverse Der Begriff “Metaverse” stammt ursprünglich von Neal Stephenson, aus dem Jahre 1992, aber er ist im aktuellen Kontext von Matthew Ball in The Metaverse: What It Is, Where to Find it, Who Will Build It, and Fortnite mit Sinn gefüllt worden.

Understanding git

- October 12, 2021
It occurred to me that I do not know nearly enough how git works, internally. The contents of the .git directory seem to be accessible enough, so I am going on a Safari in the git repository of this blog. You can follow along if you check out the blog . Refs All things git live in .git. The thing we are working with seem to live in .

Empty commits and other wrong tools for the job

- October 6, 2021
This is how you can make an empty commit: $ git commit --allow-empty -m "Kick it" This has the disadvantage of also generating a commit message. Another way to achieve this seems to be $ git commit --amend --no-edit && git push -f but that will make people hate you in other ways. So lets stop and ask: Why would you want to make an empty commit? Most people want this because they attached a server-side action to a commit, a CI/CD activity.

99% secure

- October 2, 2021
Linus Neumann zitiert Prof. Norbert Pohlmann : Ich glaube, das ist so. Diese 100%ige Sicherheit wird es nicht geben, und wenn der Chaos Computer Bild was findet, dann findet er das, und dann sagen wir, das ist gut. Und dann überlegen wir uns, wie wir das wieder schließen können und dann ist es wieder besser. Und dann können sie auch weiter suchen. Also, ich glaube, wir brauchen auch eine andere Grundhaltung und es geht nicht immer um 100 %, sondern die 99 %, die reichen und wir müssen mit den Restrisiken umgehen.

Projektschmerzen

- October 1, 2021
Es beginnt mit einem Tweet von Manuel Atug : “Wegen Überlastung der Server: #Notruf-App vorerst nicht mehr in App-Stores” und der Tweet verlinkte einen (inzwischen nicht mehr existierenden) Artikel beim Deutschlandfunk. Christoph Petrausch erklärt, wie solche Projekte falsch laufen können: Sowas erfordert eine Fehlerkultur. Du musst als Organisation in der Lage sein, nach so einem Incident einen Schritt zurückzutreten. Alle Fakten auf den Tisch zu legen und zu fragen: Warum kam es dazu?

Software Defined Silicon

- September 30, 2021
Golem titelt Intel will Xeon-Funktionen als Lizenz-Update verkaufen : Intel will Xeon-Funktionen als Lizenz-Update verkaufen. Mit dem Software Defined Silicon will Intel in Xeon-Hardware zunächst abgeschaltete Funktionen künftig als Lizenz-Upgrade bereitstellen. Manuel Atug ranted darüber auf Twitter: Wenn dir die eigene Hardware nicht mehr gehört… Intel will Xeon-Funktionen als Lizenz-Update verkaufen “Mit dem Software Defined Silicon will Intel in Xeon-Hardware zunächst abgeschaltete Funktionen künftig als Lizenz-Upgrade bereitstellen." Ich antwortete :

MySQL: Our MySQL in 2010, a hiring interview question

- September 27, 2021
I ranted about hiring interviews, and the canned questions that people have to answer. One of the interviews we do is a systems design interview, where we want to see how (senior) people use components and patterns to design a system for reliability and scale-out. A sample question (based on a Twitter thread in German): It is 2010, and the company has a database structure where a fixed number front end machines form a cell.

MySQL: Binding the ORM

- September 17, 2021
My task is to collect performance data about a single query, using PERFORMANCE_SCHEMA (P_S for short) in MySQL, to ship it elsewhere for integration with other data. In a grander scheme of things, I will need to define what performance data from a query I am actually interested in. I will also need to find a way to attribute the query (as seen on the server) to a point in the codebase of the client, which is not always easy when an ORM or other SQL generator is being used.

MySQL: Tracing a single query with PERFORMANCE_SCHEMA

- September 15, 2021
My task is to collect performance data about a single query, using PERFORMANCE_SCHEMA (P_S for short) in MySQL, to ship it elsewhere for integration with other data. In a grander scheme of things, I will need to define what performance data from a query I am actually interested in. I will also need to find a way to attribute the query (as seen on the server) to a point in the codebase of the client, which is not always easy when an ORM or other SQL generator is being used.