Die wunderbare Welt von Isotopp

Editing Remotely in PyCharm

Kristian Köhntopp - March 18, 2024
A friend asks me on IRC: Do you happen to know how I can edit code locally on my PyCharm (MacOS, Professional) but run it remotely in a virtual environment? I know how to do that in VS Code, but I don’t know how to do it in PyCharm, even with ssh configured and tested. The TL;DR is that this specific person has disabled the FTP/SFTP/Webdav Plugin in an attempt to configure PyCharm in a way that it doesn’t upload development data to Jetbrains Servers or similar.

Dynamically loading Classes in Java

Kristian Köhntopp - March 3, 2024
The son needed to dynamically load some Java class into Minecraft, and then call a method on this. The dynamically loaded class may have additional dependencies. I wanted to see how this works, so I sketched a quick example. You can follow along on GitHub . Project Layout Using IntelliJ, we are creating a project using Maven which has three submodules. The layout: $ tree . |-- dependent | |-- pom.

Breaking Changes in Hugo 123

Kristian Köhntopp - March 1, 2024
I had my GitHub pipeline for this blog running with latest. Recently, that broke. Checking on the reasons for that, I found that I ran into two breaking changes: Incomplete date specifications are now an error. Slightly more typesafe date handling from front matter. Hugo switches the page reference model to logical paths, breaking ref and relref shortcodes with REF_NOT_FOUND. This is easily fixed with two mass commits. Incomplete date specifications are now an error In my front matter, I have code such as this:

Python: Slots

Kristian Köhntopp - February 19, 2024
I am playing a bit with __slots__ in Python, and I am trying to understand if I am holding them wrongly. I am defining a small test program with two classes, both having 20 instance variables with long names, holding a bit of string data. I make one million instances and put them into a list. Then I am trying to measure the size of this in memory. Supposedly using __slots__ the instances should save me a lot of memory, and for a single instance they seem to do that.

The Matrix Trashfire

Kristian Köhntopp - February 13, 2024
For reasons, I tried to evaluate the distributed Matrix chat and their clients. That did not work out very well. Onboarding experience I was told that the default Matrix chat client is called Elements, so I looked it up on the iOS App store. Unfortunately, there are two, “Element” and “Element X.” No explanation is given, and no preference is stated. “Element” is categorized business, “Element X” is in “Social Networking.

Snake Oil

Kristian Köhntopp - February 10, 2024
Dieser Text ist auch in deutscher Sprache vorhanden. This week was “Broken Security Software Advertising Week.” Fortigate and Ivanti First off, today was Fortigate patch day: CVE-2024-23113, CVSSV3 Score 9.8, Unauthorized Code Execution, “Format String Bug” “A use of externally-controlled format string vulnerability in FortiOS fgfmd daemon may allow a remote unauthenticated attacker to execute arbitrary code or commands via specially crafted requests.” This is a case where a C function accepts a format string like "Blah %s Nonsense", to assemble a log message or a command for a system() call.

Schlangenöl

Kristian Köhntopp - February 9, 2024
This text also has a version in english language . Diese Woche war “Kaputte Security Software Werbewoche”. Fortigate und Ivanti Zunächst einmal war heute Fortigate Patchday: CVE-2024-23113, CVSSV3 Score 9.8, Unauthorized Code Execution, “Format String Bug” “A use of externally-controlled format string vulnerability in FortiOS fgfmd daemon may allow a remote unauthenticated attacker to execute arbitrary code or commands via specially crafted requests.” Das ist ein Fall, wo eine C-Funktion einen Formatstring mit "Bla %s Fasel" annimmt, um etwa eine Log-Nachricht oder ein Kommando für einen system() Aufruf zusammenzubauen.

Wie ChatGPT funktioniert

