My mate and I went on a hike earlier. Yesterday, we had lovely 12°C. But today, it was down to at most 4°C. Oh well. At least the sun was out and and there was just a tiny bit of wind. We knew upfont that scarf, beanie and gloves were mandatory. Especially at the more windy sections like up top the hills. The view was absolutely terrible, but we made the best of it.
With the sun shining on us during our lunch break at a forest edge bench, we still enjoyed the lookout in 01. I brought some old carpet scraps to sit on and was happily surprised that they isolated even better than I had hoped for. Some hot tea helped us staying warm.
After five hours we returned just after sunset. I’m quite tired now, completely out of shape.
./bin/mu -B -o ... -p muos/amd64 ... target.
@prologic@twtxt.net I’d love to take a look at the code. 😅
I’m kind of curious to know how much Assembly I need vs. How much of a microkernel can I build purely in Mu (µ)? 🤔
Can’t really answer that, because I only made a working kernel for 16-bit real mode yet. That is 99% C, though, only syscall entry points are Assembly. (The OpenWatcom compiler provides C wrappers for triggering software interrupts, which makes things easier.)
But in long mode? No idea yet. 😅 At least changing the page tables will require a tiny little bit of Assembly.
Vacation: Doing crazy things like C on DOS, lots of Rust, bare-metal assembly code, everything is fine.
Back at work: How the fuck do I move an email in this web mail program? Am I stupid? 😮💨
@bender@twtxt.net They’re not completely impossible, but C makes it much easier to run into them. I think the key point is that in those “safe” languages, buffer overflows are caught and immediately crash the program (if not handled otherwise) instead of silently corrupting memory, not being noticed right away and maybe only later crashing at a different location, where it can be very hard to find the actual root cause. This is a big improvement in my book.
Some programmers are indeed horrible. I’m guilty myself. :-)
I like the article.
I came across this on “Why Is SQLite Coded In C”, which I found interesting:
“There has lately been a lot of interest in “safe” programming languages like Rust or Go in which it is impossible, or is at least difficult, to make common programming errors like memory leaks or array overruns.”
If that’s true, then encountering those issues means the programmer is, simply, horrible?
@shinyoukai@neko.laidback.moe Oh no, fuck that 🤣 That’s why I built an FFI so I can call C-functions via shared libraries 🤣
Mu (µ) is now getting much closer to where I want it to be, it now has:
- A
processstdlib module (very basic, but it works)
- An
ffistdob module that supportsdlopen/dlsymand calling C functions with a nice mu-esque wrapperffi.fn(...)
- A
sqlitestdlib module (also very basic) that shows off the FFI capabilities
😅
On my way to having windows and mouse support:
https://movq.de/v/95bbbbd3e8/basic-windows.mp4
It would be cool to have something like Turbo Vision eventually.
(I considered just using Turbo Vision, but it’s a C++ library and that’s not quite what I’m looking for. But it’s not yet completely off the table.)
The baseline here is about 55 ms for nothing, btw. Python ain’t fast to start up.
$ time python -c 'exit(0)'
real 0m0.055s
user 0m0.046s
sys 0m0.007s
My little toy operating system from last year runs in 16-bit Real Mode (like DOS). Since I’ve recently figured out how to switch to 64-bit Long Mode right after BIOS boot, I now have a little program that performs this switch on my toy OS. It will load and run any x86-64 program, assuming it’s freestanding, a flat binary, and small enough (< 128 KiB code, only uses the first 2 MiB of memory).
Here I’m running a little C program (compiled using normal GCC, no Watcom trickery):
https://movq.de/v/b27ced6dcb/los86%2D64.mp4
https://movq.de/v/b27ced6dcb/c.png
Next steps could include:
- Use Rust instead of C for that 64-bit program?
- Provide interrupt service routines. (At the moment, it just keeps interrupts disabled.)
@prologic@twtxt.net @movq@www.uninformativ.de Oh, I take my 0°C over the 36°C anytime! Even with yesterday’s gray and windy sleet in my face. However, there are definitely more pleasant times to walk in town, I’ll give you that. For example on 0°C sunny today: https://lyse.isobeef.org/waldspaziergang-2025-12-25/
@prologic@twtxt.net And I froze my ass off yesterday at -5°C and strong winds. 🤣
that’s a whopping 36°C today 🥵
I rewrote all my solutions in Rust (except for day 10 part 2) and these are the runtimes on my i7-3770 from 2013 (this measures CLOCK_PROCESS_CPUTIME_ID, not wallclock):
day01/1 [ 00.000501311] Result: 1066
day01/2 [ 00.000400298] Result: 6223
day02/1 [ 00.000358848] Result: 12586854255
day02/2 [ 00.000750711] Result: 17298174201
day03/1 [ 00.000106537] Result: 17405
day03/2 [ 00.000404632] Result: 171990312704598
day04/1 [ 00.000257517] Result: 1626
day04/2 [ 00.007495342] Result: 9173
day05/1 [ 00.000237212] Result: 505
day05/2 [ 00.000142731] Result: 344423158480189
day06/1 [ 00.000229629] Result: 4076006202939
day06/2 [ 00.000279552] Result: 7903168391557
day07/1 [ 00.000204422] Result: 1622
day07/2 [ 00.000283816] Result: 10357305916520
day08/1 [ 00.029427421] Result: 84968
day08/2 [ 00.028089859] Result: 8663467782
day09/1 [ 00.000310304] Result: 4764078684
day09/2 [ 00.015512554] Result: 1652344888
day10/1 [ 00.000796663] Result: 375
day10/2 [ --.---------] Result: 15377 (Z3)
day11/1 [ 00.000416804] Result: 753
day11/2 [ 00.000660528] Result: 450854305019580
day12/1 [ 00.000336081] Result: 577
day12/2 [ 00.000000695] Result: no part 2
A little under 90 ms total.
On my Samsung NC10 netbook from 2011 with its Intel Atom N455 at 1.6 GHz:
day01/1 [ 00.003771326] Result: 1066
day01/2 [ 00.003267317] Result: 6223
day02/1 [ 00.003902698] Result: 12586854255
day02/2 [ 00.006659479] Result: 17298174201
day03/1 [ 00.000747544] Result: 17405
day03/2 [ 00.002737587] Result: 171990312704598
day04/1 [ 00.001263892] Result: 1626
day04/2 [ 00.044985301] Result: 9173
day05/1 [ 00.001696761] Result: 505
day05/2 [ 00.000978962] Result: 344423158480189
day06/1 [ 00.001387660] Result: 4076006202939
day06/2 [ 00.001734248] Result: 7903168391557
day07/1 [ 00.001295528] Result: 1622
day07/2 [ 00.001809659] Result: 10357305916520
day08/1 [ 00.277251443] Result: 84968
day08/2 [ 00.284359332] Result: 8663467782
day09/1 [ 00.003152407] Result: 4764078684
day09/2 [ 00.071123459] Result: 1652344888
day10/1 [ 00.005279527] Result: 375
day10/2 [ --.---------] Result: 15377 (Z3)
day11/1 [ 00.003273342] Result: 753
day11/2 [ 00.005139719] Result: 450854305019580
day12/1 [ 00.002857552] Result: 577
day12/2 [ 00.000004421] Result: no part 2
A little over 700 ms total.
I like this. You get performance that’s more or less in the ballpark of C, but without the footguns.
Day 7 was pretty tough, I initially ended up implementing an exponential in both time and memory solution that I killed because it was eating all the resources on my Mac Studio, and this poor little machine only has 32GB of memory (I stopped it at 118GB of memory, swapping badly!), This is what I ended up doing before/after:
- Before: Time O(2^k · L), memory O(2^k), where k is the number of splitters along a reachable path and L is path length. Exponential in k.
- After: Time O(R·C) (or O(R·C + s) with s split events), memory O©, where R = rows, C = columns. Polynomial/linear in grid size.
FWIW, day 03 and day 04 where solved on SuSE Linux 6.4:
https://movq.de/v/faaa3c9567/day03.jpg
https://movq.de/v/faaa3c9567/day04%2Dv3.jpg
Performance really is an issue. Anything is fast on a modern machine with modern Python. But that old stuff, oof, it takes a while … 😅
Should have used C or Java. 🤪 Well, maybe I do have to fall back on that for later puzzles. We’ll see.
Fark me 🤦♂️ I woke up quite late today (after a long night helping/assisting with a Mainframe migration last night fork work) to abusive traffic and my alerts going off. The impact? My pod (twtxt.net) was being hammered by something at a request rate of 30 req/s (there are global rate limits in place, but still…). The culprit? Turned out to be a particular IP 43.134.51.191 and after looking into who own s that IP I discovered it was yet-another-bad-customer-or-whatever from Tencent, so that entire network (ASN) is now blocked from my Edge:
+# Who: Tentcent
+# Why: Bad Bots
+132203
Total damage?
$ caddy-log-formatter twtxt.net.log | cut -f 1 -d ' ' | sort | uniq -c | sort -r -n -k 1 | head -n 5
61371 43.134.51.191
402 159.196.9.199
121 45.77.238.240
8 106.200.1.116
6 104.250.53.138
61k reqs over an hour or so (before I noticed), bunch of CPU time burned, and useless waste of my fucking time.
I had no meetings this arvo, so I made an appointment with the woods in my extended lunch break. The 6°C warm sun was out all day long and there was only a very light breeze. So, a very nice autumn day.
When I stopped to take a photo in the forest, a deer behind me took off into the woodland. I didn’t see it before. Also, I came across one or the other clearing. Sadly, it’s all commercial timberland here. Luckily, in a year or so, when nature slowly took over and reclaimed some spots, the apocalyptic sites are then looking a bit more decent again.
Cleaning of the ruin walls on my backyard mountain slowly takes shape. They made some progress and moved on to the other section. The flag on top is halfway disintegrated again, all the yellow half is completely gone. I’m wondering if they just stop replacing it at some point in time. But probably not.
Windows at work, always a fresh inconvenience:
C:\>python -m pip install ipython
Requirement already satisfied: ipython in c:\users\[...]
C:\>ipython
'ipython' is not recognized [...]
@movq@www.uninformativ.de I think I now remember having similar problems back then. I’m pretty sure I typically consulted the Qt C++ documentation and only very rarely looked at the Python one. It was easy enough to translate the C++ code to Python.
Yeah, the GIL can be problematic at times. I’m glad it wasn’t an issue for my application.
FTR, I see one (two) issues with PyQt6, sadly:
- The PyQt6 docs appear to be mostly auto-generated from the C++ docs. And they contain many errors or broken examples (due to the auto-conversion). I found this relatively unpleasent to work with.
- (Until Python finally gets rid of the Global Interpreter Lock properly, it’s not really suited for GUI programs anyway – in my opinion. You can’t offload anything to a second thread, because the whole program is still single-threaded. This would have made my fractal rendering program impossible, for example.)
Hanami Ume the Idolmaster ⌘ Read more
Design trends I think will take off in 2026
but tierlist

