Quand l’État transforme votre voiture en prison sur roues
Au contraire de l’avalanche de taxes que nos frétillants parlementaires entendent nous faire tomber dessus, on a assez peu entendu parler de quelques importantes modifications concernant le permis de conduire et le contrôle technique automobile. C’est dommage, ces modifications sont tout sauf anodines. Ainsi, le premier janvier prochain, le contrôle technique va se durcir : au-delà […] ⌘ Read more
お知らせ:JPCERT/CC Eyes「攻撃グループAPT-C-60による攻撃のアップデート」 ⌘ Read more
B.C. to launch anti-tariff ads as Ontario pauses controversial campaign ⌘ Read more
Le dernier chef-d’œuvre du Louvre : le délitement national
La seule surprise qu’on peut avoir en découvrant que le Louvre s’est fait cambrioler, c’est de constater qu’il aura fallu attendre autant de temps avant que ça arrive. En effet, à voir l’état lamentable des boiseries des fenêtres et des portes de ce vieux musée, à voir la décontraction pour ne pas dire le laisser-aller […] ⌘ Read more
@movq@www.uninformativ.de Yeah, this is similar to my 2025 GWM Cannon Ute (truck) that we recently bought. It has this app called the “GWM App” that lets you view various health/stats of the vehicle, open/close the door, locks, control the A/C etc, all from your Mobile Phone. – But… Guess what?! :D It has a goddamn fucking SIM card in the head unit (dash) somewhere that once you “consent” and agree it signs up to some god knows what local cellular service and all that wonderul functionality is controlled by, guess what… A fucking goddamn CLOUD service! da actual flying fuck is wrong with these people?! – Are we some of the only people in the world that realize how fucking dumb all this Internet-connect shit™ really is?
France : Héritage combattu, capitalisme impossible
Les Français ne comprennent pas ce qu’est le capitalisme, et le rejettent assez majoritairement. Pour beaucoup, c’est par simple ignorance, pour quelques uns, c’est par idéologie – ils ne veulent pas savoir, ne veulent pas le comprendre pour continuer à appartenir au camp du bien – mais finalement, très peu le comprennent et encore moins […] ⌘ Read more
Why C variable argument functions are an abomination (and what to do about it) | H4X0R****
Comments ⌘ Read more
Canada’s Privacy Watchdog Not Consulted on Bill C-8, Enabling Secret Internet & Phone Shutdowns ⌘ Read more
Sam Whited: Coffeeneuring 2025
This year I haven’t blogged much at all, but it’s time for the 15th annual
Coffeeneuring and who-knows-how-many-annual Biketober challenges so here we go!
This post will be updated with each of my Coffeeneuring rides as the month goes
on, and may (or may not) contain a few fun C+1 rides that count towards
Biketober, but not for Coffeeneuring.
… ⌘ Read more
lavandula: A fast, lightweight web framework in C for building modern web applications
Comments ⌘ Read more
N3694: Functions with Data - Closures in C (A Comprehensive Proposal Overviewing Blocks, Nested Functions, and Lambdas)
Comments ⌘ Read more
How to write a complete GNOME application in Lua
This article is intended to be a comprehensive guide to writing your first GNOME app in Lua using LuaGObject. The article assumes that you already understand Lua and want to get started with building beautiful native applications for GNOME. I also assume you know how to use a command line to install and compile software. Having some knowledge of the C programming language, as well as the Make, Gettext, and Flatpak software will be hel … ⌘ Read more
Tiny RISC-V Development Board with WCH CH32V317WCU6 Available from $6.80
The nanoCH32V317 is a compact development board created by MuseLab to simplify prototyping and embedded system development. It integrates USB connectivity, Ethernet support, and a straightforward programming interface through USB Type-C, providing an accessible platform for engineers and hobbyists working with RISC-V microcontrollers. The board is powered by the WCH CH32V317WCU6, a RISC-V microcontro … ⌘ Read more
UNIX99: UNIX for the TI-99/4A
I’ve been working on developing an operating system for the TI-99 for the last 18 months or so. I didn’t intend this—my original plan was to develop enough of the standard C libraries to help with writing cartridge-based and EA5 programs. But that trek led me quickly towards developing an OS. As Unix is by far my preferred OS, this OS is an approximation. Developing an OS within the resources available, particularly the RAM, has been challenging, but also surprisingly doab … ⌘ Read more
How to get LSP semantic highlighting working for C++ ⌘ Read more
Lobby du tout-électrique, PwC, Jean Tirole : dépenses pour la croissance
Un article de Henry Bonner Et voilà, c’est fait : Fitch abaisse la note de la dette de la France… Et en dépit de l’envolée des taux d’intérêt, le gouvernement continue les dépenses. Comme l’échec du Premier ministre en France, la « défaite » du parti de M. Milei en Argentine dans une élection locale ce mois-ci montre […] ⌘ Read more
Beyond Containers: llama.cpp Now Pulls GGUF Models Directly from Docker Hub
The world of local AI is moving at an incredible pace, and at the heart of this revolution is llama.cpp—the powerhouse C++ inference engine that brings Large Language Models (LLMs) to everyday hardware (and it’s also the inference engine that powers Docker Model Runner). Developers love llama.cpp for its performance and simplicity. And we at… ⌘ Read more
20 ans !
Eh oui, cela fait 20 ans déjà ! C’est en septembre 2005 que ce blog vit le jour, recueil de notes et de remarques sur une actualité déjà assez liberticide à l’époque. Petit-à-petit, les notes sont devenues plus longues, les billets plus construits, illustrés, puis relayés au fil des années par différents supports numériques. De quelques […] ⌘ Read more
@itsericwoodward@itsericwoodward.com, hi there! Welcome to the twtverse! It seems you have a typo on your site address, an extra “c”.
L’autre pause estivale
Oui, vous avez correctement lu le titre : c’est à nouveau une pause pour ce blog, qui ne verra donc pas de nouveaux articles avant mi-septembre. Bien évidemment, chers lecteurs, chères lectrices, chers bots d’IA, je compte sur les plus forts d’entre vous pour alimenter la section « commentaires » afin de faire tenir les moins solides, ceux […] ⌘ Read more
Panique : la BCE improvise de plus en plus son euro numérique
La presse française étant ce qu’elle est (c’est à dire aussi subventionnée que médiocre), ce que Trump a réalisé en matière de cryptomonnaies est bien évidemment passé à peu près inaperçu de ce côté-ci de l’Atlantique. Pourtant, la Banque Centrale Européenne vient d’en faire récemment les frais… Pour comprendre ce qui se passe, il faut […] ⌘ Read more
Video: C Programming on System 6 - VCFMW, CMaster ⌘ Read more
37C3 and New Year’s Eve 2023
Another one from the vaults. The 37C3 conference took place in
December, 2023. This report was mostly written in January, 2024.
Mostly finished it at night in my cottage between 28 and 29th
December, then edited and added some stuff in July, 2025. So… Only
1.5 years late?
It was a little ironic, and a little sad, that I was finishing the
37C3 report during 38C3. I didn’t manage to get any tickets for me and
#3 for 38C3 and had to make do with watching the stream.
The links to the talks go to [C … ⌘ Read more
Here’s an example of X11/Xlib being old and archaic.
X11 knows the data type “cardinal”. For example, the window property _NET_WM_ICON (which holds image data for icons) is an array of “cardinal”. I am already not really familiar with that word and I’m assuming that it comes from mathematics:
https://en.wikipedia.org/wiki/Cardinal_number
(It could also be a bird, but probably not: https://en.wikipedia.org/wiki/Cardinalidae)
We would probably call this an “integer” today.
EWMH says that icons are arrays of cardinals and that they’re 32-bit numbers:
https://specifications.freedesktop.org/wm-spec/latest-single/#id-1.6.13
So it’s something like 0x11223344 with 0x11 being the alpha channel, 0x22 is red, and so on.
You would assume that, when you retrieve such an array from the X11 server, you’d get an array of uint32_t, right?
Nope.
Xlib is so old, they use char for 8-bit stuff, short int for 16-bit, and long int for 32-bit:
That is congruent with the general C data types, so it does make sense:
https://en.wikipedia.org/wiki/C_data_types
Now the funny thing is, on modern x86_64, the type long int is actually 64 bits wide.
The result is that every pixel in a Pixmap, for example, is twice as large in memory as it would need to be. Just because Xlib uses long int, because uint32_t didn’t exist, yet.
And this is something that I wouldn’t know how to fix without breaking clients.
Music discovery made easy
With the YouTube Music web player, you get new releases, covers, and hard-to-find songs
Nginx 正式擁抱現代 JavaScript!
說起 Nginx,大多數人的印象的可能是:高性能、穩定、省資源、配置簡單。確實,這個用 C 語言寫出來的服務器工具,十幾年來一直在互聯網基礎設施中扮演着 “守門員” 的角色。但話說回來,Nginx 雖然快,但 “太靜態” 也是它的一個老問題。隨着前後端分離、邊緣計算、接口鑑權、灰度路由等需求變多,越來越多開發者發現,僅靠傳統的配置語法已經不夠用了。我們需要在轉發請求前 “想一想”、攔截一下、判斷一 ⌘ Read more
st tries not to redraw immediately after new data arrives:
https://git.suckless.org/st/file/x.c.html#l1984
The exact timings are configurable.
This is the PR that changed the timing in VTE recently (2023):
https://gitlab.gnome.org/GNOME/vte/-/issues/2678
There is a long discussion. It’s not a trivial problem, especially not in the context of GTK and multiple competing terminal widgets. st dodges all these issues (for various reasons).
We covered quite some ground in the two and a half hours today. The weather was nice, mostly cloudy and just 23°C. That’s also why we decided to take a longer tour. We saw four deer in the wild, three of which I managed to just ban on film, quality could be better, though. My camera produced a hell lot of defocused photos this time. Not sure what’s going on with the autofocus. https://lyse.isobeef.org/waldspaziergang-2025-07-10/
When the sun came out, colors were just beautiful:

Løsningen? At flytte repo’et helt op i C:/, OG omnavngive alle de mapper jeg kan styre til enkelt-bogstavs-navne.
Ahh… nu virker det.
🤦♂️ 🤦♂️ ⌘ Read more
Løsningen? At flytte mit repo helt op i C:/. Hov, det var faktisk ikke nok. Stien er stadig over 260 bytes…
🤦♂️ ⌘ Read more
Just realized: One of the reasons why I don’t like “flat UIs” is that they look broken to me. Like the program has a bug, missing pixmaps or whatever.
Take this for example:

I’m talking about this area specifically:

One UI element ends and the other one begins – no “transition” between them.
The style of old UIs like these two is deeply ingrained into my brain:


When all these little elements (borders, handles, even just simple lines, …) are no longer present, then the program looks buggy and broken to me. And I’m not sure if I’ll ever be able to un-learn that.
It annoys me when I clone a git repository A in order to build and self-host some software, only to realize later that I also needed to clone repos B, C and D. I’m not saying that’s a bad thing–logical separation of code between, say, a client and a server is very handy–but some projects do not communicate very well when you need multiple tools to get it running independently.
@prologic@twtxt.net … or just bullshit.
I’m Alex, COO at ColdIQ. Built a $4.5M ARR business in under 2 years.
Some “C-level” guy telling people what to do, yeah, I have my doubts.
@prologic@twtxt.net I’m trying to call some libc functions (because the Rust stdlib does not have an equivalent for getpeername(), for example, so I don’t have a choice), so I have to do some FFI stuff and deal with raw pointers and all that, which is very gnarly in Rust – because you’re not supposed to do this. Things like that are trivial in C or even Assembler, but I have not yet understood what Rust does under the hood. How and when does it allocate or free memory … is the pointer that I get even still valid by the time I do the libc call? Stuff like that.
I hope that I eventually learn this over time … but I get slapped in the face at every step. It’s very frustrating and I’m always this 🤏 close to giving up (only to try again a year later).
Oh, yeah, yeah, I guess I could “just” use some 3rd party library for this. socket2 gets mentioned a lot in this context. But I don’t want to. I literally need one getpeername() call during the lifetime of my program, I don’t even do the socket(), bind(), listen(), accept() dance, I already have a fully functional file descriptor. Using a library for that is total overkill and I’d rather do it myself. (And look at the version number: 0.5.10. The library is 6 years old but they’re still saying: “Nah, we’re not 1.0 yet, we reserve the right to make breaking changes with every new release.” So many Rust libs are still unstable …)
… and I could go on and on and on … 🤣
Nothing makes you feel better than mowing a wet lawn, while rain falls, under 33°C temperature, with 80% humidity. I loved every step I took!
New oil and gas fields incompatible with Paris climate goals
Opening any new North Sea oil and gas fields is incompatible with achieving the Paris Climate Agreement goals of limiting warming to 1.5°C or holding warming to “well below 2°C” relative to preindustrial levels, finds a new report published by UCL academics. ⌘ Read more