Kristian Köhntopp - February 6, 2024
Es gibt einen wunderbaren Artikel von Stephen Wolfram, What Is ChatGPT Doing … and Why Does It Work? Dies ist ein etwa ein Jahr alter und langer Text, und man muss dran bleiben, wenn man ihn verstehen möchte. Er erklärt wie ChatGPT intern funktioniert, warum das so viel Ressourcen kostet, und er erklärt auch, daß wir keine Ahnung haben, wieso das “funktioniert”. Er zeigt aber auch, was ChatGPT alles prinzipbedingt niemals erreichen kann, und auch nicht lernen wird.

JusProg ist nur der Anfang

Kristian Köhntopp - January 16, 2024
Es ist also dies hier passiert: Wen schützen eigentlich Jugendschutzprogramme? Lilith Wittmann nimmt den Filter von JusProg e.V. auseinander und es ist eine einzige Eskalation: Die Filterkriterien sind nicht nachvollziehbar. Gefilterte Websites wissen nichts von ihrer Einstufung. Die Einstufungen sind systematisch falsch, und man kann eine politische Richtung erkennen. Das ist JusProg e.V. aber eigentlich egal, denn es sind ja auch viele Websites nicht geblockt worden. Die Website für den Download ist ein kompromittiertes Wordpress.

Deploying websites - an escalation

Kristian Köhntopp - January 9, 2024
We are still playing minecraft. This time it is a highly modded Fabric server, which requires more memory than the old box had. The new box has 12 cores, 128 GB of memory, and two nice SSD. It is pretty nifty. A simple problem, easily solved by Ansible. The machine also needs some kind of webserver to run websites. An easy problem to solve, naturally. A bit of Ansible, deploy a few config files into the system and be done with it.

Restic

Kristian Köhntopp - December 30, 2023
Ich hatte Grund, mich mit Restic für Backup auseinander zu setzen. Warum restic? restic ist eine Datensicherung in ein Repository, das intern als ein Content-Addressable Storage aufgebaut ist. Das heißt, daß innerhalb des Backups Datenstücke liegen, die genau ihre (SHA256-) Prüfsumme als Dateinamen haben. root@server:/backup/restic/data/fc# sha256sum fcec*7a5b fcec25d3e3165d159b4dac3867d1a1831707d582215c1fa30e0277cd57dc7a5b fcec25d3e3165d159b4dac3867d1a1831707d582215c1fa30e0277cd57dc7a5b Die Prüfsumme einer Datei im data-Verzeichnis eines restic-Repos. Sie entspricht genau dem Namen der Datei. Dies führt zu einer Datenstruktur in restic, die nicht ganz unähnlich der in einem .

x86_64 binaries on M1

Kristian Köhntopp - December 5, 2023
I installed a Python 2.7.18 with pyenv on Apple Silicon, and I needed that binary to be pure x86_64. This was necessary because I needed to load dynamic libraries that were only available in Intel format. It is not possible to load x86_64 libraries into an ARM binary. If you build a multi-arch binary, you need to remember to request Intel every time you run a Python script which tries to load the Intel-only shared library.

A Revolution Devours Its Children

Kristian Köhntopp - November 11, 2023
Initially published in c’t 26/23, page 70. All my texts are made available in this blog after some time. The version shown is the raw edit of the article text without pictures and illustrations. Hier ist das Original in deutscher Sprache . A Revolution Devours Its Children by Kristian Köhntopp Departure from Traditional Open Source Licenses Open source once set out to guarantee users the greatest possible freedom in the operation of software and to challenge the software titans.

Eine Revolution frißt ihre Kinder

Kristian Köhntopp - November 11, 2023
Dieser Text erschien in c’t 26/23 auf Seite 70. Wie alle meine Texte ist er nach einiger Zeit auch in meinem Blog frei verfügbar. Die hier veröffentlichte Fassung ist die Rohfassung des Artikeltexts ohne Abbildungen und Illustrationen. This text is also available in English . Eine Revolution frisst ihre Kinder von Kristian Köhntopp Abkehr von klassischen Open-Source-Lizenzen Open Source war einmal angetreten, um Nutzern die größtmögliche Freiheit im Betrieb von Software zu garantieren und Software-Titanen den Kampf anzusagen.