S - move from flat design to more detailed, 3D, more complex logos.
A - glass, not just liquid, Windows Vista, 7, 11,… accessibility concerns, but I like to see it.
B-/C+ - black and white icons, favicons. I did it before it was cool, but it’s getting overused.
E - gradientslop, barely started, already all blends together.
@movq@www.uninformativ.de Yeah, give it a shot. At worst you know that you have to continue your quest. :-)
Fun fact, during a semester break I was actually a little bored, so I just started reading the Qt documentation. I didn’t plan on using Qt for anything, though. I only looked at the docs because they were on my bucket list for some reason. Qt was probably recommended to me and coming from KDE myself, that was motivation enough to look at the docs just for fun.
The more I read, the more hooked I got. The documentation was extremely well written, something I’ve never seen before. The structure was very well thought out and I got the impression that I understood what the people thought when they actually designed Qt.
A few days in I decided to actually give it a real try. Having never done anything in C++ before, I quickly realized that this endeavor won’t succeed. I simply couldn’t get it going. But I found the Qt bindings for Python, so that was a new boost. And quickly after, I discovered that there were even KDE bindings for Python in my package manager, so I immediately switched to them as that integrated into my KDE desktop even nicer.
I used the Python KDE bindings for one larger project, a planning software for a summer camp that we used several years. It’s main feature was to see who is available to do an activity. In the past, that was done on a large sheet of paper, but people got assigned two activities at the same time or weren’t assigned at all. So, by showing people in yellow (free), green (one activity assigned) and red (overbooked), this sped up and improved the planning process.
Another core feature was to generate personalized time tables (just like back in school) and a dedicated view for the morning meeting on site.
It was extended over the years with all sorts of stuff. E.g. I then implemented a warning if all the custodians of an activitiy with kids were underage to satisfy new the guidelines that there should be somebody of age.
Just before the pandemic I started to even add support for personalized live views on phones or tablets during the planning process (with web sockets, though). This way, people could see their own schedule or independently check at which day an activity takes place etc. For these side quests, they don’t have to check the large matrix on the projector. But the project died there.
Here’s a screenshot from one of the main views: https://lyse.isobeef.org/tmp/k3man.png
This Python+Qt rewrite replaced and improved the Java+Swing predecessor.
@lyse@lyse.isobeef.org Hmmmmmmmmmmmm … guess I should take a look at Qt. 🤔 That’s the one popular toolkit that I’ve never really tried for some reason. I really don’t like C++ (might as well use Rust), so I’ll also use Python.
@movq@www.uninformativ.de Don’t you worry, this was meant as a joke. :-D
There was a time when I thought that Swing was actually really good. But having done some Qt/KDE later, I realized how much better that was. That were the late KDE 3 and early KDE 4 days, though. Not sure how it is today. But back then it felt Trolltech and the KDE folks put a hell lot more thought into their stuff. I was pleasantly surprised how natural it appeared and all the bits played together. Sure, there were the odd ends, but the overall design was a lot better in my opinion.
To be fair, I never used it from C++, always the Python bindings, which were considerably more comfortable (just alone the possibility to specify most attributes right away as kwargs in the constructor instead of calling tons of setters). And QtJambi, the Java binding, was also relatively nice. I never did a real project though, just played around with the latter.
B.C. to launch anti-tariff ads as Ontario pauses controversial campaign ⌘ 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?
Sex with Bunny Bay (E.C.HO) [Nikke: Goddess of Victory] ⌘ 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
Texas and Florida Have Become National Models for Using the Police State To Wage Culture War Battles
C.J. Ciaramella, Criminal Justice Reporter - reason
_Stephan: Since Trump was inaugurated in January, Florida and Texas have led the Great Schism Trend Red-Blue culture war. Here is a good description of what governors, Ron DeSantis and Greg Abbott, and their legislatures are trying to do. We are two countries in a single … ⌘ Read more
N3694: Functions with Data - Closures in C (A Comprehensive Proposal Overviewing Blocks, Nested Functions, and Lambdas)
Comments ⌘ Read more
[$] Progress on defeating lifetime-end pointer zapping
Paul McKenney gave a remote presentation at
Kangrejos 2025 following up on the
talk he gave last year about the
lifetime-end-pointer-zapping problem: certain common patterns for multithreaded code are
technically undefined behavior, and changes to the C and C++ specifications
will be needed to correct that. Those changes could also impact code that uses
unsafe Rust, such as the kernel’s Rust bindings. Progress on the p … ⌘ Read more
The 10 Best Apple Deals Under $100 for Prime Day
As Prime Big Deal Days continues, we’re highlighting all of the best Apple deals you can get for under $100 on Amazon. This includes AirPods, Apple Pencil Pro, AirTags, iPhone cases, USB-C chargers, and 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
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
Sou eu que já estou muito cansado, ou este texto no DN deve ter sido escrito por IA e não faz sentido nenhum?
“Se uma greve geral chegar a acontecer, será a primeira vez nos últimos 12 anos, pois a última paralisação convocada por ambas as centrais sindicais ocorreu em junho de 2023.”
@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
^C
Está a chegar ao fim a 15ª edição do #ZigurFest, o festival em #Lamego onde inclusão, acessibilidade e diversidade são valores centrais.
Ficam aqui fotos do último dia, e interesse em saber as datas para 2026!
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
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:
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:
https://movq.de/v/8822afccf0/a.png
I’m talking about this area specifically:
https://movq.de/v/8822afccf0/a%2Dhigh.png
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:
https://movq.de/v/8822afccf0/b.png
https://movq.de/v/8822afccf0/c.png
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.
@movq@www.uninformativ.de @kat@yarn.girlonthemoon.xyz It’s awful, “just” 32°C here. When I rode my bike into town I came across some spots where the heat was stationary built up and really intense. The airflow felt like the sauna attendant poured water over the heated rocks and severely fanned the hot air with his towel.
@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!
Sizewell C pledged to lower bills but will take at least 10 years
Sir Keir Starmer says the development of Sizewell C on the Suffolk coastline will create 10,000 jobs over the next decade. ⌘ Read more
Sizewell C pledged to lower bills but will take at least 10 years
Sir Keir Starmer says the development of Sizewell C on the Suffolk coastline will create 10,000 jobs over the next decade. ⌘ Read more
No blank cheque for Sizewell C nuclear project, says PM
Sir Keir Starmer says the development of Sizewell C on the Suffolk coastline will create 10,000 jobs over the next decade. ⌘ Read more
No blank cheque for Sizewell C nuclear project, says PM
Sir Keir Starmer says the development of Sizewell C on the Suffolk coastline will create 10,000 jobs over the next decade. ⌘ Read more
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
**Sizewell C nuclear plant gets £14bn go-ahead from government **
The chancellor calls it a “landmark decision” but critics say the government will regret the move. ⌘ Read more
**Sizewell C nuclear plant gets £14bn go-ahead from government **
The chancellor calls it a “landmark decision” but critics say the government will regret the move. ⌘ Read more
**Sizewell C nuclear plant gets £14bn go-ahead from government **
The chancellor calls it a “landmark decision” but critics say the government will regret the move. ⌘ Read more
Having some fun with SIRDS this morning.
What you should see: https://movq.de/v/dae785e733/disp.png
And the tutorial I used for my C program: https://www.ime.usp.br/~otuyama/stereogram/basic/index.html
Anzeige: Programmierjobs für Softwareprofis
Ob C#, ABAP oder Angular: In diesen sechs Positionen erwarten Devs spannende Aufgaben in Forschung, Produktentwicklung oder der Versicherungsbranche - mit Perspektive und Gestaltungsspielraum. ( Golem Karrierewelt, Betriebssysteme)
Anzeige: 5-in-1 USB-C-Hub von Anker für nur 15,99 Euro sichern
Der USB-C-Hub von Anker ist derzeit im Angebot und ergänzt fehlende Anschlüsse bei modernen Laptops um praktische Funktionen. ( Technik/Hardware, USB-C)
La France au pied du mur
Le constat, posé il y a quelques jours, ne peut plus être évité : si la France n’est pas encore en faillite, c’est pour des raisons purement psychologiques, mais concrètement tout le monde sait que le moindre frisson sur les marchés pourrait emporter l’Hexagone dans un ouragan financier qui emporterait la République avec lui. Ce n’est […] ⌘ Read more
glibc 堆內存管理:原理、機制與實戰
在內存管理領域,glibc(GNU C Library)通過 brk 和 mmap 兩大系統調用,構建了一套高效的堆內存管理機制。這種設計大幅減少了系統調用的頻次,顯著提升內存利用率。在 glibc 的管理架構中,堆內存以層級化的方式組織,包含分配區(Arena)、堆(Heap)和內存塊(Chunk)。其中,主 Arena 依賴 brk 系統調用實現內存分配,而子 Arena 則通過 mmap 完 ⌘ Read more
Use Your iPhone As a Webcam for Nintendo Switch 2
The Nintendo Switch 2 includes a new built-in social feature called GameChat that allows up to 12 users to engage in video chats simultaneously, even if they’re playing in different games. To facilitate this, Nintendo offers an official Switch 2 Camera that connects via USB-C, but it turns out that an iPhone does the job just as well, if not better.
Niles Mitchell has thoughtfully shared a demo of the Switch-iPho … ⌘ Read more
分佈式事務的解決方案—Seata TCC 模式
在分佈式事務解決方案中有 Seata AT 模式,但是 AT 模式要求是關係型數據庫(因爲 undolog 表需要和業務保持原子性),此時如果事務中存在非關係型數據庫(如 Redis、ES 等),那麼 AT 模式就無法滿足要求了,如下圖所示: 此時我們就需要 Seata TCC 模式來幫助我們解決這種場景下的分佈式事務問題。1、認識 Seata TCC 模式 TCC(Try-C ⌘ Read more
Anzeige: C-auf-A-USB-Adapter von Ugreen für unter 2 Euro pro Stück
Kein USB-A-Kabel mehr nötig: Amazon verkauft drei USB-Adapter für USB-C auf USB-A von Ugreen zum Tiefstpreis. ( Technik/Hardware, Amazon)
Glasfaser: O2 Telefónica ist gegen eine schnelle DSL-Abschaltung
Ein C-Level-Manager von O2 Telefónica findet kaum ein gutes Wort für eine Kupferabschaltung. Man verdient da weiter viel Geld. ( Anga Com, DSL)
Windows 11: Microsoft fordert einheitliche USB-Ports bei Windows-Laptops
Kunden sollen sicher sein können, dass sie bei allen USB-C-Buchsen ihres Windows-PCs alle Features verlässlich nutzen können. ( PC & Notebooks, Notebook)
Le pouvoir a cyniquement choisi le laxisme
« Champion, mon frère », c’est avec cette interjection colloquiale que Macron a salué la victoire du PSG en Ligue des Champions dans la nuit de samedi à dimanche, au moment même où plusieurs quartiers de la capitale subissaient les assauts de hordes violentes que les forces de l’ordre peinaient franchement à juguler. Finalement, tout s’est déroulé […] ⌘ Read more
[$] Glibc project revisits infrastructure security
The GNU C Library
(glibc) is the core C library for most Linux distributions, so it is a
crucial part of the open-source ecosystem—and an attractive
target for any attackers looking to carry out supply-chain
attacks. With that being the case, securing the project’s
infrastructure using industry best practices and improving the
security of its development practices are a frequent topic among glibc
developers. A recent discussion suggests that improveme … ⌘ Read more
Apple Working on Studio Display 2: Here’s What the Latest Rumors Say
Apple released the Studio Display in March 2022, alongside the first Mac Studio, and it has not received any hardware upgrades since.
The current Studio Display features a 27-inch LCD screen with a 5K resolution, a 60Hz refresh rate, up to 600 nits brightness, a built-in camera and speakers, one Thunderbolt 3 port, and three USB-C ports. In the U.S … ⌘ Read more
En finir avec l’argent liquide, vraiment ?
Tout le monde sait que l’insécurité est provoquée par le trafic de drogue. Mais si, c’est évident ! Dès lors, à ce constat indiscutable, on peut proposer des solutions à la fois simples, rapides et tout à fait à portée du premier politicien qui passe par là, n’importe quel clown fera l’affaire. Tenez, prenons Dardmalin, il […] ⌘ Read more
One of the nicest things about Go is the language itself, comparing Go to other popular languages in terms of the complexity to learn to be proficient in:
- Go:
25keywords (Stack Overflow); CSP-style concurrency (goroutines & channels)
- Python 2:
30keywords (TutorialsPoint); GIL-bound threads & multiprocessing (Wikipedia)
- Python 3:
35keywords (Initial Commit); GIL-bound threads,asyncio& multiprocessing (Wikipedia, DEV Community)
- Java:
50keywords (Stack Overflow); threads +java.util.concurrent(Wikipedia)
- C++:
82keywords (Stack Overflow);std::thread, atomics & futures (en.cppreference.com)
- JavaScript:
38keywords (Stack Overflow); single-threaded event loop &async/await, Web Workers (Wikipedia)
- Ruby:
42keywords (Stack Overflow); GIL-bound threads (MRI), fibers & processes (Wikipedia)