Die wunderbare Welt von Isotopp

MySQL: GIPK (InnoDB and Primary Keys)

Kristian Köhntopp - August 23, 2022
The MySQL InnoDB storage engine lives off primary keys: Records are stored physically in a B+-Tree, a balanced tree where the data pages are the leaves of the primary key B-Tree. That implies that the data is stored physically in primary key order – records with similar primary keys are usually physically closer together than records with larger differences in primary key value. In literature, such physically ordered indexes are often called clustered indexes.

MySQL: Row Literals

Kristian Köhntopp - August 22, 2022
Question on the Libera/#mysql IRC channel: Is there a way to split a simple select into multiple returned rows? For example, select 1, 2, 3 to be returned as rows? This is actually asking for a table literal notation. I know of four ways to construct a table literal in MySQL: UNION ALL The oldest way to construct a table literal in any SQL that supports UNION is the UNION ALL construct.

Good Energy News

Kristian Köhntopp - August 15, 2022
Two good news in one day. First, my energy provider tells me: Levert u meer terug dan u van het net afneemt, dan betalen we u vanaf die datum 16.8 eurocent per kWh. De oude vergoeding was 7 eurocent per kWh. “If you push energy into the grid, we now pay you 16.8 Eurocent per kWh. The old payment was 7.0 Eurocent per kWh.” The other good news is that it is very likely that the existing “Salderingsregeling” may be continued until 2025.

MacOS: How to prevent screen blanker

Kristian Köhntopp - July 30, 2022
When running Keynote, MacOS prevents the screen blanker from kicking in. I needed a similar thing in one of my Python applications, so I needed to find out how it does that. It turns out, there is an API for that: beginActivity:withOptions: , which returns an Object token activity. Calling endActivity with that Token ends the activity, and resumes the screen blanker countdown. There is a list of activity options, NSActivityOptions .

Energieverbrauch in Deutschland

Kristian Köhntopp - July 3, 2022
Der Wikipedia-Artikel zum Thema Energieverbrauch ist wirklich interessant. Schaut man sich zum Beispiel diese Grafik (oder die Tabelle, auf der sie basiert) an, dann sieht man: Primärenergieverbrauch Deutschland 1990 bis jetzt Wie man sieht, ist der Primärenergieverbrauch von Deutschland seit 1990 fast konstant geblieben. Wikipedia schreibt im Detail: “Zwischen 1990 und 2011 nahm das reale Bruttoinlandprodukt um 34 % zu, der Energieverbrauch nahm jedoch um 9 % ab.” Rechnet man um, sind es bummelig 14000 Petajoule, was circa 4000 TWh entspricht.

I have met the enemy, and they are us

Kristian Köhntopp - July 1, 2022
Another Friday, another replication hierarchy lost. The error from June, July edition? The errors reported look awfully familiar: Binlog position is supposedly 4, and the error message has text about “max_allowed_packet”. Could it be another instance of this bug from early last month? Indeed, one symptom was “a large binlog, larger than max_binlog_size”. We check. -rw-r----- 1 mysql mysql 1073794077 Jul 1 06:39 binlog.000914 -rw-r----- 1 mysql mysql 1073869075 Jul 1 07:09 binlog.

The new energy bill

Kristian Köhntopp - June 28, 2022
We got our solar roof around 1st of April. I am describing our setup here . Today we got the bill for Summer 2021 to Summer 2022. What I measured I installed a P1 interface on my electricity counter late in April, so my data does not cover all of the lifetime of the Solar Roof. Starting the graph at 01-Apr-2022, I get this: At this resolution, not very helpful.

Jetbrains Remote Development

Kristian Köhntopp - June 27, 2022
I am on a Mac or on a Windows machine, and always I have to develop for a Linux target. On Windows, this is easy, because most Jetbrains environment already support working inside WSL2, so simply choosing this is a no-brainer. On MacOS, I can create a “Docker Container” do develop in, but it is kind of a joke. That is, because MacOS cannot run Linux cgroups and namespaces natively, so you actually get a lightweight VM with Linux running, and then a container inside that.

Breaking replication with ALGORITHM = INSTANT