Sitzende Tätigkeit

Kristian Köhntopp - October 10, 2023
Ich arbeite im Sitzen, 8h am Tag beruflich, und dann noch ein wenig mehr aus Spaß: Spaces . Ich habe meinen eigenen Platz daheim, immer schon gehabt. Das habe ich von meinem Vater gelernt, der Amateurfunker war und daheim seinen höchst eigenen Bastel- und Arbeitsplatz hatte, seinen Ort und Rückzugplatz. Zu einem ordentlichen Arbeitsplatz gehört auch ein Sitz. Der Sitz ist ein Arbeitsgerät und da sollte man angesichts der Anzahl der darin verbrauchten Stunden nicht kaspern, sondern klotzen.

Fertig gelesen: Starter Villain

Kristian Köhntopp - October 1, 2023
John Scalzi’s latest book is currently Starter Villain . The premise is simple: Charlie’s estranged Uncle Jake died. Charlie and his uncle are estranged because Charlie’s father and Jake had a fallout at the funeral of Charlie’s mom, and Charlie has not had much contact at all with Jake ever since. Now, with Jake also dead, it turns out that Charlie somehow is his only heir. Then Charlie is holding watch at Jake’s funeral, and the entire story turns quickly into a James Bond novel, with strange brutes trying to stab the corpse of Jake, ensuring he’s really dead, and a collection of very weirdly imprinted flower bouquets – “See you in hell” being one of the nicer ones.

Fertig gelesen: A Life with Footnotes

Kristian Köhntopp - September 30, 2023
Rob Wilkins was the assistant and a good friend of Terry Pratchett. He wrote a posthumous biography, titled A Life With Footnotes . Wilkins is now the manager of the Pratchett literary estate. The book does what a biography is supposed to do: It traces the life of Terry Pratchett, illuminating his origins and the experiences that shaped his worldview. Filled with anecdotes and tales from his readings, from conventions, and other encounters with fans, it sketches a portrait of a lovable, quirky personality who crafted stories in his mind and then simply penned them down.

Fertig gelesen: Combat Ready Kitchen

Kristian Köhntopp - September 29, 2023
In Combat Ready Kitchen , Anastacia Marx de Salcedo traces the history of food preservation from an american point of view, and demonstrates the co-development of combat rations and modern U.S. supermarket food. The book takes us through the history of U.S. combat rations, from before the invention of the tin can, through canned, better preserved, but incredibly heavy food to what soldiers have today. It shows how these military innovations have been seeded, purposefully, into the civilian food industry, in order to enable the military to source food from civilian companies for their purposes, in formats that suit them.

Solarenergie 2022 vs. 2023

Kristian Köhntopp - September 27, 2023
Dieses Jahr war nicht sehr heiß bei uns, und auch nicht so tödlich trocken wie letztes Jahr. Das war notwendig und angenehm, auch wenn es den Ertrag vom Dach um 10-15 % gegenüber dem Vorjahr gedrückt hat. 2022 in Blau (links verschoben), 2023 in Grün (rechts). 2022 brachte uns von April bis Jahresende 6389 kWh, 2023 brachte uns vom Jahresbeginn bis jetzt 6204 kWh. Okt+Nov+Dez 2022 waren 407 + 170 + 91 = 668 kWh.

Fertig gelesen: Blue Machine

Kristian Köhntopp - September 26, 2023
Helen Czerski wrote a book. Blue Machine: How the ocean shapes our world occupies the weird space between memoir, travel blog and science outreach. In the middle of this she manages to explain the biggest machine on our planet: The collection of oceans in which the continents are embedded. But also the deep love of science, the desire to understand how our world functions, and the connection between all people than live on it.