Die wunderbare Welt von Isotopp

Fertig gelesen: Needle

Kristian Köhntopp - May 14, 2021
Needle and Through the Eye of a Needle are books by Hal Clement. Hal Clement was a Hard Sci-Fi author born in 1922, and “Needle” was written in 1950 as his first book, for Campbell, no less, and sold to Doubleday. The followup was produced almost 30 years later, in 1978. Needle The story begins with two spaceships crashing into planet earth, some time in the 1950’s idea of a future, close to an island in the Pacific ocean.

Fertig gelesen: The Antivirus Hackers Handbook

Kristian Köhntopp - May 14, 2021
The Antivirus Hackers Handbook by Jaxeon Koret and Elias Bachaalany is part book, part a research report, detailing the findings of Jaxeon Koret and Elias Bachaalany in how Antivirus programs work, try to protect themselves and can be attacked and exploited. The Antivirus Hackers Handbook The book assumes that you have some basic knowledge how compilers produce programs, what assembler looks like and how to map that on program statements in the code you write, and have access to IDA Pro free edition, Ghidra, Hopper or some other reverse engineering and analysis tool.

Fertig gelesen: The Witcher

Kristian Köhntopp - May 14, 2021
So, Netflix’ “The Witcher ” was weird, and could not decide what it wanted to be: A “Hercules Legenday Journey’s”-like half-comedy, half-camp series, or something else, darker and denser, with more story and background. It hinted at a better story, better told, that did not make it into the final product, and died somewhere between the scriptwriting and the cutting table. Investigating, I got myself the equivalent of the Witcher Boxed Set on the Kindle and started reading.

Fertig gelesen: Titan

Kristian Köhntopp - May 14, 2021
The story of Heaven’s River , stranding in and then exploring an alien megastructure, is one that has been written before: In Niven’s Ringworld , Clarke’s Rama , and Farmer’s Riverworld . John Varley’s take on this, very seventies, is Titan , Wizard , and Demon , the Gaia Trilogy. Titan , Wizard and Daemon Cirocco Jones is the Commander of the Earth science ship Ringmaster, and is right now approaching the orbit of Saturn, where she and her crew discover a new moon.

A MySQL flight recorder

Kristian Köhntopp - April 22, 2021
Sometimes things go wrong, and it surely would be nice if you at least knew afterwards what happened. Where I work, we are running a shell script older than time itself, once a minute. The script writes files to /var/log/mysql_pl, into a directory named after the current weekday and named after the current hour and minute. So when a box crashes on Thursday at 22:09, as long as I can login to it, I still can try to look at /var/log/mysql_pl/Thu/22_0?

Fertig gelesen: Children of Ruin

Kristian Köhntopp - April 7, 2021
Children of Ruin is the second part of Children of Time by english Sci-Fi author Adrian Tchaikovsky. In “Children of Time”, mankind reached for the stars, almost succeeded and also almost died out. They did manage to create a digital lifeform, though, and also to seed and uplift life from earth on another world - just not the intended one. And so we ended up with a race of intelligent giant jumping spiders that manage to befriend the broken artificial intelligence orbiting their world and to rescue the remnants of humankind from themselves.

Fertig gelesen: Conan, The Barbarian

Kristian Köhntopp - April 7, 2021
Conan, The Barbarian by Robert E. Howard is a collection of all Conan stories. Imaginary Worlds Ep 114: The Man Behind the Sword (Episode Transcript PDF ) discussed Robert E. Howard, his 1930’s character Conan, The Barbarian and how Howard’s Conan is different from the Schwarzenegger character, and a much deeper and more complicated story. Go, and listen to the episode, it is well worth the time. Having seen the Schwarzenegger film, but never actually having read the book I went out and got this complete collection.

Fertig gelesen: Heaven's River

Kristian Köhntopp - April 7, 2021
Heaven’s River is the fourth part of the Bobiverse Trilogy, in which the original Bob finds a decaying alien megastructure, and investigates. Previously in the Bobiverse: We are Legion (We are Bob) For We Are Many All These Worlds Bob Johannson is a successful software developer, and cashes out. Then he dies, becomes a sentient spaceship and von Neumann probe, and then earth is almost destroyed in a war. Bob moves on, doing the von Neumann thing, and plundering the resources of foreign star systems makes more Bobs.

Fertig gelesen: Masters of Doom and The Game Engine Black Book: Doom

Kristian Köhntopp - April 7, 2021
Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture by David Kushner is the story of the two Johns: Carmack and Romero, and the early video game culture and the genre of the 3D first person shooter. A lot of todays “hard core” and somewhat toxic video game culture was defined by the two Johns and the company they built, as well as the culture that followed.

Fertig gelesen: Other Minds

Kristian Köhntopp - April 7, 2021
Peter Godfrey-Smith writes Other Minds: The Octopus and the Evolution of Intelligent Life , a book about the body, the mind and the life of Octopi. Octopi are creatures that are across the tree of life about as different as can be from humans. How different are they? Their blood is not based on iron, as ours, but uses copper to transport Oxygen, and consequently is not red from hemoglobin, but blueish from hemocyanin.

Fertig gelesen: Terry Jones' Barbarians

Kristian Köhntopp - April 7, 2021
Terry Jones’ Barbarians: An Alternative Roman History by Alan Ereira is the writeup to the BBC series “Terry Jones’ Barbarians ”. Terry Jones, who sadly died in early 2020, was not only a member of Monty Pythons Flying Circus, but among many other things a TV author and presenter for a number of BBC series on medieval and ancient history. In many cases, he takes the controversial position and presents a view of history that challenges the popular view.