Kristian Köhntopp - June 20, 2022
MySQL 8.0.29 adds ALGORITHM=INSTANT as a way to run ALTER TABLE commands with less wait. The documentation can be found in Online DDL Operators and instant column operations can be found here . Example Syntax looks like this: mysql> use kris; mysql> create table t (id serial, d varchar(20)); Query OK, 0 rows affected (0.12 sec) mysql> alter table t add column i integer not null, algorithm=instant; Query OK, 0 rows affected (0.

Carver S+

Kristian Köhntopp - June 8, 2022
After getting a solar roof we have been looking at electric mobility solutions. But existing electrical cars seemed pretty much oversized. We do not really need a 4-seater with 650km range and two tons of total empty weight. Katja Diehl coined the german tongue-in-cheek term “Maximaleventualbedarfsauto” for it, the car that meets biggest use-case you could possibly reasonably have. Looking around, we test drove a Carver.Earth , which was the right size, but limited to 45 km/h (and bike pathes in some areas).

How to buy an e-Bike

Kristian Köhntopp - June 8, 2022
I have been asked what kind of bike I ride and how to choose one. Gazelle Grenoble 2017, with vaude Aquaback plus. I am over 50 years old, over 200cm tall and weigh more than 120 kilo before I dresss. Back when we still had an office, that was a 22km trip, each direction. I need an upright sitting position, a soft and comfortable seat. I need to be able to carry luggage, and a return-home guarantee.

Binlog Compression and Large Transactions

Kristian Köhntopp - June 7, 2022
(Twitter thread , reproduction in english, and update) On Friday, 2022-06-03, 14:42, we lost a replication hierarchy, on the primary, all replicas down. At 16:30 the escalation hits my desk, because this one is special. Replication stops, and wants more max_allowed_packet There is a sequence of binlogs, each 1 GB in size, as configured, except for the broken one, which is 3 GB. Replication stops with Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master; the first event '' at 4, the last event read from '.

Rolling MySQL back and forward

Kristian Köhntopp - June 3, 2022
Where I work, we manage databases in an automated way . Not as automated as I wish it to be, but largely without touching boxes. We have been doing so for a long time. Over ten years ago, I set the team the challenge “be on an arbitrary version of MySQL within 20 workdays (one calendar month), no matter how many servers we have”. We are there now, in a way: we are on a 30-day refresh cycle for our bare metal cloud, and we match that cycle for our virtualized fleet.

Wie normale Leute eben...

Kristian Köhntopp - May 17, 2022
Der Schnuppel ist jetzt in der niederländischen Groep 8, also in der 6. und letzten Klasse der Grundschule. Die letzten Tests sind geschrieben, die Schulempfehlungen sind raus und bindend, die Folgeschule steht fest und hat die Anmeldung bestätigt. Das Schuljahr ist also noch lange nicht zu Ende, aber alle Arbeit ist getan. Das Snackphone One, Zubehör und Nachfolgemodelle im Webshop. Letzten Freitag kam der Schnuppel aus der Schule und berichtete davon, daß er mit einigen Freunden und Banknachbarn “Mobiltelefone” gebaut habe.

Fertig gelesen: Crafting Interpreters

Kristian Köhntopp - May 16, 2022
Robert Nystrom is a language developer who works at Google on the Dart programming language. In his book Crafting Interpreters he explains lexing, parsing and executing a programming language in an accessible way. "Crafting Interpreters ", Robert Nystrom Nystrom sets out with the (correct) observation that the matter of handling and executing code is a complex topic that is not made easier with all the theory that surrounds it. In his book, he takes the reader on a journey to implement a toy language, Lox, two times.

Fertig gelesen: Fietsparkeren bij Stations

Kristian Köhntopp - May 7, 2022
The Netherlands realized around 2000 that they have a problem with bike parking around train stations, and with parking around stations in general. A program was set up to fix that, assuming things would be done with in ten years. The program was a great success, and people taking the bike to use the train, and to use a bike after they arrived at their destination by train increased greatly. This created more needs, and so the program is, changed, still active today.

Fertig gelesen: Pale Rider

Kristian Köhntopp - May 6, 2022
A book from 2017, about the Spanish Flu, which in the wake of the first world war turned into a global pandemic, killing between 50 and 100 million people on all continents. Pale Rider , Laura Spinney Spinney describes the situation in the world in 1918, and how the Spanish Flu came into the world, and was experienced by people in various parts of the world. The flu returned in several waves, some of which behaved unlike normal flu seasons and also had weirdly shaped killing patterns in the population.

Fertig gelesen: The Kaiju Preservation Society

Kristian Köhntopp - May 5, 2022
On an alternate earth alternate biology produces beings that can grow up to 150 meters tall and that are powered by natural biological nuclear reactor: The Kaiju. Whenever anything, humans or Kaiju, uses nuclear energy, the boundary between the alternate realities is weakened and things can cross over. That happened the first time late in the second world war, and that is how the legend of Godzilla came into the world.

Fertig gelesen: Sid Meier's Memoir!

Kristian Köhntopp - May 4, 2022
The subtitle of “Sid Meier’s Memoir!” is “A Life in Computer Games”. And that is exactly what we get: Sid Meier lists, chronologically and very systematically, all the games he has been working on during his lifetime. And tells us what happened to him, the game and the game development process while he worked on it. Somehow that becomes a Memoir, even if some things are only implied or appear out of order.

Fertig gelesen: The Pattern on the Stone

Kristian Köhntopp - May 3, 2022
This is an old book, from 1998, and much of the technology referred to directly has evolved since then. But, as this a book that deals with basics, in terms of metaphor and analogy, it is still valuable. It explains how computers work, and how we make the tech that powers them. The Pattern on the Stone , W. Daniel Hillis Computers are really easy. There is just Zero and One, and it does not get any more complicated than that.