I wanted to share an observation I've seen on the way the latest computer systems work. I swear this isn't an AI hype train post 😅
I'm seeing more and more computer systems these days use usage data or internal metrics to be able to automatically adapt how they run, and I get the feeling that this is a sort of new computing paradigm that has been enabled by the increased modularity of modern computer systems.
First off, I would classify us being in a sort of "second-generation" of computing. The first computers in the 80s and 90s were fairly basic, user programs were often written in C/Assembly, and often ran directly in ring 0 of CPUs. Leading up to the year 2000, there were a lot of advancements and technology adoption in creating more modular computers. Stuff like microkernels, MMUs, higher-level languages with memory management runtimes, and the rise of modular programming in languages like Java and Python. This allowed computer systems to become much more advanced, as the new abstractions available allowed computer programs to reuse code and be a lot more ambitious. We are well into this era now, with VMs and Docker containers taking over computer infrastructure, and modern programming depending on software packages, like you see with NPM and Cargo.
So we're still in this "modularity" era of computing, where you can reuse code and even have microservices sharing data with each other, but often the amount of data individual computer systems have access to is relatively limited.
More recently, I think we're seeing the beginning of "data-driven" computing, which uses observability and control loops to run better and self-manage.
I see a lot of recent examples of this:
- Service orchestrators like Linux-systemd and Kubernetes that monitor the status and performance of services they own, and use that data for self-healing and to optimize how and where those services run.
- Centralized data collection systems for microservices, which often include automated alerts and control loops. You see a lot of new systems like this, including Splunk, OpenTelemetry, and Pyroscope, as well as internal data collection systems in all of the big cloud vendors. These systems are all trying to centralize as much data as possible about how services run, not just including logs and metrics, but also more low-level data like execution-traces and CPU/RAM profiling data.
- Hardware metrics in a lot of modern hardware. Before 2010, you were lucky if your hardware reported clock speeds and temperature for hardware components. Nowadays, it seems like hardware components are overflowing with data. Every CPU core now not only reports temperature, but also power usage. You see similar things on GPUs too, and tools like nvitop are critical for modern GPGPU operations. Nowadays, even individual RAM DIMMs report temperature data. The most impressive thing is that now CPUs even use their own internal metrics, like temperature, silicon quality, and power usage, in order to run more efficiently, like you see with AMD's CPPC system.
- Of source, I said this wasn't an AI hype post, but I think the use of neural networks to enhance user interfaces is definitely a part of this. The way that social media uses neural networks to change what is shown to the user, the upcoming "AI search" in Windows, and the way that all this usage data is fed back into neural networks makes me think that even user-facing computer systems will start to adapt to changing conditions using data science.
I have been kind of thinking about this "trend" for a while, but this announcement that ACPI is now adding hardware health telemetry inspired me to finally write up a bit of a description of this idea.
What do people think? Have other people seen the trend for self-adapting systems like this? Is this an oversimplification on computer engineering?
Sweden up until recently had freedom of organization protected in the constitution. This was changed in a recent constitutional amendment at the request of Turkey, as a prerequisite to join NATO. Turkey demanded that Sweden arrest "PKK members" (aka journalists that Erdogan doesn't like), and to show support, both the Andersson and Kristersson administrations revived a constitutional amendment from 2021 and pushed it through, making it illegal to be a member of a terrorist organization.
https://www.regeringen.se/rattsliga-dokument/statens-offentliga-utredningar/2021/03/sou-202115/
https://www.nato.int/nato_static_fl2014/assets/pdf/2022/6/pdf/220628-trilat-memo.pdf
https://lagen.nu/2022:666
It's really an unfortunate development, since the terms "terrorist organization" and "support to terrorism" is so poorly defined, and it's clearly intended to punish political opposition in dictatorships, like Turkish and Kurdish opposition in Turkey. Very much a chilling effect on political discussion when foreign political oppositions are banned from speaking in Sweden, even when racist hate groups are still allowed to speak.
It does seem that the current law is still quite limited, at least. The Terrorist crime law of 2022 (Terroristbrottslagen) outlaws support, propagandizing, and recruiting for terrorist organizations, but this seems to be limited to only material support, organized propaganda and organization leadership. Simply going around waving a PKK flag still is legal, for now.
https://www.ui.se/utrikesmagasinet/analyser/2023/juli/terrorlagar-domstolar-far-bedoma-flaggviftning/
So luckily, I don't think it's possible to be deported simply for expressing expressing pro-Kurdish or pro-Palestinian independence ideas, or even expressing support for the violent people in PKK or Hamas.
Johan Forssell has also expressed a wish for a new law making it illegal to be in a criminal gang, but this has not passed yet. His view on the ongoing wars with Israel seems to be that Israel "has a right to defend itself", but that civilians must be protected and receive aid.