Fertig gelesen: The Vanishing Middle Class

Kristian Köhntopp - April 7, 2021
The Vanishing Middle Class: Prejudice and Power in a Dual Economy by Peter Temin analyzes the economical and political structure of the USA. Temin does this through the lens of the “Dual Economy ” Model. Dual Economies are normally prevalent in colonial societies of “less developed” countries. These countries usually have local production and production for a global export market, and besides economical and income structures around this separation, there are also social segration and a certain degree of isolation of the social groups from each other - in politics as well as attempts to prevent social migration into the higher ranked group.

MySQL and UUIDs

Kristian Köhntopp - April 6, 2021
In ALTER TABLE for UUID we discuss currently proper way to store and handle UUID in MySQL. Currently it works, even in a performant way, but it still hurts. It should not. Definition of UUID The RFC 4122 defines various types of UUID, and how they are being formatted for presentation and as a bit field on the wire. As this document was written bei Leach and Salz, among others, RFC 4122 UUIDs are also called “Leach-Salz UUIDs” (for example in the Java Documentation ).

Making an unexpected leap with interval syntax

Kristian Köhntopp - April 2, 2021
(based on a find by Ruud van Tol, and several Twitter contributions) Ruud commented on our DST discussion with mysql> SELECT '2019-02-28 12:34:56'+ INTERVAL 1 YEAR + INTERVAL 1 DAY as a, '2019-02-28 12:34:56'+ INTERVAL 1 DAY + INTERVAL 1 YEAR as b\G a: 2020-02-29 12:34:56 b: 2020-03-01 12:34:56 2019 is a year before a leap year. Adding (left to right) a year brings us to 2020-02-28, and then adding a day makes this 2020-02-29, because it’s a leap year.

Things you didn't know about MySQL and Date and Time and DST

Kristian Köhntopp - March 29, 2021
(based on a conversation with a colleague, and a bit of Twitter ) A Conundrum A developer colleague paged me with this: mysql> select UNIX_TIMESTAMP("2021-03-26 03:07:00" + INTERVAL 2 YEAR) - UNIX_TIMESTAMP("2021-03-26 02:07:00" + INTERVAL 2 YEAR) as delta\G delta: 420 It is obviously wrong, and weirdly so. It only works for “2 year”, not with other values: mysql> select UNIX_TIMESTAMP("2021-03-26 03:07:00" + INTERVAL 1-11 year_month) - UNIX_TIMESTAMP("2021-03-26 02:07:00" + INTERVAL 1-11 year_month) as delta\G delta: 3600 mysql> select UNIX_TIMESTAMP("2021-03-26 03:07:00" + INTERVAL 1-12 year_month) - UNIX_TIMESTAMP("2021-03-26 02:07:00" + INTERVAL 1-12 year_month) as delta\G delta: 3600 mysql> select UNIX_TIMESTAMP("2021-03-26 03:07:00" + INTERVAL 1-13 year_month) - UNIX_TIMESTAMP("2021-03-26 02:07:00" + INTERVAL 1-13 year_month) as delta\G delta: 3600 It has to be exactly 730 days (2 * 365 days, 2 years):

That's a lot of databases

Kristian Köhntopp - March 24, 2021
Where I work, we are using MySQL a lot. The databases are being organized in replication hierarchies, and each hierarchy is a tree topology with a single primary and a number of intermediate replicas. Replication is a tree managed by Orchestrator We are using MySQL orchestrator to manage the replication topology. MySQL Orchestrator shows a typical replication hierarchy. Each color indicates a different data center/availability zone. Replication is a tree, from the primary to per-AZ intermediate replicas for fan-out to leaf replicas.

Memory saturated MySQL

Kristian Köhntopp - March 12, 2021
»If at all possible, we build databases so that the working set of the database fits into memory.« What does that even mean? Working Set In computer science, the “Working Set” of a program is the set of things it will be accessing in the near future. Because computer science has not yet solved looking into the future, we are looking at the set of things we accessed most recently and hope for The Best™.

Rechenaufgaben lösen

Kristian Köhntopp - February 28, 2021
Das Kind möchte ein Programm zum Üben von Rechenaufgaben sehen. Nun gut. Hier ist eine Version in PyQt5. Unsere Oberfläche soll so aussehen. Wir wollen ein kleines Fenster, in dem eine billig generierte Rechenaufgabe angezeigt wird. Der Schüler soll die Antwort eingeben und den Knopf “Antworten” drücken. Danach wird angesagt, ob die Antwort korrekt war, oder ob sie falsch war. Wenn sie falsch war, wird auch die korrekte Antwort angezeigt.

MySQL from Below

Kristian Köhntopp - February 25, 2021
When you insert data into a database and run COMMIT you expect things to be there: Atomically, Consistent, Isolated and Durable , like Codd commanded us 40 years ago, but also quickly. There is a surprising amount of sophistication being poured into this, but since I do not want to shame MongoDB and Redis developers in this post, I am not going to talk about that much in this place.

Validating storage

Kristian Köhntopp - February 24, 2021
Where I work, we try to run databases in a memory saturated way. That is, we try to provide so much memory that the working set of the database is memory resident, or in other words, the number of disk reads after an initial warmup is no longer dependent on the database load. Workload Intelligence Analytics showing “IOPS over time” for a mixed read/write benchmark on Datera iSCSI. We can validate and prove that with automated load testing: For each replication chain we single out a production host, and increase the hosts weight in the load balancer until the system load1 becomes critical.